| // { dg-do assemble } |
| // g++ 1.36.1 bug 900121_05 |
| |
| // g++ allows unions to have base types (i.e. to be "derived") and it allows |
| // other types to have unions as base types. Both cases are illegal. |
| |
| // g++ curently does not detect such errors. |
| |
| // Cfront 2.0 passes this test. |
| |
| // keywords: unions, inheritance |
| |
| struct s0 { |
| int s0_member; |
| }; |
| |
| union u0 : public s0 { /* { dg-error "" } union has base class */ |
| int u0_member_0; |
| int u0_member_1; |
| }; |
| |
| union u1 { |
| int u1_member_0; |
| int u1_member_1; |
| }; |
| |
| struct s1 : public u1 { /* { dg-error "base type" } */ |
| int s1_member_0; |
| }; |
| |
| int main () { return 0; } |