REQUIRES: system-windows, msvc
RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/AstRestoreTest.cpp
RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=ENUM %s
RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=ENUM %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=GLOBAL %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=BASE %s
RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=CLASS %s
RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=CLASS %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=INNER %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=TEMPLATE %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=FOO %s
RUN: lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix=MAIN %s

ENUM: Module: {{.*}}
ENUM: namespace N0 {
ENUM:     namespace N1 {
ENUM:         namespace  {
ENUM:             enum Enum {
ENUM:                 Enum_0,
ENUM:                 Enum_1,
ENUM:                 Enum_2,
ENUM:                 Enum_3
ENUM:             };
ENUM:         }
ENUM:     }
ENUM: }

GLOBAL: Module: {{.*}}
GLOBAL: namespace N0 {
GLOBAL:     namespace N1 {
GLOBAL:         N0::N1::(anonymous namespace)::Enum Global;
GLOBAL:     }
GLOBAL: }

BASE: Module: {{.*}}
BASE: namespace N0 {
BASE:     namespace N1 {
BASE:         struct Base {
BASE:             N0::N1::(anonymous namespace)::Enum m_e;
BASE:         };
BASE:     }
BASE: }

CLASS: Module: {{.*}}
CLASS: namespace N0 {
CLASS:     namespace N1 {
CLASS:         class Class : public N0::N1::Base {
CLASS-DAG:             const N0::N1::(anonymous namespace)::Enum m_ce;
CLASS-DAG:             static int ClassStatic;
CLASS-DAG:             static const int ClassStaticConst = 8;
CLASS-DAG:             static const int ClassStaticConstexpr = 9;
CLASS-DAG:             static constexpr float ClassStaticConstexprFloat = 10.F;
CLASS-DAG:             static constexpr double ClassStaticConstexprDouble = 11.;
CLASS-DAG:             static constexpr double ClassStaticConstexprLongDouble = 12.;
CLASS-DAG:             static const N0::N1::(anonymous namespace)::Enum ClassStaticConstEnum = 8;
CLASS-DAG:             static const N0::N1::(anonymous namespace)::ScopedEnum ClassStaticConstScopedEnum = 4;
CLASS-DAG:             N0::N1::Class::Inner m_inner;
CLASS-DAG:             {{(inline )?}}Class(N0::N1::(anonymous namespace)::Enum);
CLASS-DAG:             static {{(inline )?}}int StaticFunc(const N0::N1::Class &);
CLASS-DAG:             {{(inline )?}}int PrivateFunc(const N0::N1::Class::Inner &);
CLASS:         };
CLASS:     }
CLASS: }

INNER: Module: {{.*}}
INNER: namespace N0 {
INNER:     namespace N1 {
INNER:         class Class : public N0::N1::Base {
INNER:             struct Inner {
INNER:                 char x;
INNER:                 short y;
INNER:                 int z;
INNER:             };
INNER:         };
INNER:     }
INNER: }

TEMPLATE: Module: {{.*}}
TEMPLATE: struct Template<N0::N1::Class> {
TEMPLATE:     inline void TemplateFunc<1>();
TEMPLATE: };

FOO: Module: {{.*}}
FOO: namespace N0 {
FOO:     namespace N1 {
FOO:         void foo();
FOO:     }
FOO: }

MAIN: Module: {{.*}}
MAIN: int main();
