400 lines · plain
1// RUN: llvm-mc -filetype=obj -triple arm-eabi %s -o - | llvm-readobj -S --symbols - | FileCheck %s2// Test that global variables and functions are assigned correct section.3 .text4 .syntax unified5 .eabi_attribute 67, "2.09" @ Tag_conformance6 .eabi_attribute 6, 1 @ Tag_CPU_arch7 .eabi_attribute 8, 1 @ Tag_ARM_ISA_use8 .eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use9 .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal10 .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions11 .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model12 .eabi_attribute 34, 1 @ Tag_CPU_unaligned_access13 .eabi_attribute 24, 1 @ Tag_ABI_align_needed14 .eabi_attribute 25, 1 @ Tag_ABI_align_preserved15 .eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format16 .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t17 .eabi_attribute 26, 2 @ Tag_ABI_enum_size18 .eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use19 .section my_text.1,"ax",%progbits20 .globl foo21 .p2align 222 .type foo,%function23 .code 32 @ @foo24foo:25 .fnstart26@ %bb.0: @ %entry27 ldr r0, .LCPI0_028 ldr r0, [r0]29 mov pc, lr30 .p2align 231@ %bb.1:32.LCPI0_0:33 .long b34.Lfunc_end0:35 .size foo, .Lfunc_end0-foo36 .cantunwind37 .fnend38 39 .section my_text.2,"ax",%progbits40 .globl goo41 .p2align 242 .type goo,%function43 .code 32 @ @goo44goo:45 .fnstart46@ %bb.0: @ %entry47 .save {r11, lr}48 push {r11, lr}49 ldr r0, .LCPI1_050 ldr r1, .LCPI1_151 bl zoo52 pop {r11, lr}53 mov pc, lr54 .p2align 255@ %bb.1:56.LCPI1_0:57 .long _ZL1g58.LCPI1_1:59 .long _ZZ3gooE7lstat_h60.Lfunc_end1:61 .size goo, .Lfunc_end1-goo62 .cantunwind63 .fnend64 65 .text66 .globl hoo67 .p2align 268 .type hoo,%function69 .code 32 @ @hoo70hoo:71 .fnstart72@ %bb.0: @ %entry73 ldr r0, .LCPI2_074 ldr r0, [r0]75 mov pc, lr76 .p2align 277@ %bb.1:78.LCPI2_0:79 .long b80.Lfunc_end2:81 .size hoo, .Lfunc_end2-hoo82 .cantunwind83 .fnend84 85 .type a,%object @ @a86 .section my_bss.1,"aw",%nobits87 .globl a88 .p2align 289a:90 .long 0 @ 0x091 .size a, 492 93 .type b,%object @ @b94 .section my_data.1,"aw",%progbits95 .globl b96 .p2align 297b:98 .long 1 @ 0x199 .size b, 4100 101 .type c,%object @ @c102 .section my_bss.1,"aw",%nobits103 .globl c104 .p2align 2105c:106 .zero 16107 .size c, 16108 109 .type d,%object @ @d110 .globl d111 .p2align 1112d:113 .zero 10114 .size d, 10115 116 .type e,%object @ @e117 .section my_data.1,"aw",%progbits118 .globl e119 .p2align 1120e:121 .short 0 @ 0x0122 .short 0 @ 0x0123 .short 1 @ 0x1124 .short 0 @ 0x0125 .short 0 @ 0x0126 .short 0 @ 0x0127 .size e, 12128 129 .type f,%object @ @f130 .section my_rodata.1,"a",%progbits131 .globl f132 .p2align 2133f:134 .long 2 @ 0x2135 .size f, 4136 137 .type h,%object @ @h138 .bss139 .globl h140 .p2align 2141h:142 .long 0 @ 0x0143 .size h, 4144 145 .type i,%object @ @i146 .section my_bss.2,"aw",%nobits147 .globl i148 .p2align 2149i:150 .long 0 @ 0x0151 .size i, 4152 153 .type j,%object @ @j154 .section my_rodata.1,"a",%progbits155 .globl j156 .p2align 2157j:158 .long 4 @ 0x4159 .size j, 4160 161 .type k,%object @ @k162 .section my_bss.2,"aw",%nobits163 .globl k164 .p2align 2165k:166 .long 0 @ 0x0167 .size k, 4168 169 .type _ZZ3gooE7lstat_h,%object @ @_ZZ3gooE7lstat_h170 .p2align 2171_ZZ3gooE7lstat_h:172 .long 0 @ 0x0173 .size _ZZ3gooE7lstat_h, 4174 175 .type _ZL1g,%object @ @_ZL1g176 .section my_bss.1,"aw",%nobits177 .p2align 2178_ZL1g:179 .zero 8180 .size _ZL1g, 8181 182 .type l,%object @ @l183 .section my_data.2,"aw",%progbits184 .globl l185 .p2align 2186l:187 .long 5 @ 0x5188 .size l, 4189 190 .type m,%object @ @m191 .section my_rodata.2,"a",%progbits192 .globl m193 .p2align 2194m:195 .long 6 @ 0x6196 .size m, 4197 198 .type n,%object @ @n199 .bss200 .globl n201 .p2align 2202n:203 .long 0 @ 0x0204 .size n, 4205 206 .type o,%object @ @o207 .data208 .globl o209 .p2align 2210o:211 .long 6 @ 0x6212 .size o, 4213 214 .type p,%object @ @p215 .section .rodata,"a",%progbits216 .globl p217 .p2align 2218p:219 .long 7 @ 0x7220 .size p, 4221 222 223 .ident "clang version 5.0.0"224 .section ".note.GNU-stack","",%progbits225 .eabi_attribute 30, 1 @ Tag_ABI_optimization_goals226 227//CHECK: Section {228//CHECK: Name: .text229//CHECK: Type: SHT_PROGBITS (0x1)230//CHECK: Flags [ (0x6)231//CHECK: SHF_ALLOC (0x2)232//CHECK: SHF_EXECINSTR (0x4)233//CHECK: ]234//CHECK: }235//CHECK: Section {236//CHECK: Name: my_text.1237//CHECK: Type: SHT_PROGBITS (0x1)238//CHECK: Flags [ (0x6)239//CHECK: SHF_ALLOC (0x2)240//CHECK: SHF_EXECINSTR (0x4)241//CHECK: ]242//CHECK: }243//CHECK: Section {244//CHECK: Name: my_text.2245//CHECK: Type: SHT_PROGBITS (0x1)246//CHECK: Flags [ (0x6)247//CHECK: SHF_ALLOC (0x2)248//CHECK: SHF_EXECINSTR (0x4)249//CHECK: ]250//CHECK: }251//CHECK: Section {252//CHECK: Name: my_bss.1253//CHECK: Type: SHT_NOBITS (0x8)254//CHECK: Flags [ (0x3)255//CHECK: SHF_ALLOC (0x2)256//CHECK: SHF_WRITE (0x1)257//CHECK: ]258//CHECK: }259//CHECK: Section {260//CHECK: Name: my_data.1261//CHECK: Type: SHT_PROGBITS (0x1)262//CHECK: Flags [ (0x3)263//CHECK: SHF_ALLOC (0x2)264//CHECK: SHF_WRITE (0x1)265//CHECK: ]266//CHECK: }267//CHECK: Section {268//CHECK: Name: my_rodata.1269//CHECK: Type: SHT_PROGBITS (0x1)270//CHECK: Flags [ (0x2)271//CHECK: SHF_ALLOC (0x2)272//CHECK: ]273//CHECK: }274//CHECK: Section {275//CHECK: Name: .bss276//CHECK: Type: SHT_NOBITS (0x8)277//CHECK: Flags [ (0x3)278//CHECK: SHF_ALLOC (0x2)279//CHECK: SHF_WRITE (0x1)280//CHECK: ]281//CHECK: }282//CHECK: Section {283//CHECK: Name: my_bss.2284//CHECK: Type: SHT_NOBITS (0x8)285//CHECK: Flags [ (0x3)286//CHECK: SHF_ALLOC (0x2)287//CHECK: SHF_WRITE (0x1)288//CHECK: ]289//CHECK: }290//CHECK: Section {291//CHECK: Name: my_data.2292//CHECK: Type: SHT_PROGBITS (0x1)293//CHECK: Flags [ (0x3)294//CHECK: SHF_ALLOC (0x2)295//CHECK: SHF_WRITE (0x1)296//CHECK: ]297//CHECK: }298//CHECK: Section {299//CHECK: Name: my_rodata.2300//CHECK: Type: SHT_PROGBITS (0x1)301//CHECK: Flags [ (0x2)302//CHECK: SHF_ALLOC (0x2)303//CHECK: ]304//CHECK: }305//CHECK: Section {306//CHECK: Name: .data307//CHECK: Type: SHT_PROGBITS (0x1)308//CHECK: Flags [ (0x3)309//CHECK: SHF_ALLOC (0x2)310//CHECK: SHF_WRITE (0x1)311//CHECK: ]312//CHECK: }313//CHECK: Section {314//CHECK: Name: .rodata315//CHECK: Type: SHT_PROGBITS (0x1)316//CHECK: Flags [ (0x2)317//CHECK: SHF_ALLOC (0x2)318//CHECK: ]319//CHECK: }320//CHECK: Symbol {321//CHECK: Name: _ZL1g322//CHECK: Section: my_bss.1 (0xE)323//CHECK: }324//CHECK: Symbol {325//CHECK: Name: _ZZ3gooE7lstat_h326//CHECK: Section: my_bss.2 (0x12)327//CHECK: }328//CHECK: Symbol {329//CHECK: Name: foo330//CHECK: Section: my_text.1 (0x4)331//CHECK: }332//CHECK: Symbol {333//CHECK: Name: b334//CHECK: Section: my_data.1 (0xF)335//CHECK: }336//CHECK: Symbol {337//CHECK: Name: goo338//CHECK: Section: my_text.2 (0x8)339//CHECK: }340//CHECK: Symbol {341//CHECK: Name: hoo342//CHECK: Section: .text (0x2)343//CHECK: }344//CHECK: Symbol {345//CHECK: Name: a346//CHECK: Section: my_bss.1 (0xE)347//CHECK: }348//CHECK: Symbol {349//CHECK: Name: c350//CHECK: Section: my_bss.1 (0xE)351//CHECK: }352//CHECK: Symbol {353//CHECK: Name: d354//CHECK: Section: my_bss.1 (0xE)355//CHECK: }356//CHECK: Symbol {357//CHECK: Name: e358//CHECK: Section: my_data.1 (0xF)359//CHECK: }360//CHECK: Symbol {361//CHECK: Name: f362//CHECK: Section: my_rodata.1 (0x10)363//CHECK: }364//CHECK: Symbol {365//CHECK: Name: h366//CHECK: Section: .bss (0x11)367//CHECK: }368//CHECK: Symbol {369//CHECK: Name: i370//CHECK: Section: my_bss.2 (0x12)371//CHECK: }372//CHECK: Symbol {373//CHECK: Name: j374//CHECK: Section: my_rodata.1 (0x10)375//CHECK: }376//CHECK: Symbol {377//CHECK: Name: k378//CHECK: Section: my_bss.2 (0x12)379//CHECK: }380//CHECK: Symbol {381//CHECK: Name: l382//CHECK: Section: my_data.2 (0x13)383//CHECK: }384//CHECK: Symbol {385//CHECK: Name: m386//CHECK: Section: my_rodata.2 (0x14)387//CHECK: }388//CHECK: Symbol {389//CHECK: Name: n390//CHECK: Section: .bss (0x11)391//CHECK: }392//CHECK: Symbol {393//CHECK: Name: o394//CHECK: Section: .data (0x15)395//CHECK: }396//CHECK: Symbol {397//CHECK: Name: p398//CHECK: Section: .rodata (0x16)399//CHECK: }400