11590Srgrimes// { dg-do assemble } 21590Srgrimes 31590Srgrimes#define DEF_A struct A { A() { a = 2; } int a; } 41590Srgrimes 51590Srgrimes#if 1 61590Srgrimesint f1 () { 71590Srgrimes DEF_A; 81590Srgrimes A aa; 91590Srgrimes return aa.a; 101590Srgrimes} 111590Srgrimes 121590Srgrimesint f2 () { 131590Srgrimes DEF_A; 141590Srgrimes A ab; 151590Srgrimes return ab.a; 161590Srgrimes} 171590Srgrimes/* results: 181590Srgrimestt.cc: In function int f2 (): 191590Srgrimestt.cc:9: conflicting types for `A::A ()' 201590Srgrimestt.cc:3: previous declaration of `A::A ()' 211590Srgrimes/u2/projects/gcc2/src/cplus-cvt.c:1149: failed assertion `distance >= 0' 221590Srgrimesgcc2: Program cc1plus got fatal signal 6. 231590Srgrimes*/ 241590Srgrimes#else 251590Srgrimes 261590Srgrimesstruct B1 { DEF_A; A aa; }; 271590Srgrimes 281590Srgrimesstruct B2 { DEF_A; A aa; }; 291590Srgrimes/* results: 301590Srgrimes/u2/projects/gcc2/src/cplus-decl.c:5469: failed assertion `return_type == return_ctor' 3174769Smikehgcc2: Program cc1plus got fatal signal 6. 321590Srgrimes*/ 3374769Smikeh#endif 341590Srgrimes