Index: ELF/Symbols.cpp =================================================================== --- ELF/Symbols.cpp +++ ELF/Symbols.cpp @@ -103,6 +103,8 @@ if (!Config->DefineCommon) return 0; auto DC = cast(Body); + if (!DC.Live) + return 0; return DC.Section->getParent()->Addr + DC.Section->OutSecOff + DC.Offset; } Index: test/ELF/common-gc3.s =================================================================== --- /dev/null +++ test/ELF/common-gc3.s @@ -0,0 +1,18 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o +# RUN: ld.lld %t.o -o %t1 --gc-sections +# RUN: llvm-objdump -s %t1 | FileCheck %s + +# CHECK: Contents of section .noalloc: +# 0000 00000000 00000000 ........ + + .section .text._start,"ax",@progbits + .globl _start +_start: + retq + + .type unused,@object + .comm unused,4,4 + + .section .noalloc,"",@progbits + .quad unused