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