1# RUN: yaml2obj %s -o %t.exe
2# RUN: llvm-readobj --unwind %t.exe | FileCheck %s
3
4# CHECK:         RuntimeFunction {
5# CHECK:          StartAddress: entry (0x140001020)
6# CHECK-NEXT:     EndAddress: (0x14000105C)
7# CHECK-NEXT:     UnwindInfoAddress: (0x140002008)
8# CHECK-NEXT:     UnwindInfo {
9# CHECK-NEXT:       Version: 1
10# CHECK-NEXT:       Flags [ (0x3)
11# CHECK-NEXT:         ExceptionHandler (0x1)
12# CHECK-NEXT:         TerminateHandler (0x2)
13# CHECK-NEXT:       ]
14# CHECK-NEXT:       PrologSize: 4
15# CHECK-NEXT:       FrameRegister: -
16# CHECK-NEXT:       FrameOffset: -
17# CHECK-NEXT:       UnwindCodeCount: 1
18# CHECK-NEXT:       UnwindCodes [
19# CHECK-NEXT:         0x04: ALLOC_SMALL size=56
20# CHECK-NEXT:       ]
21# CHECK-NEXT:       Handler: __gxx_personality_seh0 (0x140001070)
22# CHECK-NEXT:     }
23# CHECK-NEXT:   }
24
25--- !COFF
26OptionalHeader:
27  AddressOfEntryPoint: 4128
28  ImageBase:       5368709120
29  SectionAlignment: 4096
30  FileAlignment:   512
31  MajorOperatingSystemVersion: 6
32  MinorOperatingSystemVersion: 0
33  MajorImageVersion: 0
34  MinorImageVersion: 0
35  MajorSubsystemVersion: 6
36  MinorSubsystemVersion: 0
37  Subsystem:       IMAGE_SUBSYSTEM_WINDOWS_CUI
38  DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ]
39  SizeOfStackReserve: 1048576
40  SizeOfStackCommit: 4096
41  SizeOfHeapReserve: 1048576
42  SizeOfHeapCommit: 4096
43  ExportTable:
44    RelativeVirtualAddress: 0
45    Size:            0
46  ImportTable:
47    RelativeVirtualAddress: 0
48    Size:            0
49  ResourceTable:
50    RelativeVirtualAddress: 0
51    Size:            0
52  ExceptionTable:
53    RelativeVirtualAddress: 12288
54    Size:            24
55  CertificateTable:
56    RelativeVirtualAddress: 0
57    Size:            0
58  BaseRelocationTable:
59    RelativeVirtualAddress: 0
60    Size:            0
61  Debug:
62    RelativeVirtualAddress: 0
63    Size:            0
64  Architecture:
65    RelativeVirtualAddress: 0
66    Size:            0
67  GlobalPtr:
68    RelativeVirtualAddress: 0
69    Size:            0
70  TlsTable:
71    RelativeVirtualAddress: 0
72    Size:            0
73  LoadConfigTable:
74    RelativeVirtualAddress: 0
75    Size:            0
76  BoundImport:
77    RelativeVirtualAddress: 0
78    Size:            0
79  IAT:
80    RelativeVirtualAddress: 0
81    Size:            0
82  DelayImportDescriptor:
83    RelativeVirtualAddress: 0
84    Size:            0
85  ClrRuntimeHeader:
86    RelativeVirtualAddress: 0
87    Size:            0
88header:
89  Machine:         IMAGE_FILE_MACHINE_AMD64
90  Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE ]
91sections:
92  - Name:            .text
93    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
94    VirtualAddress:  4096
95    VirtualSize:     113
96    SectionData:     C3662E0F1F8400000000000F1F4400005048890C2458C3660F1F8400000000004883EC38E8D7FFFFFFE900000000488D4C2430E8D8FFFFFF904883C438C3488944242889542424488D4C2430E8BFFFFFFF488B4C2428E805000000CC0F1F4000C3662E0F1F8400000000000F1F440000C3
97  - Name:            .rdata
98    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
99    VirtualAddress:  8192
100    VirtualSize:     32
101    SectionData:     0101010001020000190401000462000070100000FFFF010804051E0009330000
102  - Name:            .pdata
103    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
104    VirtualAddress:  12288
105    VirtualSize:     24
106    SectionData:     101000001710000000200000201000005C10000008200000
107symbols:
108  - Name:            .text
109    Value:           0
110    SectionNumber:   1
111    SimpleType:      IMAGE_SYM_TYPE_NULL
112    ComplexType:     IMAGE_SYM_DTYPE_NULL
113    StorageClass:    IMAGE_SYM_CLASS_STATIC
114  - Name:            .xdata
115    Value:           0
116    SectionNumber:   2
117    SimpleType:      IMAGE_SYM_TYPE_NULL
118    ComplexType:     IMAGE_SYM_DTYPE_NULL
119    StorageClass:    IMAGE_SYM_CLASS_STATIC
120  - Name:            .pdata
121    Value:           0
122    SectionNumber:   3
123    SimpleType:      IMAGE_SYM_TYPE_NULL
124    ComplexType:     IMAGE_SYM_DTYPE_NULL
125    StorageClass:    IMAGE_SYM_CLASS_STATIC
126  - Name:            other
127    Value:           0
128    SectionNumber:   1
129    SimpleType:      IMAGE_SYM_TYPE_NULL
130    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
131    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
132  - Name:            _ZN4RAIID2Ev
133    Value:           16
134    SectionNumber:   1
135    SimpleType:      IMAGE_SYM_TYPE_NULL
136    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
137    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
138  - Name:            entry
139    Value:           32
140    SectionNumber:   1
141    SimpleType:      IMAGE_SYM_TYPE_NULL
142    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
143    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
144  - Name:            _ZN4RAIID1Ev
145    Value:           16
146    SectionNumber:   1
147    SimpleType:      IMAGE_SYM_TYPE_NULL
148    ComplexType:     IMAGE_SYM_DTYPE_NULL
149    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
150  - Name:            _Unwind_Resume
151    Value:           96
152    SectionNumber:   1
153    SimpleType:      IMAGE_SYM_TYPE_NULL
154    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
155    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
156  - Name:            __gxx_personality_seh0
157    Value:           112
158    SectionNumber:   1
159    SimpleType:      IMAGE_SYM_TYPE_NULL
160    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
161    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
162  - Name:            GCC_except_table2
163    Value:           20
164    SectionNumber:   2
165    SimpleType:      IMAGE_SYM_TYPE_NULL
166    ComplexType:     IMAGE_SYM_DTYPE_NULL
167    StorageClass:    IMAGE_SYM_CLASS_STATIC
168...
169