2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr63512.C
blobd08e617416830acb2dac456052eedc929218e403
1 // { dg-do compile }
3 extern "C" {
4 void __assert_fail ();
5 __SIZE_TYPE__ strlen (const char *);
7 class A
9   int Data;
10   int Length;
12 public:
13   A (const char *p1) : Data ()
14   {
15     p1 ? void() : __assert_fail ();
16     Length = strlen (p1);
17   }
19 enum TokenKind
21   semi
23 class B
25 public:
26   void m_fn1 ();
28 class C
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 **);
38 int a, b;
39 int *
40 C::m_fn3 (const int &, int &, int **)
42   D c (0);
43   if (a)
44     c.Range.m_fn1 ();
45   m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration");
46   return 0;