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