14e4c0664SRaphael Isemann // RUN: clang-import-test -dump-ast -import %S/Inputs/F.cpp -expression %s | FileCheck %s 24e4c0664SRaphael Isemann 34e4c0664SRaphael Isemann // The implicit UsingDirectiveDecls for the anonymous namespaces are created by the Sema. 44e4c0664SRaphael Isemann 5ed5a8971SRaphael Isemann // There might be another builtin namespace before our first namespace, so we can't 6ed5a8971SRaphael Isemann // just look for NamespaceDecl. Instead look for the first line of F.cpp (which only 7ed5a8971SRaphael Isemann // contains the namespace we are looking for but no other decl). 8ed5a8971SRaphael Isemann // CHECK: F.cpp:1:1 94e4c0664SRaphael Isemann // The nested anonymous namespace. 104e4c0664SRaphael Isemann // CHECK-NEXT: NamespaceDecl 11a9f10ebfSBalázs Kéri // CHECK-SAME: line:21:11 124e4c0664SRaphael Isemann // CHECK: FunctionDecl 134e4c0664SRaphael Isemann // CHECK-SAME: func4 144e4c0664SRaphael Isemann // CHECK-NEXT: CompoundStmt 154e4c0664SRaphael Isemann // This is for the nested anonymous namespace. 164e4c0664SRaphael Isemann // CHECK-NEXT: UsingDirectiveDecl 17*8c257483SMatheus Izvekov // CHECK-SAME: <col:1, line:24:1> 184e4c0664SRaphael Isemann // CHECK: FunctionDecl 194e4c0664SRaphael Isemann // CHECK-SAME: func1 204e4c0664SRaphael Isemann // CHECK-NEXT: CompoundStmt 214e4c0664SRaphael Isemann // CHECK-NEXT: UsingDirectiveDecl 22*8c257483SMatheus Izvekov // CHECK-SAME: <col:1, line:4:1> 234e4c0664SRaphael Isemann 244e4c0664SRaphael Isemann // CHECK: NamespaceDecl 254e4c0664SRaphael Isemann // CHECK-SAME: test_namespace1 264e4c0664SRaphael Isemann // CHECK-NEXT: NamespaceDecl 274e4c0664SRaphael Isemann // CHECK: FunctionDecl 284e4c0664SRaphael Isemann // CHECK-SAME: func2 294e4c0664SRaphael Isemann // CHECK-NEXT: CompoundStmt 304e4c0664SRaphael Isemann // CHECK-NEXT: UsingDirectiveDecl 31*8c257483SMatheus Izvekov // CHECK-SAME: <col:1, line:9:1> 324e4c0664SRaphael Isemann 334e4c0664SRaphael Isemann // CHECK-NEXT: NamespaceDecl 344e4c0664SRaphael Isemann // CHECK-SAME: test_namespace2 354e4c0664SRaphael Isemann // CHECK-NEXT: NamespaceDecl 364e4c0664SRaphael Isemann // CHECK-NEXT: NamespaceDecl 374e4c0664SRaphael Isemann // CHECK-SAME: test_namespace3 384e4c0664SRaphael Isemann // CHECK: FunctionDecl 394e4c0664SRaphael Isemann // CHECK-SAME: func3 404e4c0664SRaphael Isemann // CHECK-NEXT: CompoundStmt 414e4c0664SRaphael Isemann // CHECK-NEXT: UsingDirectiveDecl 42*8c257483SMatheus Izvekov // CHECK-SAME: <col:1, line:17:1> 434e4c0664SRaphael Isemann 444e4c0664SRaphael Isemann void expr() { 454e4c0664SRaphael Isemann func1(); 464e4c0664SRaphael Isemann test_namespace1::func2(); 474e4c0664SRaphael Isemann test_namespace2::test_namespace3::func3(); 484e4c0664SRaphael Isemann func4(); 494e4c0664SRaphael Isemann } 50