2015-06-21 12:00:54 +08:00
|
|
|
# RUN: yaml2obj < %s > %t.obj
|
|
|
|
#
|
2015-08-07 00:47:46 +08:00
|
|
|
# RUN: lld-link /out:%t.exe /entry:main %t.obj
|
2015-06-21 12:00:54 +08:00
|
|
|
# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=HEADER %s
|
|
|
|
# RUN: llvm-objdump -unwind-info %t.exe | FileCheck -check-prefix=UNWIND %s
|
|
|
|
#
|
2018-04-07 08:46:55 +08:00
|
|
|
# RUN: lld-link /merge:.pdata=.rdata /out:%t.exe /entry:main %t.obj
|
|
|
|
# RUN: llvm-readobj -file-headers -sections %t.exe | FileCheck -check-prefix=HEADER-MERGE %s
|
|
|
|
#
|
|
|
|
# HEADER: ExceptionTableRVA: 0x3000
|
|
|
|
#
|
|
|
|
# FIXME: llvm-readobj currently does not understand files with .pdata merged
|
|
|
|
# into .rdata. But we can at least check that the section headers look correct.
|
|
|
|
#
|
2018-04-21 05:10:33 +08:00
|
|
|
# HEADER-MERGE: ExceptionTableRVA: 0x2004
|
2018-04-07 08:46:55 +08:00
|
|
|
# HEADER-MERGE-NEXT: ExceptionTableSize: 0x30
|
|
|
|
# HEADER-MERGE: Name: .rdata
|
|
|
|
# HEADER-MERGE-NEXT: VirtualSize: 0x34
|
|
|
|
# HEADER-MERGE-NEXT: VirtualAddress: 0x2000
|
2015-06-21 12:00:54 +08:00
|
|
|
#
|
|
|
|
# UNWIND: Function Table:
|
2018-04-05 03:15:55 +08:00
|
|
|
# UNWIND: Start Address: 0x1000
|
|
|
|
# UNWIND: End Address: 0x101b
|
2018-04-07 08:46:55 +08:00
|
|
|
# UNWIND: Unwind Info Address: 0x4000
|
2015-06-21 12:00:54 +08:00
|
|
|
# UNWIND: Version: 1
|
|
|
|
# UNWIND: Flags: 1 UNW_ExceptionHandler
|
|
|
|
# UNWIND: Size of prolog: 18
|
|
|
|
# UNWIND: Number of Codes: 8
|
|
|
|
# UNWIND: Frame register: RBX
|
|
|
|
# UNWIND: Frame offset: 0
|
|
|
|
# UNWIND: Unwind Codes:
|
|
|
|
# UNWIND: 0x12: UOP_SetFPReg
|
|
|
|
# UNWIND: 0x0f: UOP_PushNonVol RBX
|
|
|
|
# UNWIND: 0x0e: UOP_SaveXMM128 XMM8 [0x0000]
|
|
|
|
# UNWIND: 0x09: UOP_SaveNonVol RSI [0x0010]
|
|
|
|
# UNWIND: 0x04: UOP_AllocSmall 24
|
|
|
|
# UNWIND: 0x00: UOP_PushMachFrame w/o error code
|
|
|
|
# UNWIND: Function Table:
|
2018-04-05 03:15:55 +08:00
|
|
|
# UNWIND: Start Address: 0x1012
|
|
|
|
# UNWIND: End Address: 0x1012
|
2018-04-07 08:46:55 +08:00
|
|
|
# UNWIND: Unwind Info Address: 0x401c
|
2015-06-21 12:00:54 +08:00
|
|
|
# UNWIND: Version: 1
|
|
|
|
# UNWIND: Flags: 4 UNW_ChainInfo
|
|
|
|
# UNWIND: Size of prolog: 0
|
|
|
|
# UNWIND: Number of Codes: 0
|
|
|
|
# UNWIND: No frame pointer used
|
|
|
|
# UNWIND: Function Table:
|
2018-04-05 03:15:55 +08:00
|
|
|
# UNWIND: Start Address: 0x101b
|
|
|
|
# UNWIND: End Address: 0x101c
|
2018-04-07 08:46:55 +08:00
|
|
|
# UNWIND: Unwind Info Address: 0x402c
|
2015-06-21 12:00:54 +08:00
|
|
|
# UNWIND: Version: 1
|
|
|
|
# UNWIND: Flags: 0
|
|
|
|
# UNWIND: Size of prolog: 0
|
|
|
|
# UNWIND: Number of Codes: 0
|
|
|
|
# UNWIND: No frame pointer used
|
|
|
|
# UNWIND: Function Table:
|
2018-04-05 03:15:55 +08:00
|
|
|
# UNWIND: Start Address: 0x101c
|
|
|
|
# UNWIND: End Address: 0x1039
|
2018-04-07 08:46:55 +08:00
|
|
|
# UNWIND: Unwind Info Address: 0x4034
|
2015-06-21 12:00:54 +08:00
|
|
|
# UNWIND: Version: 1
|
|
|
|
# UNWIND: Flags: 0
|
|
|
|
# UNWIND: Size of prolog: 14
|
|
|
|
# UNWIND: Number of Codes: 6
|
|
|
|
# UNWIND: No frame pointer used
|
|
|
|
# UNWIND: Unwind Codes:
|
|
|
|
# UNWIND: 0x0e: UOP_AllocLarge 8454128
|
|
|
|
# UNWIND: 0x07: UOP_AllocLarge 8190
|
|
|
|
# UNWIND: 0x00: UOP_PushMachFrame w/o error code
|
|
|
|
|
2016-06-28 04:17:08 +08:00
|
|
|
--- !COFF
|
2015-06-21 12:00:54 +08:00
|
|
|
header:
|
|
|
|
Machine: IMAGE_FILE_MACHINE_AMD64
|
|
|
|
Characteristics: [ ]
|
|
|
|
sections:
|
|
|
|
- Name: .text
|
|
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
|
|
Alignment: 4
|
|
|
|
SectionData: 4883EC184889742410440F110424534889E3488D235B4883C418C3C34881ECF0FF00004881ECF0FF80004881C4F0FF80004881C4F0FF0000C3
|
|
|
|
- Name: .xdata
|
|
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
|
|
|
Alignment: 4
|
|
|
|
SectionData: 0912080312030F300E880000096402000422001A000000000000000021000000000000001B000000000000000100000000000000010E06000E11F0FF80000701FE1F001A
|
|
|
|
Relocations:
|
|
|
|
- VirtualAddress: 20
|
|
|
|
SymbolName: __C_specific_handler
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 32
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 36
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 40
|
|
|
|
SymbolName: .xdata
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- Name: .pdata
|
|
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
|
|
|
Alignment: 4
|
|
|
|
SectionData: 000000001B0000000000000012000000120000001C00000000000000010000002C000000000000001D00000034000000
|
|
|
|
Relocations:
|
|
|
|
- VirtualAddress: 0
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 4
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 8
|
|
|
|
SymbolName: .xdata
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 12
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 16
|
|
|
|
SymbolName: func
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 20
|
|
|
|
SymbolName: .xdata
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 24
|
|
|
|
SymbolName: smallFunc
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 28
|
|
|
|
SymbolName: smallFunc
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 32
|
|
|
|
SymbolName: .xdata
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 36
|
|
|
|
SymbolName: allocFunc
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 40
|
|
|
|
SymbolName: allocFunc
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
|
|
|
- VirtualAddress: 44
|
|
|
|
SymbolName: .xdata
|
|
|
|
Type: IMAGE_REL_AMD64_ADDR32NB
|
2018-04-07 08:46:55 +08:00
|
|
|
- Name: .rdata
|
|
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
|
|
|
Alignment: 4
|
|
|
|
SectionData: 00000000
|
2015-06-21 12:00:54 +08:00
|
|
|
symbols:
|
|
|
|
- Name: .text
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
|
|
SectionDefinition:
|
|
|
|
Length: 57
|
|
|
|
NumberOfRelocations: 0
|
|
|
|
NumberOfLinenumbers: 0
|
|
|
|
CheckSum: 0
|
|
|
|
Number: 1
|
|
|
|
- Name: .xdata
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 2
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
|
|
SectionDefinition:
|
|
|
|
Length: 68
|
|
|
|
NumberOfRelocations: 4
|
|
|
|
NumberOfLinenumbers: 0
|
|
|
|
CheckSum: 0
|
|
|
|
Number: 2
|
|
|
|
- Name: .pdata
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 3
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
|
|
SectionDefinition:
|
|
|
|
Length: 48
|
|
|
|
NumberOfRelocations: 12
|
|
|
|
NumberOfLinenumbers: 0
|
|
|
|
CheckSum: 0
|
|
|
|
Number: 3
|
|
|
|
- Name: func
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
- Name: __C_specific_handler
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 0
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
- Name: smallFunc
|
|
|
|
Value: 27
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
- Name: allocFunc
|
|
|
|
Value: 28
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
2015-06-29 09:03:53 +08:00
|
|
|
- Name: main
|
2015-06-21 12:00:54 +08:00
|
|
|
Value: 0
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
- Name: __C_specific_handler
|
|
|
|
Value: 0
|
|
|
|
SectionNumber: 1
|
|
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
|
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
|
|
|
...
|