brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.5 KiB · f062311 Raw
364 lines · plain
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S - | FileCheck %s2// RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s -o - |  FileCheck %s --check-prefix=ASM3 4/// The second .text has no effect, therefore it is not printed.5// ASM:       .text6// ASM-EMPTY:7.text8.text9 10// Test that these names are accepted.11 12.section	.note.GNU-stack,"",@progbits13.section	.note.GNU-stack2,"",%progbits14.section	.note.GNU-,"",@progbits15.section	-.note.GNU,"","progbits"16.section	src/stack.c,"",@progbits17.section	~!@$%^&*()_-+={[}]|\\:<>,"",@progbits18 19// CHECK: Name: .note.GNU-stack20// CHECK: Name: .note.GNU-stack221// CHECK: Name: .note.GNU-22// CHECK: Name: -.note.GNU23// CHECK: Name: src/stack.c24// CHECK: Name: ~!@$%^&*()_-+={[}]|\\:<>25 26// Test that the defaults are used27 28.section	.init29.section	.fini30.section	.rodata31.section	zed, ""32 33// CHECK:        Section {34// CHECK:          Name: .init35// CHECK-NEXT:     Type: SHT_PROGBITS36// CHECK-NEXT:     Flags [37// CHECK-NEXT:       SHF_ALLOC38// CHECK-NEXT:       SHF_EXECINSTR39// CHECK-NEXT:     ]40// CHECK-NEXT:     Address: 0x041// CHECK-NEXT:     Offset:42// CHECK-NEXT:     Size: 043// CHECK-NEXT:     Link: 044// CHECK-NEXT:     Info: 045// CHECK-NEXT:     AddressAlignment: 146// CHECK-NEXT:     EntrySize: 047// CHECK-NEXT:   }48// CHECK-NEXT:   Section {49// CHECK-NEXT:     Index:50// CHECK-NEXT:     Name: .fini51// CHECK-NEXT:     Type: SHT_PROGBITS52// CHECK-NEXT:     Flags [53// CHECK-NEXT:       SHF_ALLOC54// CHECK-NEXT:       SHF_EXECINSTR55// CHECK-NEXT:     ]56// CHECK-NEXT:     Address: 0x057// CHECK-NEXT:     Offset:58// CHECK-NEXT:     Size: 059// CHECK-NEXT:     Link: 060// CHECK-NEXT:     Info: 061// CHECK-NEXT:     AddressAlignment: 162// CHECK-NEXT:     EntrySize: 063// CHECK-NEXT:   }64// CHECK-NEXT:   Section {65// CHECK-NEXT:     Index:66// CHECK-NEXT:     Name: .rodata67// CHECK-NEXT:     Type: SHT_PROGBITS68// CHECK-NEXT:     Flags [69// CHECK-NEXT:       SHF_ALLOC70// CHECK-NEXT:     ]71// CHECK-NEXT:     Address: 0x072// CHECK-NEXT:     Offset:73// CHECK-NEXT:     Size: 074// CHECK-NEXT:     Link: 075// CHECK-NEXT:     Info: 076// CHECK-NEXT:     AddressAlignment: 177// CHECK-NEXT:     EntrySize: 078// CHECK-NEXT:   }79// CHECK-NEXT:   Section {80// CHECK-NEXT:     Index:81// CHECK-NEXT:     Name: zed82// CHECK-NEXT:     Type: SHT_PROGBITS83// CHECK-NEXT:     Flags [84// CHECK-NEXT:     ]85// CHECK-NEXT:     Address: 0x086// CHECK-NEXT:     Offset:87// CHECK-NEXT:     Size: 088// CHECK-NEXT:     Link: 089// CHECK-NEXT:     Info: 090// CHECK-NEXT:     AddressAlignment: 191// CHECK-NEXT:     EntrySize: 092// CHECK-NEXT:   }93 94.section	.note.test,"",@note95// CHECK:        Section {96// CHECK:          Name: .note.test97// CHECK-NEXT:     Type: SHT_NOTE98// CHECK-NEXT:     Flags [99// CHECK-NEXT:     ]100// CHECK-NEXT:     Address: 0x0101// CHECK-NEXT:     Offset:102// CHECK-NEXT:     Size: 0103// CHECK-NEXT:     Link: 0104// CHECK-NEXT:     Info: 0105// CHECK-NEXT:     AddressAlignment: 1106// CHECK-NEXT:     EntrySize: 0107// CHECK-NEXT:   }108 109// Test that we can parse these110foo:111bar:112.section        .text.foo,"axG",@progbits,foo,comdat113.section        .text.bar,"axMG",@progbits,42,bar,comdat114 115// Test that the default values are not used116 117.section .eh_frame,"a",@unwind118 119// CHECK:        Section {120// CHECK:          Name: .eh_frame121// CHECK-NEXT:     Type: SHT_X86_64_UNWIND122// CHECK-NEXT:     Flags [123// CHECK-NEXT:       SHF_ALLOC124// CHECK-NEXT:     ]125// CHECK-NEXT:     Address: 0x0126// CHECK-NEXT:     Offset:127// CHECK-NEXT:     Size: 0128// CHECK-NEXT:     Link: 0129// CHECK-NEXT:     Info: 0130// CHECK-NEXT:     AddressAlignment: 1131// CHECK-NEXT:     EntrySize: 0132// CHECK-NEXT:   }133 134.section .excluded,"e",@progbits135 136// CHECK:      Section {137// CHECK:        Name: .excluded138// CHECK-NEXT:   Type: SHT_PROGBITS (0x1)139// CHECK-NEXT:   Flags [ (0x80000000)140// CHECK-NEXT:     SHF_EXCLUDE (0x80000000)141// CHECK-NEXT:   ]142// CHECK-NEXT:   Address: 0x0143// CHECK-NEXT:   Offset:144// CHECK-NEXT:   Size: 0145// CHECK-NEXT:   Link: 0146// CHECK-NEXT:   Info: 0147// CHECK-NEXT:   AddressAlignment: 1148// CHECK-NEXT:   EntrySize: 0149// CHECK-NEXT: }150 151// Test that we handle the strings like gas152.section bar-"foo"153.section "fooo"154 155 156// CHECK:        Section {157// CHECK:          Name: bar-"foo"158// CHECK:        Section {159// CHECK:          Name: fooo160 161// Test SHF_LINK_ORDER162 163.section .shf_metadata_target1, "a"164        .quad 0165.section .shf_metadata_target2, "a", @progbits, unique, 1166.Lshf_metadata_target2_1:167        .quad 0168.section .shf_metadata_target2, "a", @progbits, unique, 2169.Lshf_metadata_target2_2:170        .quad 0171 172.section .shf_metadata1,"ao",@progbits,.Lshf_metadata_target2_1173.section .shf_metadata2,"ao",@progbits,.Lshf_metadata_target2_2174.section .shf_metadata3,"ao",@progbits,.shf_metadata_target1175.section .linkorder_group_zero,"aoG",@progbits,.shf_metadata_target1,foo176// ASM: .section .shf_metadata1,"ao",@progbits,.Lshf_metadata_target2_1177// ASM: .section .shf_metadata2,"ao",@progbits,.Lshf_metadata_target2_2178// ASM: .section .shf_metadata3,"ao",@progbits,.shf_metadata_target1179// ASM: .section .linkorder_group_zero,"aoG",@progbits,.shf_metadata_target1,foo{{$}}180 181// CHECK:      Section {182// CHECK:        Index: 22183// CHECK-NEXT:   Name: .shf_metadata_target1184 185// CHECK:      Section {186// CHECK:        Index: 23187// CHECK-NEXT:   Name: .shf_metadata_target2188 189// CHECK:      Section {190// CHECK:        Index: 24191// CHECK-NEXT:   Name: .shf_metadata_target2192 193// CHECK:      Section {194// CHECK:        Name: .shf_metadata1195// CHECK-NEXT:   Type: SHT_PROGBITS196// CHECK-NEXT:   Flags [197// CHECK-NEXT:     SHF_ALLOC198// CHECK-NEXT:     SHF_LINK_ORDER199// CHECK-NEXT:   ]200// CHECK-NEXT:   Address:201// CHECK-NEXT:   Offset:202// CHECK-NEXT:   Size:203// CHECK-NEXT:   Link:    23204// CHECK-NEXT:   Info:    0205 206// CHECK:      Section {207// CHECK:        Name: .shf_metadata2208// CHECK-NEXT:   Type: SHT_PROGBITS209// CHECK-NEXT:   Flags [210// CHECK-NEXT:     SHF_ALLOC211// CHECK-NEXT:     SHF_LINK_ORDER212// CHECK-NEXT:   ]213// CHECK-NEXT:   Address:214// CHECK-NEXT:   Offset:215// CHECK-NEXT:   Size:216// CHECK-NEXT:   Link:    24217// CHECK-NEXT:   Info:    0218 219// CHECK:      Section {220// CHECK:        Name: .shf_metadata3221// CHECK-NEXT:   Type: SHT_PROGBITS222// CHECK-NEXT:   Flags [223// CHECK-NEXT:     SHF_ALLOC224// CHECK-NEXT:     SHF_LINK_ORDER225// CHECK-NEXT:   ]226// CHECK-NEXT:   Address:227// CHECK-NEXT:   Offset:228// CHECK-NEXT:   Size:229// CHECK-NEXT:   Link:    22230// CHECK-NEXT:   Info:    0231 232// CHECK:      Section {233// CHECK:        Name: .linkorder_group_zero234// CHECK-NEXT:   Type: SHT_PROGBITS235// CHECK-NEXT:   Flags [236// CHECK-NEXT:     SHF_ALLOC237// CHECK-NEXT:     SHF_GROUP238// CHECK-NEXT:     SHF_LINK_ORDER239// CHECK-NEXT:   ]240// CHECK-NEXT:   Address:241// CHECK-NEXT:   Offset:242// CHECK-NEXT:   Size:243// CHECK-NEXT:   Link:    22244// CHECK-NEXT:   Info:    0245 246.section	.text.foo247// CHECK:        Section {248// CHECK:          Name: .text.foo249// CHECK-NEXT:     Type: SHT_PROGBITS250// CHECK-NEXT:     Flags [251// CHECK-NEXT:       SHF_ALLOC252// CHECK-NEXT:       SHF_EXECINSTR253// CHECK-NEXT:     ]254 255.section .bss256// CHECK:        Section {257// CHECK:          Name: .bss258// CHECK-NEXT:     Type: SHT_NOBITS259// CHECK-NEXT:     Flags [260// CHECK-NEXT:       SHF_ALLOC261// CHECK-NEXT:       SHF_WRITE262// CHECK-NEXT:     ]263 264.section .bss.foo265// CHECK:        Section {266// CHECK:          Name: .bss.foo267// CHECK-NEXT:     Type: SHT_NOBITS268// CHECK-NEXT:     Flags [269// CHECK-NEXT:       SHF_ALLOC270// CHECK-NEXT:       SHF_WRITE271// CHECK-NEXT:     ]272 273.section .tbss274// CHECK:        Section {275// CHECK:          Name: .tbss276// CHECK-NEXT:     Type: SHT_NOBITS277// CHECK-NEXT:     Flags [278// CHECK-NEXT:       SHF_ALLOC279// CHECK-NEXT:       SHF_TLS280// CHECK-NEXT:       SHF_WRITE281// CHECK-NEXT:     ]282 283.section .tbss.foo284// CHECK:        Section {285// CHECK:          Name: .tbss.foo286// CHECK-NEXT:     Type: SHT_NOBITS287// CHECK-NEXT:     Flags [288// CHECK-NEXT:       SHF_ALLOC289// CHECK-NEXT:       SHF_TLS290// CHECK-NEXT:       SHF_WRITE291// CHECK-NEXT:     ]292 293.section .large,"l"294// ASM: .section .large,"l"295 296// CHECK:        Section {297// CHECK:          Name: .large298// CHECK-NEXT:     Type: SHT_PROGBITS299// CHECK-NEXT:     Flags [300// CHECK-NEXT:       SHF_X86_64_LARGE301// CHECK-NEXT:     ]302 303// Test SHT_LLVM_ODRTAB304 305.section .odrtab,"e",@llvm_odrtab306// ASM: .section .odrtab,"e",@llvm_odrtab307 308// CHECK:        Section {309// CHECK:          Name: .odrtab310// CHECK-NEXT:     Type: SHT_LLVM_ODRTAB311// CHECK-NEXT:     Flags [312// CHECK-NEXT:       SHF_EXCLUDE313// CHECK-NEXT:     ]314 315// Test SHT_LLVM_LINKER_OPTIONS316 317.section ".linker-options","e",@llvm_linker_options318// ASM: .section ".linker-options","e",@llvm_linker_options319 320// CHECK: Section {321// CHECK:   Name: .linker-options322// CHECK-NEXT:   Type: SHT_LLVM_LINKER_OPTIONS323// CHECK-NEXT:   Flags [324// CHECK-NEXT:     SHF_EXCLUDE325// CHECK-NEXT:   ]326// CHECK: }327 328// Test SHT_LLVM_DEPENDENT_LIBRARIES329 330.section .deplibs,"MS",@llvm_dependent_libraries,1331// ASM: .section .deplibs,"MS",@llvm_dependent_libraries,1332 333// CHECK: Section {334// CHECK:   Name: .deplibs335// CHECK-NEXT:   Type: SHT_LLVM_DEPENDENT_LIBRARIES336// CHECK-NEXT:   Flags [337// CHECK-NEXT:       SHF_MERGE338// CHECK-NEXT:       SHF_STRINGS339// CHECK-NEXT:   ]340// CHECK: }341 342// Test SHT_LLVM_SYMPART343 344.section .llvm_sympart,"",@llvm_sympart345// ASM: .section .llvm_sympart,"",@llvm_sympart346 347// CHECK: Section {348// CHECK:   Name: .llvm_sympart349// CHECK-NEXT:   Type: SHT_LLVM_SYMPART350// CHECK-NEXT:   Flags [351// CHECK-NEXT:   ]352// CHECK: }353 354.section .llvm.lto,"e",@llvm_lto355// ASM: .section .llvm.lto,"e",@llvm_lto356 357// CHECK:      Section {358// CHECK:        Name: .llvm.lto359// CHECK-NEXT:   Type: SHT_LLVM_LTO360// CHECK-NEXT:   Flags [361// CHECK-NEXT:     SHF_EXCLUDE362// CHECK-NEXT:   ]363// CHECK:      }364