1// { dg-do compile } 2 3extern "C" { 4void __assert_fail (); 5unsigned long strlen (const char *); 6} 7class A 8{ 9 int Data; 10 int Length; 11 12public: 13 A (const char *p1) : Data () 14 { 15 p1 ? void() : __assert_fail (); 16 Length = strlen (p1); 17 } 18}; 19enum TokenKind 20{ 21 semi 22}; 23class B 24{ 25public: 26 void m_fn1 (); 27}; 28class C 29{ 30 void m_fn2 (TokenKind, int, A); 31 struct D 32 { 33 D (int); 34 B Range; 35 }; 36 int *m_fn3 (const int &, int &, int **); 37}; 38int a, b; 39int * 40C::m_fn3 (const int &, int &, int **) 41{ 42 D c (0); 43 if (a) 44 c.Range.m_fn1 (); 45 m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration"); 46} 47