1f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu// RUN: cp %s %t
2f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu// RUN: %clang_cc1 -fsyntax-only -verify %s
3f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu// RUN: not %clang_cc1 -x c++ -fixit %t
4f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu// RUN: %clang_cc1 -x c++ %t
5f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu
6f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieunamespace foo1::foo2::foo3 { // expected-error {{nested namespace definition must define each namespace separately}}
7f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu  int foo(int x) { return x; }
8f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu}
9f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu
10f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieuint foo(int x) {
11f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu  return foo1::foo2::foo3::foo(x);
12f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu}
13f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu
14f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieunamespace bar1 {
15f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu  namespace bar2 {
16f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu    namespace bar3 {
17f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu      int bar(int x) { return x; }
18f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu    }
19f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu  }
20f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu}
21f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu
22f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieuint bar(int x) {
23f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu  return bar1::bar2::bar3::bar(x);
24f858bd817e8d6eac58ae496fa96a2f508fbb286fRichard Trieu}
25