You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.0 KiB
112 lines
3.0 KiB
// Verify the .fix data section conveys the right offsets and the right relocations
|
|
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o - | llvm-readobj -r --expand-relocs -S --section-data - | FileCheck %s --check-prefix=READOBJ
|
|
|
|
.text
|
|
.section .rdata,"dr"
|
|
.globl g1 # @g1
|
|
.align 4
|
|
g1:
|
|
.long 1 # 0x1
|
|
|
|
.globl g2 # @g2
|
|
.align 4
|
|
g2:
|
|
.long 2 # 0x2
|
|
|
|
.globl g3 # @g3
|
|
.align 4
|
|
g3:
|
|
.long 3 # 0x3
|
|
|
|
.globl g4 # @g4
|
|
.align 4
|
|
g4:
|
|
.long 4 # 0x4
|
|
|
|
.section .fix,"dw"
|
|
.globl t1 # @t1
|
|
.align 8
|
|
t1:
|
|
|
|
.globl t2 # @t2
|
|
.align 8
|
|
t2:
|
|
|
|
.globl t3 # @t3
|
|
.align 8
|
|
t3:
|
|
|
|
.globl t4 # @t4
|
|
.align 4
|
|
t4:
|
|
.long g3-t4
|
|
|
|
.globl t5 # @t5
|
|
.align 4
|
|
t5:
|
|
.long g3@IMGREL
|
|
|
|
.globl t6 # @t6
|
|
.align 16
|
|
t6:
|
|
.ascii "\001\002"
|
|
.zero 6
|
|
.quad 256 # 0x100
|
|
.long g3-(t6+16)
|
|
.zero 4
|
|
|
|
.long foobar - .
|
|
|
|
// READOBJ: Section {
|
|
// READOBJ: Number:
|
|
// READOBJ: Name: .fix (2E 66 69 78 00 00 00 00)
|
|
// READOBJ-NEXT: VirtualSize: 0x0
|
|
// READOBJ-NEXT: VirtualAddress: 0x0
|
|
// READOBJ-NEXT: RawDataSize:
|
|
// READOBJ-NEXT: PointerToRawData: 0xEC
|
|
// READOBJ-NEXT: PointerToRelocations:
|
|
// READOBJ-NEXT: PointerToLineNumbers: 0x0
|
|
// READOBJ-NEXT: RelocationCount:
|
|
// READOBJ-NEXT: LineNumberCount: 0
|
|
// READOBJ-NEXT: Characteristics [ (0xC0500040)
|
|
// READOBJ-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000)
|
|
// READOBJ-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40)
|
|
// READOBJ-NEXT: IMAGE_SCN_MEM_READ (0x40000000)
|
|
// READOBJ-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000)
|
|
// READOBJ-NEXT: ]
|
|
// READOBJ-NEXT: SectionData (
|
|
// READOBJ-NEXT: 0000: 04000000 00000000 00000000 00000000 |
|
|
// READOBJ-NEXT: 0010: 01020000 00000000 00010000 00000000 |
|
|
// READOBJ-NEXT: 0020: 04000000 00000000 04000000 |
|
|
// READOBJ-NEXT: )
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: ]
|
|
// READOBJ-NEXT: Relocations [
|
|
// READOBJ-NEXT: Section (5) .fix {
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x0
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: SymbolIndex: 12
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x4
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_ADDR32NB (3)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: SymbolIndex: 12
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x20
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: g3
|
|
// READOBJ-NEXT: SymbolIndex: 12
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: Relocation {
|
|
// READOBJ-NEXT: Offset: 0x28
|
|
// READOBJ-NEXT: Type: IMAGE_REL_AMD64_REL32 (4)
|
|
// READOBJ-NEXT: Symbol: foobar
|
|
// READOBJ-NEXT: SymbolIndex: 20
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT: }
|
|
// READOBJ-NEXT:]
|