| // { dg-do assemble } |
| // g++ 1.36.1 bug 900210_05 |
| |
| // Section 18.3 of the 2.0 Reference Manual says "An implementation |
| // providing { anachronistic features } should also provide a way for |
| // the user to ensure that they do not occur in a source file." |
| |
| // The *only* proper way to "ensure" an absence of anachronstic features |
| // is for C++ language processors to generate errors (rather than just |
| // warnings) when such features are used. These errors could perhaps be |
| // triggered by some set of command line options, or by the absence of |
| // certain command line options. (For g++, the -pedantic and -traditional |
| // options come to mind.) |
| |
| // The use of errors rather than warnings is important because errors |
| // usually result in nonzero exit status codes for language processors |
| // and these nonzero exit stati can be automatically checked during |
| // normal execution of a Makefile. |
| |
| // cfront 2.0 provides the +p option which causes errors to be generated for |
| // all cases of anachronistic usage. |
| |
| // g++ generates neither errors nor warnings for such usage, even when the |
| // -ansi and -pedantic options are used. |
| |
| // Cfront 2.0 passes this test. |
| |
| // keywords: anachronism, enum types, integral types, implicit type conversions |
| |
| enum enum0 { enum_value_0 } enum0_object; |
| int int0_object; |
| |
| void function () |
| { |
| enum0_object = int0_object; /* { dg-error "" } */ |
| } |
| |
| int main () { return 0; } |