135 lines · plain
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -h -S -r --symbols - | FileCheck %s2 3 .text4 .globl main5 .align 16, 0x906 .type main,@function7main: # @main8# %bb.0:9 subq $8, %rsp10 movl $.L.str1, %edi11 callq puts12 movl $.L.str2, %edi13 callq puts14 xorl %eax, %eax15 addq $8, %rsp16 call foo@GOTPCREL17 ja foo18 jae foo19 jb foo20 jbe foo21 jc foo22 je foo23 jz foo24 jg foo25 jge foo26 jl foo27 jle foo28 jna foo29 jnae foo30 jnb foo31 jnbe foo32 jnc foo33 jne foo34 jng foo35 jnge foo36 jnl foo37 jnle foo38 jno foo39 jnp foo40 jns foo41 jnz foo42 jo foo43 jp foo44 jpe foo45 jpo foo46 js foo47 jz foo48 ret49.Ltmp0:50 .size main, .Ltmp0-main51 52 .type .L.str1,@object # @.str153 .section .rodata.str1.1,"aMS",@progbits,154.L.str1:55 .asciz "Hello"56 .size .L.str1, 657 58 .type .L.str2,@object # @.str259.L.str2:60 .asciz "World!"61 .size .L.str2, 762 63 .section .note.GNU-stack,"",@progbits64 65// CHECK: ElfHeader {66// CHECK: Class: 64-bit67// CHECK: DataEncoding: LittleEndian68// CHECK: FileVersion: 169// CHECK: }70// CHECK: Sections [71// CHECK: Section {72// CHECK: Index: 073// CHECK: Name: (0)74 75// CHECK: Name: .text76 77// CHECK: Name: .rela.text78 79// CHECK: Relocations [80// CHECK: Section {{.*}} .rela.text {81// CHECK-NEXT: 0x5 R_X86_64_32 .rodata.str1.1 0x082// CHECK-NEXT: 0xA R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC83// CHECK-NEXT: 0xF R_X86_64_32 .rodata.str1.1 0x684// CHECK-NEXT: 0x14 R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC85// CHECK-NEXT: 0x1F R_X86_64_GOTPCREL foo 0xFFFFFFFFFFFFFFFC86// CHECK-NEXT: 0x25 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC87// CHECK-NEXT: 0x2B R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC88// CHECK-NEXT: 0x31 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC89// CHECK-NEXT: 0x37 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC90// CHECK-NEXT: 0x3D R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC91// CHECK-NEXT: 0x43 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC92// CHECK-NEXT: 0x49 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC93// CHECK-NEXT: 0x4F R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC94// CHECK-NEXT: 0x55 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC95// CHECK-NEXT: 0x5B R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC96// CHECK-NEXT: 0x61 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC97// CHECK-NEXT: 0x67 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC98// CHECK-NEXT: 0x6D R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC99// CHECK-NEXT: 0x73 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC100// CHECK-NEXT: 0x79 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC101// CHECK-NEXT: 0x7F R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC102// CHECK-NEXT: 0x85 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC103// CHECK-NEXT: 0x8B R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC104// CHECK-NEXT: 0x91 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC105// CHECK-NEXT: 0x97 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC106// CHECK-NEXT: 0x9D R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC107// CHECK-NEXT: 0xA3 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC108// CHECK-NEXT: 0xA9 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC109// CHECK-NEXT: 0xAF R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC110// CHECK-NEXT: 0xB5 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC111// CHECK-NEXT: 0xBB R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC112// CHECK-NEXT: 0xC1 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC113// CHECK-NEXT: 0xC7 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC114// CHECK-NEXT: 0xCD R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC115// CHECK-NEXT: 0xD3 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC116// CHECK-NEXT: 0xD9 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC117// CHECK-NEXT: }118// CHECK-NEXT: ]119 120// CHECK: Symbol {121// CHECK: Binding: Local122// CHECK: Type: Section123 124// CHECK: Symbol {125// CHECK: Name: main126// CHECK: Binding: Global127// CHECK: Type: Function128// CHECK: }129 130// CHECK: Symbol {131// CHECK: Name: puts132// CHECK: Binding: Global133// CHECK: Type: None134// CHECK: }135