# RUN: ld.lld %t1.o -o %t1 --script %p/Inputs/insert-after.script --script %s
# RUN: llvm-readelf -S -l %t1 | FileCheck %s
-# CHECK: Name Type Address Off
+# CHECK: Name Type Address Off Size ES Flg
# CHECK-NEXT: NULL 0000000000000000 000000
-# CHECK-NEXT: .text PROGBITS 0000000000000000 001000
-# CHECK-NEXT: .foo.text PROGBITS 0000000000000008 001008
-# CHECK-NEXT: .data PROGBITS 0000000000000010 001010
-# CHECK-NEXT: .foo.data PROGBITS 0000000000000018 001018
+# CHECK-NEXT: .text PROGBITS 0000000000000000 001000 000008 00 AX
+# CHECK-NEXT: .foo.text PROGBITS 0000000000000008 001008 000008 00 AX
+# CHECK-NEXT: .data PROGBITS 0000000000000010 001010 000008 00 WA
+# CHECK-NEXT: .foo.data PROGBITS 0000000000000018 001018 000008 00 WA
+# CHECK-NEXT: .byte PROGBITS 0000000000000020 001020 000001 00 WA
# CHECK: Type
# CHECK-NEXT: LOAD {{.*}} R E
# CHECK-NEXT: LOAD {{.*}} RW
# RUN: ld.lld --script %s %t1.o -o %t2
# RUN: llvm-readelf -S -l %t2 | FileCheck --check-prefix=CHECK2 %s
-# CHECK2: Name Type Address Off
-# CHECK2-NEXT: NULL 0000000000000000 000000
-# CHECK2-NEXT: .text PROGBITS 0000000000201158 000158
-# CHECK2-NEXT: .foo.text PROGBITS 0000000000201160 000160
-# CHECK2-NEXT: .data PROGBITS 0000000000202168 000168
-# CHECK2-NEXT: .foo.data PROGBITS 0000000000202170 000170
-# CHECK2: Type
-# CHECK2-NEXT: PHDR {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R E
-# CHECK2-NEXT: LOAD {{.*}} RW
-# CHECK2-NEXT: GNU_STACK {{.*}} RW
+# CHECK2: Name Type Address Off Size ES Flg
+# CHECK2-NEXT: NULL
+# CHECK2-NEXT: .text PROGBITS 000000000020{{.*}} [[#%x,]] 000008 00 AX
+# CHECK2-NEXT: .foo.text PROGBITS [[#%x,]] [[#%x,]] 000008 00 AX
+# CHECK2-NEXT: .data PROGBITS [[#%x,]] [[#%x,]] 000008 00 WA
+# CHECK2-NEXT: .foo.data PROGBITS [[#%x,]] [[#%x,]] 000008 00 WA
+# CHECK2-NEXT: .byte PROGBITS [[#%x,]] [[#%x,]] 000001 00 0
+# CHECK2: Type {{.*}} Flg Align
+# CHECK2-NEXT: PHDR {{.*}} R 0x8
+# CHECK2-NEXT: LOAD {{.*}} R 0x1000
+# CHECK2-NEXT: LOAD {{.*}} R E 0x1000
+# CHECK2-NEXT: LOAD {{.*}} RW 0x1000
+# CHECK2-NEXT: GNU_STACK {{.*}} RW 0
+
+SECTIONS { .byte : { BYTE(0) } } INSERT AFTER .data;
SECTIONS { .foo.data : { *(.foo.data) } } INSERT AFTER .data;
# RUN: ld.lld %t1.o -o %t1 --script %p/Inputs/insert-after.script --script %s
# RUN: llvm-readelf -S -l %t1 | FileCheck %s
-# CHECK: Name Type Address Off
-# CHECK-NEXT: NULL 0000000000000000 000000
-# CHECK-NEXT: .foo.text PROGBITS 0000000000000000 001000
-# CHECK-NEXT: .text PROGBITS 0000000000000008 001008
-# CHECK-NEXT: .foo.data PROGBITS 0000000000000010 001010
-# CHECK-NEXT: .data PROGBITS 0000000000000018 001018
+# CHECK: Name Type Address Off Size ES Flg
+# CHECK-NEXT: NULL
+# CHECK-NEXT: .foo.text PROGBITS 0000000000000000 001000 000008 00 AX
+# CHECK-NEXT: .text PROGBITS 0000000000000008 001008 000008 00 AX
+# CHECK-NEXT: .byte PROGBITS 0000000000000010 001010 000001 00 WA
+# CHECK-NEXT: .foo.data PROGBITS 0000000000000011 001011 000008 00 WA
+# CHECK-NEXT: .data PROGBITS 0000000000000019 001019 000008 00 WA
# CHECK: Type
# CHECK-NEXT: LOAD {{.*}} R E
# CHECK-NEXT: LOAD {{.*}} RW
# RUN: ld.lld --script %s %t1.o -o %t2
# RUN: llvm-readelf -S -l %t2 | FileCheck --check-prefix=CHECK2 %s
-# CHECK2: Name Type Address Off
-# CHECK2-NEXT: NULL 0000000000000000 000000
-# CHECK2-NEXT: .foo.text PROGBITS 0000000000201158 000158
-# CHECK2-NEXT: .text PROGBITS 0000000000201160 000160
-# CHECK2-NEXT: .foo.data PROGBITS 0000000000202168 000168
-# CHECK2-NEXT: .data PROGBITS 0000000000202170 000170
-# CHECK2: Type
-# CHECK2-NEXT: PHDR {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R
-# CHECK2-NEXT: LOAD {{.*}} R E
-# CHECK2-NEXT: LOAD {{.*}} RW
+# CHECK2: Name Type Address Off Size ES Flg
+# CHECK2-NEXT: NULL
+# CHECK2-NEXT: .foo.text PROGBITS 000000000020{{.*}} [[#%x,]] 000008 00 AX
+# CHECK2-NEXT: .text PROGBITS [[#%x,]] [[#%x,]] 000008 00 AX
+# CHECK2-NEXT: .byte PROGBITS [[#%x,]] [[#%x,]] 000001 00 0
+# CHECK2-NEXT: .foo.data PROGBITS [[#%x,]] [[#%x,]] 000008 00 WA
+# CHECK2-NEXT: .data PROGBITS [[#%x,]] [[#%x,]] 000008 00 WA
+# CHECK2: Type {{.*}} Flg Align
+# CHECK2-NEXT: PHDR {{.*}} R 0x8
+# CHECK2-NEXT: LOAD {{.*}} R 0x1000
+# CHECK2-NEXT: LOAD {{.*}} R E 0x1000
+# CHECK2-NEXT: LOAD {{.*}} RW 0x1000
+# CHECK2-NEXT: GNU_STACK {{.*}} RW 0
+
+SECTIONS { .byte : { BYTE(0) } } INSERT BEFORE .data;
SECTIONS { .foo.data : { *(.foo.data) } } INSERT BEFORE .data;
# RUN: echo '.section .tbss,"awT",@nobits; .quad 0' \
# RUN: | llvm-mc -filetype=obj -triple=x86_64-unknown-linux - -o %t.o
# RUN: ld.lld -o %t --script %s %t.o
-# RUN: llvm-readobj -S %t | FileCheck %s
+# RUN: llvm-readelf -S %t | FileCheck %s
+
+## Check .foo does not get SHF_TLS flag.
+# CHECK: .tbss NOBITS [[#%x,]] [[#%x,]] [[#%x,]] 00 WAT
+# CHECK-NEXT: .foo PROGBITS [[#%x,]] [[#%x,]] [[#%x,]] 00 WA
SECTIONS {
. = SIZEOF_HEADERS;
.tbss : { *(.tbss) }
.foo : { bar = .; }
}
-
-## Check .foo does not get SHF_TLS flag.
-# CHECK: Section {
-# CHECK: Index:
-# CHECK: Name: .foo
-# CHECK-NEXT: Type: SHT_PROGBITS
-# CHECK-NEXT: Flags [
-# CHECK-NEXT: SHF_ALLOC
-# CHECK-NEXT: SHF_WRITE
-# CHECK-NEXT: ]