Skip to content

Commit 99dc2f7

Browse files
committed
[MC,ELF] .section: unconditionally print section flag 'G' after 'o'
* Placing 'G' before 'M' (SHF_MERGE) can be misleading as the sh_entsize argument goes before the section group name (if a reader doesn't know that the order of extra arguments is not affected by the order of flags. * 'a', 'w', and 'x' indicate basic permission-related flags. Separating them with 'G' is kinda ugly. Simplify code and move 'G' after 'o'. The new output is more similar to GCC.
1 parent 7620f03 commit 99dc2f7

17 files changed

+34
-38
lines changed

llvm/lib/MC/MCSectionELF.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,6 @@ void MCSectionELF::printSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
9090
OS << 'e';
9191
if (Flags & ELF::SHF_EXECINSTR)
9292
OS << 'x';
93-
// TODO: Always print G after o to be clear that the 'G' argument is parsed
94-
// after the 'o' argument.
95-
if ((Flags & ELF::SHF_GROUP) && !(Flags & ELF::SHF_LINK_ORDER))
96-
OS << 'G';
9793
if (Flags & ELF::SHF_WRITE)
9894
OS << 'w';
9995
if (Flags & ELF::SHF_MERGE)
@@ -104,7 +100,7 @@ void MCSectionELF::printSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
104100
OS << 'T';
105101
if (Flags & ELF::SHF_LINK_ORDER)
106102
OS << 'o';
107-
if ((Flags & ELF::SHF_GROUP) && (Flags & ELF::SHF_LINK_ORDER))
103+
if (Flags & ELF::SHF_GROUP)
108104
OS << 'G';
109105
if (Flags & ELF::SHF_GNU_RETAIN)
110106
OS << 'R';

llvm/test/CodeGen/Mips/ehframe-indirect.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ declare void @foo()
6262
; N64: .8byte _ZTISt9exception
6363
; ALL: .hidden DW.ref.__gxx_personality_v0
6464
; ALL: .weak DW.ref.__gxx_personality_v0
65-
; ALL: .section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
65+
; ALL: .section .data.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
6666
; O32: .p2align 2
6767
; N32: .p2align 2
6868
; N64: .p2align 3

llvm/test/CodeGen/PowerPC/ppc32-pic-large.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ entry:
4949
; LARGE-SECUREPLT: addi 30, 30, .LTOC-.L0$pb@l
5050
; LARGE-SECUREPLT: bl call_foo@PLT+32768
5151

52-
; LARGE: .section .bss.bar1,"aGw",@nobits,bar1,comdat
52+
; LARGE: .section .bss.bar1,"awG",@nobits,bar1,comdat
5353
; LARGE: bar1:
54-
; LARGE: .section .bss.bar2,"aGw",@nobits,bar1,comdat
54+
; LARGE: .section .bss.bar2,"awG",@nobits,bar1,comdat
5555
; LARGE: bar2:
5656
; LARGE: .section .got2,"aw",@progbits
5757
; LARGE-NEXT: .p2align 2

llvm/test/CodeGen/SPARC/constructor.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ entry:
1717
; CTOR: .section .ctors,"aw"
1818
; CTOR-NEXT: .p2align 2
1919
; CTOR-NEXT: .word f
20-
; CTOR-NEXT: .section .ctors.65520,"aGw"
20+
; CTOR-NEXT: .section .ctors.65520,"awG",@progbits,v,comdat{{$}}
2121
; CTOR-NEXT: .p2align 2
2222
; CTOR-NEXT: .word g
2323

24-
; INIT-ARRAY: .section .init_array.15,"aGw"
24+
; INIT-ARRAY: .section .init_array.15,"awG",@init_array,v,comdat{{$}}
2525
; INIT-ARRAY-NEXT: .p2align 2
2626
; INIT-ARRAY-NEXT: .word g
2727
; INIT-ARRAY-NEXT: .section .init_array,"aw"

llvm/test/CodeGen/X86/constructor.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,17 @@ entry:
4343
; CTOR-NEXT: .quad j
4444
; CTOR-NEXT: .quad i
4545
; CTOR-NEXT: .quad f
46-
; CTOR-NEXT: .section .ctors.09980,"aGw",@progbits,v,comdat
46+
; CTOR-NEXT: .section .ctors.09980,"awG",@progbits,v,comdat
4747
; CTOR-NEXT: .p2align 3
4848
; CTOR-NEXT: .quad h
49-
; CTOR-NEXT: .section .ctors.65520,"aGw",@progbits,v,comdat
49+
; CTOR-NEXT: .section .ctors.65520,"awG",@progbits,v,comdat
5050
; CTOR-NEXT: .p2align 3
5151
; CTOR-NEXT: .quad g
5252

53-
; INIT-ARRAY: .section .init_array.15,"aGw",@init_array,v,comdat
53+
; INIT-ARRAY: .section .init_array.15,"awG",@init_array,v,comdat
5454
; INIT-ARRAY-NEXT: .p2align 3
5555
; INIT-ARRAY-NEXT: .quad g
56-
; INIT-ARRAY-NEXT: .section .init_array.55555,"aGw",@init_array,v,comdat
56+
; INIT-ARRAY-NEXT: .section .init_array.55555,"awG",@init_array,v,comdat
5757
; INIT-ARRAY-NEXT: .p2align 3
5858
; INIT-ARRAY-NEXT: .quad h
5959
; INIT-ARRAY-NEXT: .section .init_array,"aw",@init_array
@@ -62,10 +62,10 @@ entry:
6262
; INIT-ARRAY-NEXT: .quad i
6363
; INIT-ARRAY-NEXT: .quad j
6464

65-
; NACL: .section .init_array.15,"aGw",@init_array,v,comdat
65+
; NACL: .section .init_array.15,"awG",@init_array,v,comdat
6666
; NACL-NEXT: .p2align 2
6767
; NACL-NEXT: .long g
68-
; NACL-NEXT: .section .init_array.55555,"aGw",@init_array,v,comdat
68+
; NACL-NEXT: .section .init_array.55555,"awG",@init_array,v,comdat
6969
; NACL-NEXT: .p2align 2
7070
; NACL-NEXT: .long h
7171
; NACL-NEXT: .section .init_array,"aw",@init_array

llvm/test/CodeGen/X86/elf-comdat.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ define void @f() comdat($f) {
77
}
88
; CHECK: .section .text.f,"axG",@progbits,f,comdat
99
; CHECK: .globl f
10-
; CHECK: .section .bss.v,"aGw",@nobits,f,comdat
10+
; CHECK: .section .bss.v,"awG",@nobits,f,comdat
1111
; CHECK: .globl v

llvm/test/CodeGen/X86/elf-comdat2.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ $foo = comdat any
55
@foo = global i32 42
66

77
; CHECK: .type bar,@object
8-
; CHECK-NEXT: .section .data.bar,"aGw",@progbits,foo,comdat
8+
; CHECK-NEXT: .section .data.bar,"awG",@progbits,foo,comdat
99
; CHECK-NEXT: .globl bar
1010
; CHECK: .type foo,@object
1111
; CHECK-NEXT: .data

llvm/test/CodeGen/X86/elf-group.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
; CHECK: .section .text.f1,"axG",@progbits,f1{{$}}
66
; CHECK: .section .text.f2,"axG",@progbits,f1{{$}}
7-
; CHECK: .section .bss.g1,"aGw",@nobits,f1{{$}}
7+
; CHECK: .section .bss.g1,"awG",@nobits,f1{{$}}
88

99
$f1 = comdat nodeduplicate
1010

llvm/test/CodeGen/X86/explicit-section-mergeable.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,9 @@
139139
!4 = !{ptr @implicit_rodata_cst4}
140140

141141
;; Test implicit section assignment for globals in distinct comdat groups.
142-
; CHECK: .section .rodata.cst4,"aGM",@progbits,4,f,comdat,unique,[[#U+7]]
142+
; CHECK: .section .rodata.cst4,"aMG",@progbits,4,f,comdat,unique,[[#U+7]]
143143
; CHECK: implicit_rodata_cst4_comdat:
144-
; CHECK: .section .rodata.cst8,"aGM",@progbits,8,g,comdat,unique,[[#U+8]]
144+
; CHECK: .section .rodata.cst8,"aMG",@progbits,8,g,comdat,unique,[[#U+8]]
145145
; CHECK: implicit_rodata_cst8_comdat:
146146

147147
;; Check that globals in distinct comdat groups that are explicitly assigned
@@ -153,11 +153,11 @@
153153
;; are incorrect.
154154
; CHECK: .section .explicit_comdat_distinct,"aM",@progbits,4,unique,[[#U+9]]
155155
; CHECK: explicit_comdat_distinct_supply_uid:
156-
; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,4,f,comdat,unique,[[#U+10]]
156+
; CHECK: .section .explicit_comdat_distinct,"aMG",@progbits,4,f,comdat,unique,[[#U+10]]
157157
; CHECK: explicit_comdat_distinct1:
158-
; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,4,g,comdat,unique,[[#U+10]]
158+
; CHECK: .section .explicit_comdat_distinct,"aMG",@progbits,4,g,comdat,unique,[[#U+10]]
159159
; CHECK: explicit_comdat_distinct2:
160-
; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,8,h,comdat,unique,[[#U+11]]
160+
; CHECK: .section .explicit_comdat_distinct,"aMG",@progbits,8,h,comdat,unique,[[#U+11]]
161161
; CHECK: explicit_comdat_distinct3:
162162

163163
$f = comdat any
@@ -173,9 +173,9 @@ $h = comdat any
173173
@explicit_comdat_distinct3 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit_comdat_distinct", comdat($h)
174174

175175
;; Test implicit section assignment for globals in the same comdat group.
176-
; CHECK: .section .rodata.cst4,"aGM",@progbits,4,i,comdat,unique,[[#U+12]]
176+
; CHECK: .section .rodata.cst4,"aMG",@progbits,4,i,comdat,unique,[[#U+12]]
177177
; CHECK: implicit_rodata_cst4_same_comdat:
178-
; CHECK: .section .rodata.cst8,"aGM",@progbits,8,i,comdat,unique,[[#U+13]]
178+
; CHECK: .section .rodata.cst8,"aMG",@progbits,8,i,comdat,unique,[[#U+13]]
179179
; CHECK: implicit_rodata_cst8_same_comdat:
180180

181181
;; Check that globals in the same comdat group that are explicitly assigned
@@ -187,10 +187,10 @@ $h = comdat any
187187
;; are incorrect.
188188
; CHECK: .section .explicit_comdat_same,"aM",@progbits,4,unique,[[#U+14]]
189189
; CHECK: explicit_comdat_same_supply_uid:
190-
; CHECK: .section .explicit_comdat_same,"aGM",@progbits,4,i,comdat,unique,[[#U+15]]
190+
; CHECK: .section .explicit_comdat_same,"aMG",@progbits,4,i,comdat,unique,[[#U+15]]
191191
; CHECK: explicit_comdat_same1:
192192
; CHECK: explicit_comdat_same2:
193-
; CHECK: .section .explicit_comdat_same,"aGM",@progbits,8,i,comdat,unique,[[#U+16]]
193+
; CHECK: .section .explicit_comdat_same,"aMG",@progbits,8,i,comdat,unique,[[#U+16]]
194194
; CHECK: explicit_comdat_same3:
195195

196196
$i = comdat any

llvm/test/CodeGen/X86/global-sections-comdat.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ bb5:
4141
$G16 = comdat any
4242
@G16 = unnamed_addr constant i32 42, comdat
4343

44-
; LINUX: .section .rodata.cst4.G16,"aGM",@progbits,4,G16,comdat
45-
; LINUX-SECTIONS: .section .rodata.cst4.G16,"aGM",@progbits,4,G16,comdat
46-
; LINUX-SECTIONS-SHORT: .section .rodata.cst4,"aGM",@progbits,4,G16,comdat
44+
; LINUX: .section .rodata.cst4.G16,"aMG",@progbits,4,G16,comdat
45+
; LINUX-SECTIONS: .section .rodata.cst4.G16,"aMG",@progbits,4,G16,comdat
46+
; LINUX-SECTIONS-SHORT: .section .rodata.cst4,"aMG",@progbits,4,G16,comdat

llvm/test/DebugInfo/SystemZ/eh_frame_personality.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ clean:
3939
; CHECK-REF: .cfi_lsda 27, .Lexception0
4040
; CHECK-REF: .hidden DW.ref.__gxx_personality_v0
4141
; CHECK-REF: .weak DW.ref.__gxx_personality_v0
42-
; CHECK-REF: .section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
42+
; CHECK-REF: .section .data.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
4343
; CHECK-REF-NEXT: .p2align 3
4444
; CHECK-REF-NEXT: .type DW.ref.__gxx_personality_v0,@object
4545
; CHECK-REF-NEXT: .size DW.ref.__gxx_personality_v0, 8

llvm/test/DebugInfo/SystemZ/eh_frame_personality.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ foo: # @foo
2525

2626
.hidden DW.ref.__gxx_personality_v0
2727
.weak DW.ref.__gxx_personality_v0
28-
.section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
28+
.section .data.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
2929
.align 8
3030
.type DW.ref.__gxx_personality_v0,@object
3131
.size DW.ref.__gxx_personality_v0, 8

llvm/test/ExecutionEngine/JITLink/x86-64/ELF_ehframe_basic.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ GCC_except_table1:
106106
.quad _ZTIi
107107
.hidden DW.ref.__gxx_personality_v0
108108
.weak DW.ref.__gxx_personality_v0
109-
.section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
109+
.section .data.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
110110
.p2align 3
111111
.type DW.ref.__gxx_personality_v0,@object
112112
.size DW.ref.__gxx_personality_v0, 8

llvm/test/ExecutionEngine/JITLink/x86-64/ELF_ehframe_large_static_personality_encodings.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ GCC_except_table1:
190190
.hidden DW.ref.__gxx_personality_v0
191191
.weak DW.ref.__gxx_personality_v0
192192

193-
.section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
193+
.section .data.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
194194
.p2align 3
195195
.type DW.ref.__gxx_personality_v0,@object
196196
.size DW.ref.__gxx_personality_v0, 8

llvm/test/MC/ELF/alias-to-local.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ foo:
1010
movl $zed, %eax
1111

1212

13-
.section .data.bar,"aGw",@progbits,zed,comdat
13+
.section .data.bar,"awG",@progbits,zed,comdat
1414
bar:
1515
.byte 42
1616

llvm/test/MC/ELF/relocation.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Test that we produce the correct relocation.
55

66

7-
.section .pr23272,"aGw",@progbits,pr23272,comdat
7+
.section .pr23272,"awG",@progbits,pr23272,comdat
88
.globl pr23272
99
pr23272:
1010
pr23272_2:

llvm/test/tools/llvm-symbolizer/frame.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ hwasan.module_ctor: // @hwasan.module_ctor
203203
.size hwasan.module_ctor, .Lfunc_end1-hwasan.module_ctor
204204
.cfi_endproc
205205
// -- End function
206-
.section .init_array.0,"aGw",@init_array,hwasan.module_ctor,comdat
206+
.section .init_array.0,"awG",@init_array,hwasan.module_ctor,comdat
207207
.p2align 3
208208
.xword hwasan.module_ctor
209209
.section .debug_str,"MS",@progbits,1

0 commit comments

Comments
 (0)