1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s | FileCheck %s
3 // Test that these names are accepted.
5 .section .note.GNU-stack,"",@progbits
6 .section .note.GNU-stack2,"",%progbits
7 .section .note.GNU-,"",@progbits
8 .section -.note.GNU,"",@progbits
10 // CHECK: Name: .note.GNU-stack (56)
11 // CHECK: Name: .note.GNU-stack2 (143)
12 // CHECK: Name: .note.GNU- (160)
13 // CHECK: Name: -.note.GNU (132)
15 // Test that the defaults are used
24 // CHECK-NEXT: Type: SHT_PROGBITS
25 // CHECK-NEXT: Flags [
26 // CHECK-NEXT: SHF_ALLOC
27 // CHECK-NEXT: SHF_EXECINSTR
29 // CHECK-NEXT: Address: 0x0
30 // CHECK-NEXT: Offset: 0x50
31 // CHECK-NEXT: Size: 0
32 // CHECK-NEXT: Link: 0
33 // CHECK-NEXT: Info: 0
34 // CHECK-NEXT: AddressAlignment: 1
35 // CHECK-NEXT: EntrySize: 0
37 // CHECK-NEXT: Section {
38 // CHECK-NEXT: Index: 11
39 // CHECK-NEXT: Name: .fini
40 // CHECK-NEXT: Type: SHT_PROGBITS
41 // CHECK-NEXT: Flags [
42 // CHECK-NEXT: SHF_ALLOC
43 // CHECK-NEXT: SHF_EXECINSTR
45 // CHECK-NEXT: Address: 0x0
46 // CHECK-NEXT: Offset: 0x50
47 // CHECK-NEXT: Size: 0
48 // CHECK-NEXT: Link: 0
49 // CHECK-NEXT: Info: 0
50 // CHECK-NEXT: AddressAlignment: 1
51 // CHECK-NEXT: EntrySize: 0
53 // CHECK-NEXT: Section {
54 // CHECK-NEXT: Index: 12
55 // CHECK-NEXT: Name: .rodata
56 // CHECK-NEXT: Type: SHT_PROGBITS
57 // CHECK-NEXT: Flags [
58 // CHECK-NEXT: SHF_ALLOC
60 // CHECK-NEXT: Address: 0x0
61 // CHECK-NEXT: Offset: 0x50
62 // CHECK-NEXT: Size: 0
63 // CHECK-NEXT: Link: 0
64 // CHECK-NEXT: Info: 0
65 // CHECK-NEXT: AddressAlignment: 1
66 // CHECK-NEXT: EntrySize: 0
68 // CHECK-NEXT: Section {
69 // CHECK-NEXT: Index: 13
70 // CHECK-NEXT: Name: zed
71 // CHECK-NEXT: Type: SHT_PROGBITS
72 // CHECK-NEXT: Flags [
74 // CHECK-NEXT: Address: 0x0
75 // CHECK-NEXT: Offset: 0x50
76 // CHECK-NEXT: Size: 0
77 // CHECK-NEXT: Link: 0
78 // CHECK-NEXT: Info: 0
79 // CHECK-NEXT: AddressAlignment: 1
80 // CHECK-NEXT: EntrySize: 0
83 .section .note.test,"",@note
85 // CHECK: Name: .note.test
86 // CHECK-NEXT: Type: SHT_NOTE
87 // CHECK-NEXT: Flags [
89 // CHECK-NEXT: Address: 0x0
90 // CHECK-NEXT: Offset: 0x50
91 // CHECK-NEXT: Size: 0
92 // CHECK-NEXT: Link: 0
93 // CHECK-NEXT: Info: 0
94 // CHECK-NEXT: AddressAlignment: 1
95 // CHECK-NEXT: EntrySize: 0
98 // Test that we can parse these
101 .section .text.foo,"axG",@progbits,foo,comdat
102 .section .text.bar,"axMG",@progbits,42,bar,comdat
104 // Test that the default values are not used
106 .section .eh_frame,"a",@unwind
109 // CHECK: Name: .eh_frame
110 // CHECK-NEXT: Type: SHT_X86_64_UNWIND
111 // CHECK-NEXT: Flags [
112 // CHECK-NEXT: SHF_ALLOC
114 // CHECK-NEXT: Address: 0x0
115 // CHECK-NEXT: Offset: 0x50
116 // CHECK-NEXT: Size: 0
117 // CHECK-NEXT: Link: 0
118 // CHECK-NEXT: Info: 0
119 // CHECK-NEXT: AddressAlignment: 1
120 // CHECK-NEXT: EntrySize: 0
123 // Test that we handle the strings like gas
128 // CHECK: Name: bar-"foo" (171)
130 // CHECK: Name: foo (52)