1 // RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | llvm-readobj -h -s -r -t | FileCheck %s 2 3 .text 4 .globl main 5 .align 16, 0x90 6 .type main,@function 7 main: # @main 8 # BB#0: 9 subl $4, %esp 10 movl $.L.str1, (%esp) 11 calll puts 12 movl $.L.str2, (%esp) 13 calll puts 14 xorl %eax, %eax 15 addl $4, %esp 16 ret 17 .Ltmp0: 18 .size main, .Ltmp0-main 19 20 .type .L.str1,@object # @.str1 21 .section .rodata.str1.1,"aMS",@progbits,1 22 .L.str1: 23 .asciz "Hello" 24 .size .L.str1, 6 25 26 .type .L.str2,@object # @.str2 27 .L.str2: 28 .asciz "World!" 29 .size .L.str2, 7 30 31 .section .note.GNU-stack,"",@progbits 32 33 // CHECK: ElfHeader { 34 // CHECK: Class: 32-bit 35 // CHECK: DataEncoding: LittleEndian 36 // CHECK: FileVersion: 1 37 // CHECK: } 38 // CHECK: Sections [ 39 // CHECK: Section { 40 // CHECK: Index: 0 41 // CHECK: Name: (0) 42 43 // CHECK: Name: .text 44 45 // CHECK: Name: .rel.text 46 47 // CHECK: Relocations [ 48 // CHECK: Section (2) .rel.text { 49 // CHECK: 0x6 R_386_32 .rodata.str1.1 50 // CHECK: 0xB R_386_PC32 puts 51 // CHECK: 0x12 R_386_32 .rodata.str1.1 52 // CHECK: 0x17 R_386_PC32 puts 53 // CHECK: } 54 // CHECK: ] 55 56 // CHECK: Symbols [ 57 // CHECK: Symbol { 58 // CHECK: Binding: Local 59 // CHECK: Type: Section 60 // CHECK: } 61 62 // CHECK: Symbol { 63 // CHECK: Binding: Local 64 // CHECK: Type: Section 65 // CHECK: } 66 67 // CHECK: Symbol { 68 // CHECK: Binding: Local 69 // CHECK: Type: Section 70 // CHECK: } 71 72 // CHECK: Symbol { 73 // CHECK: Name: main 74 // CHECK: Binding: Global 75 // CHECK: Type: Function 76 // CHECK: } 77 78 // CHECK: Symbol { 79 // CHECK: Name: puts 80 // CHECK: Binding: Global 81 // CHECK: Type: None 82 // CHECK: } 83