1176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -std=c++11 -ast-dump -ast-dump-filter Test %s | FileCheck -check-prefix DECLS %s
2176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -std=c++11 -ast-dump-lookups -ast-dump-filter Test %s | FileCheck -check-prefix LOOKUPS %s
3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -std=c++11 -ast-dump -ast-dump-lookups -ast-dump-filter Test %s | FileCheck -check-prefix DECLS-LOOKUPS %s
4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
5176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesnamespace Test {
6176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines  extern int a;
7176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines  int a = 0;
8176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}
9176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
10176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesnamespace Test { }
11176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
12176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS: Dumping Test:
13176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-NEXT: NamespaceDecl {{.*}} Test
14176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-NEXT: |-VarDecl [[EXTERN_A:0x[^ ]*]] {{.*}} a 'int' extern
15176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-NEXT: `-VarDecl {{.*}} prev [[EXTERN_A]] {{.*}} a 'int' cinit
16176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-NEXT:   `-IntegerLiteral {{.*}} 'int' 0
17176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines//
18176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS: Dumping Test:
19176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-NEXT: NamespaceDecl {{.*}} Test
20176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
21176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS: Dumping Test:
22176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS-NEXT: StoredDeclsMap Namespace {{.*}} 'Test'
23176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS-NEXT: `-DeclarationName 'a'
24176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS-NEXT:   `-Var {{.*}} 'a' 'int'
25176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines//
26176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS: Dumping Test:
27176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// LOOKUPS-NEXT: Lookup map is in primary DeclContext
28176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
29176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS: Dumping Test:
30176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT: StoredDeclsMap Namespace {{.*}} 'Test'
31176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT: `-DeclarationName 'a'
32176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT:   `-Var [[A:[^ ]*]] 'a' 'int'
33176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT:     |-VarDecl [[EXTERN_A:0x[^ ]*]] {{.*}} a 'int' extern
34176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT:     `-VarDecl [[A]] prev [[EXTERN_A]] {{.*}} a 'int' cinit
35176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT:       `-IntegerLiteral {{.*}} 'int' 0
36176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines//
37176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS: Dumping Test:
38176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// DECLS-LOOKUPS-NEXT: Lookup map is in primary DeclContext
39