[lld] [LLD] Avoid file offset increase for zero-sized progbits after nobits (PR #223349)

Shivam Gupta via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 15 03:57:35 PDT 2026


================
@@ -0,0 +1,40 @@
+# REQUIRES: x86
+## A zero-sized section following .bss must not account for .bss's size.
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
+
+# RUN: echo 'SECTIONS { \
+# RUN:   .text : {} \
+# RUN:   .data : {} \
+# RUN:   .bss : {} \
+# RUN:   .ldata : { . = .; } \
+# RUN: }' > %t-a.lds
+# RUN: ld.lld -T %t-a.lds %t.o -o %t-a
+# RUN: llvm-readelf -S %t-a | FileCheck --check-prefix=ZERO-SIZE %s
+
+# RUN: echo 'SECTIONS { \
+# RUN:   .text : {} \
+# RUN:   .data : {} \
+# RUN:   .bss : {} \
+# RUN:   .ldata : { . = ALIGN(8); } \
+# RUN: }' > %t-b.lds
+# RUN: ld.lld -T %t-b.lds %t.o -o %t-b
+# RUN: llvm-readelf -S %t-b | FileCheck --check-prefix=ALIGN-ZERO-SIZE %s
+
+## The .ldata section's file offset must equal .bss's file offset.
+# ZERO-SIZE: .bss    NOBITS   {{[0-9a-f]+}} [[OFF:[0-9a-f]+]] {{[0-9a-f]+}}
+# ZERO-SIZE-NEXT: .ldata  PROGBITS {{[0-9a-f]+}} [[OFF]] 000000
+
+# ALIGN-ZERO-SIZE: .bss    NOBITS   {{[0-9a-f]+}} [[OFF:[0-9a-f]+]] {{[0-9a-f]+}}
+# ALIGN-ZERO-SIZE-NEXT: .ldata  PROGBITS {{[0-9a-f]+}} [[OFF]] 000000
+
----------------
xgupta wrote:

Thanks, fully agree.

https://github.com/llvm/llvm-project/pull/223349


More information about the llvm-commits mailing list