forked from OSchip/llvm-project
93 lines
3.2 KiB
Plaintext
93 lines
3.2 KiB
Plaintext
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: SymbolFile 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:}
|