1 // { dg-do compile } 2 // Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org> 3 // DR80: Class members with same name as class 4 5 struct A 6 { 7 int A; 8 }; 9 10 struct A2 11 { 12 static int A2; // { dg-error "same name as" } 13 }; 14 15 16 template <class> 17 struct A3 18 { 19 int A3; 20 }; 21 22 template <class> 23 struct A4 24 { 25 static int A4; // { dg-error "same name as" } 26 }; 27 28 29 struct B 30 { 31 B(); 32 int B; // { dg-error "same name as" } 33 }; 34 35 struct B2 36 { 37 B2(); 38 static int B2; // { dg-error "same name as" } 39 }; 40 41 template <class> 42 struct B3 43 { 44 B3(); 45 int B3; // { dg-error "same name as" "this error should appear at parsing time" { xfail *-*-* } } 46 }; 47 48 template <class> 49 struct B4 50 { 51 B4(); 52 static int B4; // { dg-error "same name as" } 53 }; 54