REQUIRES: system-windows, msvc
RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/ClassLayoutTest.cpp.obj %S/Inputs/ClassLayoutTest.cpp
RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/ClassLayoutTest.cpp.exe %T/ClassLayoutTest.cpp.obj
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=ENUM %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=UNION %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=STRUCT %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=COMPLEX %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=LIST %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=UNNAMED-STRUCT %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=BASE %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=FRIEND %s
RUN: lldb-test symbols %T/ClassLayoutTest.cpp.exe | FileCheck --check-prefix=CLASS %s

CHECK: Module [[MOD:.*]]
CHECK: {{^[0-9A-F]+}}: SymbolVendor pdb ([[MOD]])
CHECK: {{^[0-9A-F]+}}:   CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\ClassLayoutTest.cpp'

ENUM:  name = "Enum", size = 4,  decl = ClassLayoutTest.cpp:5
ENUM-SAME: enum Enum {
ENUM:    RED,
ENUM:    GREEN,
ENUM:    BLUE
ENUM:}

UNION:  name = "Union", size = 4, decl = ClassLayoutTest.cpp:9
UNION-SAME: union Union {
UNION:    short Row;
UNION:    unsigned short Col;
UNION:    int Line : 16;
UNION:    long Table;
UNION:}

STRUCT:  name = "Struct", size = 64, decl = ClassLayoutTest.cpp:22
STRUCT-SAME: struct Struct {
STRUCT:    bool A;
STRUCT:    unsigned char UCharVar;
STRUCT:    unsigned int UIntVar;
STRUCT:    long long LongLongVar;
STRUCT:    Enum EnumVar;
STRUCT:    int array[10];
STRUCT:}

COMPLEX:  name = "Complex", size = 368, decl = ClassLayoutTest.cpp:33
COMPLEX-SAME: struct Complex {
COMPLEX:    _List *array[90];
COMPLEX:    int x;
COMPLEX:    int a;
COMPLEX:    float b;
COMPLEX:}

LIST:  name = "_List", size = 12, decl = ClassLayoutTest.cpp:45
LIST-SAME: struct _List {
LIST:    _List *current;
LIST:    _List *previous;
LIST:    _List *next;
LIST:}

UNNAMED-STRUCT:  name = "UnnamedStruct", size = 4, decl = ClassLayoutTest.cpp:52
UNNAMED-STRUCT-SAME: struct UnnamedStruct {
UNNAMED-STRUCT:   int a;
UNNAMED-STRUCT:}

BASE:  name = "Base", size = 4,  decl = ClassLayoutTest.cpp:59
BASE-SAME: class Base {
BASE:    int a;
BASE:    Base();
BASE:    ~Base();
BASE:    int Get();
BASE:}

FRIEND:  name = "Friend", size = 1, decl = ClassLayoutTest.cpp:70
FRIEND-SAME: class Friend {
FRIEND:    int f();
FRIEND: }

CLASS:  name = "Class", size = 88, decl = ClassLayoutTest.cpp:74
CLASS-SAME: class Class : public MemberTest::Base {
CLASS:    static int m_static;
CLASS:    int m_public;
CLASS:    Struct m_struct;
CLASS:    Union m_union;
CLASS:    int m_private;
CLASS:    int m_protected;
CLASS:    Class();
CLASS:    Class(int);
CLASS:    ~Class();
CLASS:    static int {{.*}}StaticMemberFunc(int, ...);
CLASS:    int Get();
CLASS:    int f(MemberTest::Friend);
CLASS:    bool operator==(const MemberTest::Class &)
CLASS:}
