mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[llvm-pdbdump] Resubmit "Add some tests for llvm-pdbdump".
NOTE: This patch intentionally breaks the build. It attempts to resubmit r230083, but with some debug logging in the CMake and lit config files to determine why certain bots do not correctly disable the DIA tests when DIA is not available. After a sufficient number of bots fail, this patch will either be reverted or, if the cause of the failure becomes obvious, a fix submitted with the log statements removed. llvm-svn: 230161
This commit is contained in:
parent
06399dc38d
commit
9f8e48c6b4
@ -448,6 +448,8 @@ if( MSVC )
|
||||
endif()
|
||||
endif( MSVC )
|
||||
|
||||
message("CMake set HAVE_DIA_SDK to ${HAVE_DIA_SDK}")
|
||||
|
||||
if( PURE_WINDOWS )
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <windows.h>
|
||||
|
7
test/DebugInfo/PDB/Inputs/empty.cpp
Normal file
7
test/DebugInfo/PDB/Inputs/empty.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
// Build with "cl.exe /Zi empty.cpp /link /debug /nodefaultlib /entry:main"
|
||||
|
||||
void *__purecall = 0;
|
||||
|
||||
int main() {
|
||||
return 42;
|
||||
}
|
BIN
test/DebugInfo/PDB/Inputs/empty.pdb
Normal file
BIN
test/DebugInfo/PDB/Inputs/empty.pdb
Normal file
Binary file not shown.
6
test/DebugInfo/PDB/Inputs/symbolformat-fpo.cpp
Normal file
6
test/DebugInfo/PDB/Inputs/symbolformat-fpo.cpp
Normal file
@ -0,0 +1,6 @@
|
||||
// Compile with "cl /GR- /Zi /c /Ox /Oy symbolformat-fpo.cpp"
|
||||
// Refer to symbolformat.cpp for linking instructions.
|
||||
|
||||
unsigned fpo_func(unsigned n) {
|
||||
return n * 2;
|
||||
}
|
24
test/DebugInfo/PDB/Inputs/symbolformat.cpp
Normal file
24
test/DebugInfo/PDB/Inputs/symbolformat.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
// Compile with "cl /c /Zi /GR- symbolformat.cpp"
|
||||
// Compile symbolformat-fpo.cpp (see file for instructions)
|
||||
// Link with "link symbolformat.obj symbolformat-fpo.obj /debug /nodefaultlib
|
||||
// /entry:main /out:symbolformat.exe"
|
||||
|
||||
int __cdecl _purecall(void) { return 0; }
|
||||
|
||||
struct A {
|
||||
virtual void PureFunc() = 0 {}
|
||||
virtual void VirtualFunc() {}
|
||||
void RegularFunc() {}
|
||||
};
|
||||
|
||||
struct B : public A {
|
||||
void PureFunc() override {}
|
||||
};
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
B b;
|
||||
auto PureAddr = &B::PureFunc;
|
||||
auto VirtualAddr = &A::PureFunc;
|
||||
auto RegularAddr = &A::RegularFunc;
|
||||
return 0;
|
||||
}
|
BIN
test/DebugInfo/PDB/Inputs/symbolformat.pdb
Normal file
BIN
test/DebugInfo/PDB/Inputs/symbolformat.pdb
Normal file
Binary file not shown.
2
test/DebugInfo/PDB/lit.local.cfg
Normal file
2
test/DebugInfo/PDB/lit.local.cfg
Normal file
@ -0,0 +1,2 @@
|
||||
config.unsupported = not config.have_dia_sdk
|
||||
print("lit.local.cfg: config.unsupported set to %s" % config.unsupported)
|
14
test/DebugInfo/PDB/pdbdump-flags.test
Normal file
14
test/DebugInfo/PDB/pdbdump-flags.test
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-pdbdump %p/Inputs/empty.pdb | FileCheck %s -check-prefix SUMMARY_CHECK
|
||||
; RUN: llvm-pdbdump -functions %p/Inputs/empty.pdb | FileCheck %s -check-prefix MAIN_CHECK
|
||||
|
||||
; Check PDB file summary information
|
||||
; SUMMARY_CHECK: empty.pdb
|
||||
; SUMMARY_CHECK: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
|
||||
; SUMMARY_CHECK: Attributes: HasPrivateSymbols
|
||||
|
||||
; Check that running with only -compilands doesn't include unwanted symbol types
|
||||
; MAIN_CHECK: (EBP) int32_t __cdecl main()
|
||||
; MAIN_CHECK-NOT: vtbl:
|
||||
; MAIN_CHECK-NOT: enum:
|
||||
; MAIN_CHECK-NOT: class:
|
||||
; MAIN_CHECK-NOT: data:
|
14
test/DebugInfo/PDB/pdbdump-symbol-format.test
Normal file
14
test/DebugInfo/PDB/pdbdump-symbol-format.test
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-pdbdump -all -hidden -group-by=compiland %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=FORMAT %s
|
||||
|
||||
; The format here is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>]
|
||||
; FORMAT: test\DebugInfo\PDB\Inputs\symbolformat-fpo.obj
|
||||
; FORMAT-DAG: func [0x001130+0 - 0x001137-1] (VFrame) uint32_t __cdecl fpo_func(uint32_t)
|
||||
; FORMAT: d:\src\llvm\test\DebugInfo\PDB\Inputs\symbolformat.obj
|
||||
; FORMAT-DAG: func [0x001060+3 - 0x001067-2] (EBP) int32_t __cdecl _purecall()
|
||||
; FORMAT-DAG: func [0x001070+6 - 0x001099-4] (EBP) int32_t __cdecl main(int32_t, char**)
|
||||
; FORMAT-DAG: func [0x0010b0+7 - 0x0010c7-4] (EBP) void __thiscall A::A()
|
||||
; FORMAT-DAG: func [0x0010d0+7 - 0x0010ef-4] (EBP) void __thiscall B::B()
|
||||
; FORMAT-DAG: thunk [0x000010f6 - 0x000010fa] (Pcode) B::`vcall'{0}'
|
||||
; FORMAT-DAG: func [0x001100+7 - 0x00110b-4] (EBP) virtual void __thiscall B::PureFunc()
|
||||
; FORMAT-DAG: func [0x001110+7 - 0x00111b-4] (EBP) void __thiscall A::RegularFunc()
|
||||
; FORMAT-DAG: func [0x001120+7 - 0x00112b-4] (EBP) virtual void __thiscall A::VirtualFunc()
|
@ -31,8 +31,11 @@ config.host_ldflags = "@HOST_LDFLAGS@"
|
||||
config.llvm_use_intel_jitevents = "@LLVM_USE_INTEL_JITEVENTS@"
|
||||
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
|
||||
config.have_zlib = "@HAVE_LIBZ@"
|
||||
config.have_dia_sdk = "@HAVE_DIA_SDK@"
|
||||
config.enable_ffi = "@LLVM_ENABLE_FFI@"
|
||||
|
||||
print("lit.site.cfg.in: config.have_dia_sdk set to %s" % config.have_dia_sdk)
|
||||
|
||||
# Support substitution of the tools_dir with user parameters. This is
|
||||
# used when we can't determine the tool dir at configuration time.
|
||||
try:
|
||||
|
Loading…
x
Reference in New Issue
Block a user