Imported Upstream version 5.18.0.205

Former-commit-id: 7f59f7e792705db773f1caecdaa823092f4e2927
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-11-16 08:20:38 +00:00
parent 5cd5df71cc
commit 8e12397d70
28486 changed files with 3867013 additions and 66 deletions

View File

@ -0,0 +1 @@
config.unsupported = not config.have_dia_sdk

View File

@ -0,0 +1,40 @@
; RUN: llvm-pdbutil pretty %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=NO_ARGS
; RUN: llvm-pdbutil pretty -types %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=TYPES
; RUN: llvm-pdbutil pretty -compilands %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=COMPILANDS
; RUN: llvm-pdbutil pretty -types -compilands %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=MULTIPLE
; Check that neither symbols nor compilands are dumped when neither argument specified.
; NO_ARGS: empty.pdb
; NO_ARGS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; NO_ARGS: Attributes: HasPrivateSymbols
; NO_ARGS-NOT: ---TYPES---
; NO_ARGS-NOT: ---COMPILANDS---
; NO_ARGS-NOT: ---GLOBALS---
; NO_ARGS-NOT: ---SYMBOLS---
; Check that only types are dumped when only -types is specified.
; TYPES: empty.pdb
; TYPES: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; TYPES: Attributes: HasPrivateSymbols
; TYPES: ---TYPES---
; TYPES-NOT: ---COMPILANDS---
; TYPES-NOT: ---GLOBALS---
; TYPES-NOT: ---SYMBOLS---
; Check that only compilands are dumped when only -compilands is specified.
; COMPILANDS: empty.pdb
; COMPILANDS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; COMPILANDS: Attributes: HasPrivateSymbols
; COMPILANDS: ---COMPILANDS---
; COMPILANDS-NOT: ---TYPES---
; COMPILANDS-NOT: ---GLOBALS---
; COMPILANDS-NOT: ---SYMBOLS---
; Check that types and compilands are dumped when both arguments are specified.
; MULTIPLE: empty.pdb
; MULTIPLE: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; MULTIPLE: Attributes: HasPrivateSymbols
; MULTIPLE: ---COMPILANDS---
; MULTIPLE: ---TYPES---
; MULTIPLE-NOT: ---GLOBALS---
; MULTIPLE-NOT: ---SYMBOLS---

View File

@ -0,0 +1,14 @@
; RUN: llvm-pdbutil pretty -lines %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=LINE_NUMS_FPO %s
; RUN: llvm-pdbutil pretty -lines %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=LINE_NUMS %s
; LINE_NUMS_FPO: llvm\test\debuginfo\pdb\inputs\symbolformat-fpo.cpp
; LINE_NUMS_FPO: Line 5, Address: [0x000011a0 - 0x000011a5] (6 bytes)
; LINE_NUMS_FPO: Line 6, Address: [0x000011a6 - 0x000011a6] (1 bytes)
; LINE_NUMS: llvm\test\debuginfo\pdb\inputs\symbolformat.cpp
; LINE_NUMS: Line 6, Address: [0x00001060 - 0x00001066] (7 bytes)
; LINE_NUMS: Line 80, Address: [0x000010d0 - 0x000010d1] (2 bytes)
; LINE_NUMS: Line 81, Address: [0x000010d2 - 0x000010d5] (4 bytes)
; LINE_NUMS: Line 28, Address: [0x00001170 - 0x0000117a] (11 bytes)
; LINE_NUMS: Line 21, Address: [0x00001180 - 0x0000118a] (11 bytes)
; LINE_NUMS: Line 20, Address: [0x00001190 - 0x0000119a] (11 bytes)

View File

@ -0,0 +1,70 @@
; RUN: llvm-pdbutil pretty -module-syms %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT_FPO %s
; RUN: llvm-pdbutil pretty -module-syms %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s
; RUN: llvm-pdbutil pretty -types %p/../Inputs/symbolformat.pdb > %t.types
; RUN: FileCheck --check-prefix=TYPES_FORMAT %s < %t.types
; RUN: FileCheck --check-prefix=TYPES_1 %s < %t.types
; RUN: FileCheck --check-prefix=TYPES_2 %s < %t.types
; RUN: llvm-pdbutil pretty -types %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=TYPES_FORMAT %s
; RUN: llvm-pdbutil pretty -globals %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=GLOBALS %s
; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>]
; SYM_FORMAT_FPO: ---SYMBOLS---
; SYM_FORMAT_FPO: symbolformat-fpo.obj
; SYM_FORMAT-FPO: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
; SYM_FORMAT: ---SYMBOLS---
; SYM_FORMAT: symbolformat.obj
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl _purecall()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl main(int argc, char** argv)
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::A()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void B::B()
; SYM_FORMAT-DAG: thunk [{{.*}}] (Pcode) B::`vcall'{0}'
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void B::PureFunc()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::RegularFunc()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void A::VirtualFunc()
; TYPES_FORMAT: ---TYPES---
; TYPES_FORMAT: Enums
; TYPES_FORMAT-DAG: enum TestEnum
; TYPES_FORMAT-DAG: enum TestEnumClass
; TYPES_FORMAT: Typedefs
; TYPES_FORMAT-DAG: typedef int IntType
; TYPES_FORMAT-DAG: typedef class A ClassAType
; TYPES_1: Classes
; TYPES_1: struct A [sizeof = 4] {
; TYPES_1: virtual void PureFunc() = 0
; TYPES_1: virtual void VirtualFunc()
; TYPES_1: void RegularFunc()
; TYPES_1: }
; TYPES_2: Classes
; TYPES_2: struct MemberTest [sizeof = 96] {
; TYPES_2: data +0x00 [sizeof=4] MemberTest::NestedEnum m_nested_enum
; TYPES_2: data +0x04 [sizeof=4] int m_typedef
; TYPES_2: data +0x08 [sizeof=1] bool m_bool
; TYPES_2: data +0x09 [sizeof=1] char m_char
; TYPES_2: data +0x0a [sizeof=2] wchar_t m_wchar_t
; TYPES_2: data +0x0c [sizeof=4] int m_int
; TYPES_2: data +0x10 [sizeof=4] unsigned int m_unsigned
; TYPES_2: data +0x14 [sizeof=4] long m_long
; TYPES_2: data +0x18 [sizeof=4] unsigned long m_unsigned_long
; TYPES_2: <padding> (4 bytes)
; TYPES_2: data +0x20 [sizeof=8] __int64 m_int64
; TYPES_2: data +0x28 [sizeof=8] unsigned __int64 m_unsigned_int64
; TYPES_2: data +0x30 [sizeof=4] float m_float
; TYPES_2: <padding> (4 bytes)
; TYPES_2: data +0x38 [sizeof=8] double m_double
; TYPES_2: data +0x40 [sizeof=4] void (__cdecl * m_pfn_2_args)(int, double)
; TYPES_2: data +0x44 [sizeof=24] int m_multidimensional_array[2][3]
; TYPES_2: }
; GLOBALS: ---GLOBALS---
; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static void* g_global_pointer
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static int g_global_int
; GLOBALS-DAG: data [{{.*}}, sizeof=12] static int g_array[3]
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static int (* g_pointer_to_array)[3]
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static const int* g_pointer_to_const_int
; GLOBALS-DAG: data [sizeof=4] int* const g_const_pointer_to_int = 0
; GLOBALS-DAG: data [sizeof=4] const int* const g_const_pointer_to_const_int = 0