| // { dg-do compile } |
| |
| extern "C" { |
| void __assert_fail (); |
| __SIZE_TYPE__ strlen (const char *); |
| } |
| class A |
| { |
| int Data; |
| int Length; |
| |
| public: |
| A (const char *p1) : Data () |
| { |
| p1 ? void() : __assert_fail (); |
| Length = strlen (p1); |
| } |
| }; |
| enum TokenKind |
| { |
| semi |
| }; |
| class B |
| { |
| public: |
| void m_fn1 (); |
| }; |
| class C |
| { |
| void m_fn2 (TokenKind, int, A); |
| struct D |
| { |
| D (int); |
| B Range; |
| }; |
| int *m_fn3 (const int &, int &, int **); |
| }; |
| int a, b; |
| int * |
| C::m_fn3 (const int &, int &, int **) |
| { |
| D c (0); |
| if (a) |
| c.Range.m_fn1 (); |
| m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration"); |
| return 0; |
| } |