llvm-for-llvmta/tools/clang/test/Import/cxx-anon-namespace/test.cpp

50 lines
1.4 KiB
C++
Raw Permalink Normal View History

2022-04-25 13:02:35 +02:00
// RUN: clang-import-test -dump-ast -import %S/Inputs/F.cpp -expression %s | FileCheck %s
// The implicit UsingDirectiveDecls for the anonymous namespaces are created by the Sema.
// There might be another builtin namespace before our first namespace, so we can't
// just look for NamespaceDecl. Instead look for the first line of F.cpp (which only
// contains the namespace we are looking for but no other decl).
// CHECK: F.cpp:1:1
// The nested anonymous namespace.
// CHECK-NEXT: NamespaceDecl
// CHECK-SAME: line:21:11
// CHECK: FunctionDecl
// CHECK-SAME: func4
// CHECK-NEXT: CompoundStmt
// This is for the nested anonymous namespace.
// CHECK-NEXT: UsingDirectiveDecl
// CHECK-SAME: ''
// CHECK: FunctionDecl
// CHECK-SAME: func1
// CHECK-NEXT: CompoundStmt
// CHECK-NEXT: UsingDirectiveDecl
// CHECK-SAME: ''
// CHECK: NamespaceDecl
// CHECK-SAME: test_namespace1
// CHECK-NEXT: NamespaceDecl
// CHECK: FunctionDecl
// CHECK-SAME: func2
// CHECK-NEXT: CompoundStmt
// CHECK-NEXT: UsingDirectiveDecl
// CHECK-SAME: ''
// CHECK-NEXT: NamespaceDecl
// CHECK-SAME: test_namespace2
// CHECK-NEXT: NamespaceDecl
// CHECK-NEXT: NamespaceDecl
// CHECK-SAME: test_namespace3
// CHECK: FunctionDecl
// CHECK-SAME: func3
// CHECK-NEXT: CompoundStmt
// CHECK-NEXT: UsingDirectiveDecl
// CHECK-SAME: ''
void expr() {
func1();
test_namespace1::func2();
test_namespace2::test_namespace3::func3();
func4();
}