The commit changed Module dumping code to call SymbolFile::Dump directly, which meant that we were no longer showing the plugin name in the output (as that was done in the SymbolVendor). This adds the plugin name printing code to the SymbolFile dump method, and tweak the assertions in the PDB tests to match it correctly. llvm-svn: 367835
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:}
|