2014-10-10 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr63476.C
blob75ecc37406561588409b55a66c2011c2d34735f4
1 // { dg-do compile }
2 // { dg-additional-options "-std=gnu++11" }
4 enum class nsresult;
5 class A;
6 class B
8 public:
9     B (int);
10     A *operator->();
12 class C
15 class A
17 public:
18     virtual nsresult AddObserver (const char *, C *, bool) = 0;
20 class D : A
22   nsresult
23       AddObserver (const char *p1, C *p2, bool p3)
24         {
25           AddObserver (p1, p2, p3);
26         }
28 char *prefList[]{};
29 class F : C
31   nsresult Install ();
33 nsresult
34 F::Install ()
36   B branch = 0;
37   for (int i;;)
38     branch->AddObserver (prefList[i], this, false);