// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -h -s -r -t | FileCheck %s .text .globl main .align 16, 0x90 .type main,@function main: # @main # %bb.0: subq $8, %rsp movl $.L.str1, %edi callq puts movl $.L.str2, %edi callq puts xorl %eax, %eax addq $8, %rsp call foo@GOTPCREL ret .Ltmp0: .size main, .Ltmp0-main .type .L.str1,@object # @.str1 .section .rodata.str1.1,"aMS",@progbits,1 .L.str1: .asciz "Hello" .size .L.str1, 6 .type .L.str2,@object # @.str2 .L.str2: .asciz "World!" .size .L.str2, 7 .section .note.GNU-stack,"",@progbits // CHECK: ElfHeader { // CHECK: Class: 64-bit // CHECK: DataEncoding: LittleEndian // CHECK: FileVersion: 1 // CHECK: } // CHECK: Sections [ // CHECK: Section { // CHECK: Index: 0 // CHECK: Name: (0) // CHECK: Name: .text // CHECK: Name: .rela.text // CHECK: Relocations [ // CHECK: Section {{.*}} .rela.text { // CHECK-NEXT: 0x5 R_X86_64_32 .rodata.str1.1 0x0 // CHECK-NEXT: 0xA R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: 0xF R_X86_64_32 .rodata.str1.1 0x6 // CHECK-NEXT: 0x14 R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: 0x1F R_X86_64_GOTPCREL foo 0xFFFFFFFFFFFFFFFC // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK: Symbol { // CHECK: Binding: Local // CHECK: Type: Section // CHECK: Symbol { // CHECK: Name: main // CHECK: Binding: Global // CHECK: Type: Function // CHECK: } // CHECK: Symbol { // CHECK: Name: puts // CHECK: Binding: Global // CHECK: Type: None // CHECK: }