1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4// C++0x [class.nest] p3:
5//   If class X is defined in a namespace scope, a nested class Y may be
6//   declared in class X and later defined in the definition of class X or be
7//   later defined in a namespace scope enclosing the definition of class X.
8
9namespace example {
10  class E {
11    class I1;
12    class I2;
13    class I1 { };
14  };
15  class E::I2 { };
16}
17
18// Don't insert out-of-line inner class definitions into the namespace scope.
19namespace PR6107 {
20  struct S1 { };
21  struct S2 {
22    struct S1;
23  };
24  struct S2::S1 { };
25  S1 s1;
26}
27