1// { dg-do compile }
2// { dg-additional-options "-std=gnu++11" }
3
4enum class nsresult;
5class A;
6class B
7{
8public:
9    B (int);
10    A *operator->();
11};
12class C
13{
14};
15class A
16{
17public:
18    virtual nsresult AddObserver (const char *, C *, bool) = 0;
19};
20class D : A
21{
22  nsresult
23      AddObserver (const char *p1, C *p2, bool p3)
24	{
25	  AddObserver (p1, p2, p3);
26	}
27};
28char *prefList[]{};
29class F : C
30{
31  nsresult Install ();
32};
33nsresult
34F::Install ()
35{
36  B branch = 0;
37  for (int i;;)
38    branch->AddObserver (prefList[i], this, false);
39}
40