Home | History | Annotate | Download | only in COFF
      1 // Verify the .fix data section conveys the right offsets and the right relocations
      2 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o - | llvm-readobj -relocations -expand-relocs -sections -section-data | FileCheck %s --check-prefix=READOBJ
      3 
      4         .text
      5 	.section	.rdata,"dr"
      6 	.globl	g1                      # @g1
      7 	.align	4
      8 g1:
      9 	.long	1                       # 0x1
     10 
     11 	.globl	g2                      # @g2
     12 	.align	4
     13 g2:
     14 	.long	2                       # 0x2
     15 
     16 	.globl	g3                      # @g3
     17 	.align	4
     18 g3:
     19 	.long	3                       # 0x3
     20 
     21 	.globl	g4                      # @g4
     22 	.align	4
     23 g4:
     24 	.long	4                       # 0x4
     25 
     26 	.section	.fix,"dw"
     27 	.globl	t1                      # @t1
     28 	.align	8
     29 t1:
     30 	.quad	(g3-t1)+4
     31 
     32 	.globl	t2                      # @t2
     33 	.align	8
     34 t2:
     35 	.quad	g3-t2
     36 
     37 	.globl	t3                      # @t3
     38 	.align	8
     39 t3:
     40 	.quad	(g3-t3)-4
     41 
     42 	.globl	t4                      # @t4
     43 	.align	4
     44 t4:
     45 	.long	g3-t4
     46 
     47 	.globl	t5                      # @t5
     48 	.align	4
     49 t5:
     50 	.long	g3@IMGREL
     51 
     52 	.globl	t6                      # @t6
     53 	.align	16
     54 t6:
     55 	.ascii	"\001\002"
     56 	.zero	6
     57 	.quad	256                     # 0x100
     58 	.long	g3-(t6+16)
     59 	.zero	4
     60 
     61 
     62 // READOBJ:  Section {
     63 // READOBJ:    Number: 5
     64 // READOBJ:    Name: .fix (2E 66 69 78 00 00 00 00)
     65 // READOBJ:    VirtualSize: 0x0
     66 // READOBJ:    VirtualAddress: 0x0
     67 // READOBJ:    RawDataSize: 56
     68 // READOBJ:    PointerToRawData: 0xEC
     69 // READOBJ:    PointerToRelocations: 0x124
     70 // READOBJ:    PointerToLineNumbers: 0x0
     71 // READOBJ:    RelocationCount: 6
     72 // READOBJ:    LineNumberCount: 0
     73 // READOBJ:    Characteristics [ (0xC0500040)
     74 // READOBJ:      IMAGE_SCN_ALIGN_16BYTES (0x500000)
     75 // READOBJ:      IMAGE_SCN_CNT_INITIALIZED_DATA (0x40)
     76 // READOBJ:      IMAGE_SCN_MEM_READ (0x40000000)
     77 // READOBJ:      IMAGE_SCN_MEM_WRITE (0x80000000)
     78 // READOBJ:    ]
     79 // READOBJ:    SectionData (
     80 // READOBJ:      0000: 10000000 00000000 0C000000 00000000  |................|
     81 // READOBJ:      0010: 08000000 00000000 0C000000 00000000  |................|
     82 // READOBJ:      0020: 01020000 00000000 00010000 00000000  |................|
     83 // READOBJ:      0030: 0C000000 00000000                    |........|
     84 // READOBJ:    )
     85 // READOBJ:  }
     86 // READOBJ:  ]
     87 // READOBJ:  Relocations [
     88 // READOBJ:  Section (5) .fix {
     89 // READOBJ:    Relocation {
     90 // READOBJ:      Offset: 0x0
     91 // READOBJ:      Type: IMAGE_REL_AMD64_REL32 (4)
     92 // READOBJ:      Symbol: .rdata
     93 // READOBJ:    }
     94 // READOBJ:    Relocation {
     95 // READOBJ:      Offset: 0x8
     96 // READOBJ:      Type: IMAGE_REL_AMD64_REL32 (4)
     97 // READOBJ:      Symbol: .rdata
     98 // READOBJ:    }
     99 // READOBJ:    Relocation {
    100 // READOBJ:      Offset: 0x10
    101 // READOBJ:      Type: IMAGE_REL_AMD64_REL32 (4)
    102 // READOBJ:      Symbol: .rdata
    103 // READOBJ:    }
    104 // READOBJ:    Relocation {
    105 // READOBJ:      Offset: 0x18
    106 // READOBJ:      Type: IMAGE_REL_AMD64_REL32 (4)
    107 // READOBJ:      Symbol: .rdata
    108 // READOBJ:    }
    109 // READOBJ:    Relocation {
    110 // READOBJ:      Offset: 0x1C
    111 // READOBJ:      Type: IMAGE_REL_AMD64_ADDR32NB (3)
    112 // READOBJ:      Symbol: g3
    113 // READOBJ:    }
    114 // READOBJ:    Relocation {
    115 // READOBJ:      Offset: 0x30
    116 // READOBJ:      Type: IMAGE_REL_AMD64_REL32 (4)
    117 // READOBJ:      Symbol: .rdata
    118 // READOBJ:    }
    119