1 // PR c++/66383 2 // { dg-do compile { target c++11 } } 3 4 namespace N1 { 5 struct B; 6 7 struct A 8 { 9 B* b; 10 A(B* b); 11 }; 12 13 struct B 14 { 15 A a{ this }; 16 }; 17 A(B * b)18 A::A(B* b): b{ b } {} 19 foo()20 void foo() 21 { 22 auto b = B{}; 23 } 24 } 25 26 namespace N2 { 27 struct B; 28 29 struct A 30 { 31 B* b; 32 }; 33 34 struct B 35 { 36 A a{ this }; 37 }; 38 foo()39 void foo() 40 { 41 auto b = B{}; 42 } 43 } 44