Clang Project

clang_source_code/test/Import/cxx-anon-namespace/test.cpp
1// RUN: clang-import-test -dump-ast -import %S/Inputs/F.cpp -expression %s | FileCheck %s
2
3// The implicit UsingDirectiveDecls for the anonymous namespaces are created by the Sema.
4
5// CHECK: NamespaceDecl
6// The nested anonymous namespace.
7// CHECK-NEXT: NamespaceDecl
8// CHECK: FunctionDecl
9// CHECK-SAME: func4
10// CHECK-NEXT: CompoundStmt
11// This is for the nested anonymous namespace.
12// CHECK-NEXT: UsingDirectiveDecl
13// CHECK-SAME: ''
14// CHECK: FunctionDecl
15// CHECK-SAME: func1
16// CHECK-NEXT: CompoundStmt
17// CHECK-NEXT: UsingDirectiveDecl
18// CHECK-SAME: ''
19
20// CHECK: NamespaceDecl
21// CHECK-SAME: test_namespace1
22// CHECK-NEXT: NamespaceDecl
23// CHECK: FunctionDecl
24// CHECK-SAME: func2
25// CHECK-NEXT: CompoundStmt
26// CHECK-NEXT: UsingDirectiveDecl
27// CHECK-SAME: ''
28
29// CHECK-NEXT: NamespaceDecl
30// CHECK-SAME: test_namespace2
31// CHECK-NEXT: NamespaceDecl
32// CHECK-NEXT: NamespaceDecl
33// CHECK-SAME: test_namespace3
34// CHECK: FunctionDecl
35// CHECK-SAME: func3
36// CHECK-NEXT: CompoundStmt
37// CHECK-NEXT: UsingDirectiveDecl
38// CHECK-SAME: ''
39
40void expr() {
41  func1();
42  test_namespace1::func2();
43  test_namespace2::test_namespace3::func3();
44  func4();
45}
46