1REQUIRES: system-windows, msvc 2RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/AstRestoreTest.cpp 3RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=ENUM %s 4RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=ENUM %s 5RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=GLOBAL %s 6RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=BASE %s 7RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=CLASS %s 8RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=CLASS %s 9RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=INNER %s 10RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=TEMPLATE %s 11RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=FOO %s 12RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=MAIN %s 13 14ENUM: Module: {{.*}} 15ENUM: namespace N0 { 16ENUM: namespace N1 { 17ENUM: namespace { 18ENUM: enum Enum { 19ENUM: Enum_0, 20ENUM: Enum_1, 21ENUM: Enum_2, 22ENUM: Enum_3 23ENUM: }; 24ENUM: } 25ENUM: } 26ENUM: } 27 28GLOBAL: N0::N1::(anonymous namespace)::Enum {{.*}}Global; 29 30BASE: Module: {{.*}} 31BASE: namespace N0 { 32BASE: namespace N1 { 33BASE: struct Base { 34BASE: N0::N1::(anonymous namespace)::Enum m_e; 35BASE: }; 36BASE: } 37BASE: } 38 39CLASS: Module: {{.*}} 40CLASS: namespace N0 { 41CLASS: namespace N1 { 42CLASS: class Class : public N0::N1::Base { 43CLASS-DAG: const N0::N1::(anonymous namespace)::Enum m_ce; 44CLASS-DAG: static int ClassStatic; 45CLASS-DAG: static const int ClassStaticConst = 8; 46CLASS-DAG: static const int ClassStaticConstexpr = 9; 47CLASS-DAG: static constexpr float ClassStaticConstexprFloat = 10.F; 48CLASS-DAG: static constexpr double ClassStaticConstexprDouble = 11.; 49CLASS-DAG: static constexpr double ClassStaticConstexprLongDouble = 12.; 50CLASS-DAG: static const N0::N1::(anonymous namespace)::Enum ClassStaticConstEnum = 8; 51CLASS-DAG: static const N0::N1::(anonymous namespace)::ScopedEnum ClassStaticConstScopedEnum = 4; 52CLASS-DAG: N0::N1::Class::Inner m_inner; 53CLASS-DAG: {{(inline )?}}Class(N0::N1::(anonymous namespace)::Enum); 54CLASS-DAG: {{(static )?}}{{(inline )?}}int StaticFunc(const N0::N1::Class &); 55CLASS-DAG: {{(inline )?}}int PrivateFunc(const N0::N1::Class::Inner &); 56CLASS: }; 57CLASS: } 58CLASS: } 59 60INNER: Module: {{.*}} 61INNER: namespace N0 { 62INNER: namespace N1 { 63INNER: class Class : public N0::N1::Base { 64INNER: struct Inner { 65INNER: char x; 66INNER: short y; 67INNER: int z; 68INNER: }; 69INNER: }; 70INNER: } 71INNER: } 72 73TEMPLATE: Module: {{.*}} 74TEMPLATE: struct Template<N0::N1::Class> { 75TEMPLATE: void TemplateFunc<1>(); 76TEMPLATE: }; 77 78FOO: Module: {{.*}} 79FOO: namespace N0 { 80FOO: namespace N1 { 81FOO: void foo(); 82FOO: } 83FOO: } 84 85MAIN: Module: {{.*}} 86MAIN: int main(); 87