2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.bugs / 900119_01.C
blob0d181c7eeb8218c4982b72b8a812eb93d17262f4
1 // { dg-options "-pedantic-errors -std=c++98" }
2 // { dg-do assemble  }
3 // g++ 1.36.1 bug 900119_01
5 // g++ allows initializers to be included in the declaration of members
6 // of classes, structs, unions (even when -pedantic is used).
8 // This is not allowed by the C++ 2.0 Reference Manual or by Cfront 2.0.
10 // keywords: member declaration, member initialization
12 // { dg-prune-output "is a static data member" }
14 int global_int;
16 class class0 {
17 public:
18   int class0_member_0 = 99;                     /* { dg-error "" }  */
19   static int class0_member_1 = 99;              /* { dg-error "" }  */
20   int &class0_member_2 = global_int;            /* { dg-error "" }  */
22   class0 () : class0_member_2 (global_int) { }
26 struct struct0 {
27   int struct0_member_0 = 99;                    /* { dg-error "" }  */
28   static int struct0_member_1 = 99;             /* { dg-error "" }  */
29   int &struct0_member_2 = global_int;           /* { dg-error "" }  */
31   struct0 () : struct0_member_2 (global_int) { }
34 // g++ does not allow unions to have more than one member with an initializer
36 union union0 {
37   int union0_member_0 = 99;                     /* { dg-error "" }  */
40 union union1 {
41   //static int union1_member_0 = 99;            /* definitely illegal (9.5) */
44 union union2 {
45   int &union2_member_0 = global_int;            /* { dg-error "" }  */
47   union2 () : union2_member_0 (global_int) { }
50 int main () { return 0; }