| // { dg-options "-pedantic-errors -std=c++98" } |
| // { dg-do assemble } |
| // g++ 1.36.1 bug 900119_01 |
| |
| // g++ allows initializers to be included in the declaration of members |
| // of classes, structs, unions (even when -pedantic is used). |
| |
| // This is not allowed by the C++ 2.0 Reference Manual or by Cfront 2.0. |
| |
| // keywords: member declaration, member initialization |
| |
| // { dg-prune-output "is a static data member" } |
| |
| int global_int; |
| |
| class class0 { |
| public: |
| int class0_member_0 = 99; /* { dg-error "" } */ |
| static int class0_member_1 = 99; /* { dg-error "" } */ |
| int &class0_member_2 = global_int; /* { dg-error "" } */ |
| |
| class0 () : class0_member_2 (global_int) { } |
| }; |
| |
| |
| struct struct0 { |
| int struct0_member_0 = 99; /* { dg-error "" } */ |
| static int struct0_member_1 = 99; /* { dg-error "" } */ |
| int &struct0_member_2 = global_int; /* { dg-error "" } */ |
| |
| struct0 () : struct0_member_2 (global_int) { } |
| }; |
| |
| // g++ does not allow unions to have more than one member with an initializer |
| |
| union union0 { |
| int union0_member_0 = 99; /* { dg-error "" } */ |
| }; |
| |
| union union1 { |
| //static int union1_member_0 = 99; /* definitely illegal (9.5) */ |
| }; |
| |
| union union2 { |
| int &union2_member_0 = global_int; /* { dg-error "" } */ |
| |
| union2 () : union2_member_0 (global_int) { } |
| }; |
| |
| int main () { return 0; } |