[lld-macho] Preserve the size of common symbols

We never noticed this before because the only time the size gets emitted is via
the linker map...

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D135884
This commit is contained in:
Jez Ng 2022-10-13 16:44:33 -04:00
parent bdd0cec569
commit 922346ef05
3 changed files with 3 additions and 3 deletions

View File

@ -577,7 +577,7 @@ static void replaceCommonSymbols() {
// FIXME: CommonSymbol should store isReferencedDynamically, noDeadStrip
// and pass them on here.
replaceSymbol<Defined>(
sym, sym->getName(), common->getFile(), isec, /*value=*/0, /*size=*/0,
sym, sym->getName(), common->getFile(), isec, /*value=*/0, common->size,
/*isWeakDef=*/false, /*isExternal=*/true, common->privateExtern,
/*includeInSymtab=*/true, /*isThumb=*/false,
/*isReferencedDynamically=*/false, /*noDeadStrip=*/false);

View File

@ -48,7 +48,7 @@
# MAP: _main
# MAP-LABEL: Dead Stripped Symbols
# MAP: <<dead>> 0x00000000 [ 1] _unref_com
# MAP: <<dead>> 0x00000001 [ 1] _unref_com
# MAP: <<dead>> 0x00000008 [ 1] _unref_data
# MAP: <<dead>> 0x00000006 [ 1] _unref_extern
# MAP: <<dead>> 0x00000001 [ 1] _unref_local

View File

@ -40,7 +40,7 @@
# CHECK-NEXT: # Address Size File Name
# CHECK-NEXT: 0x[[#%X,MAIN]] 0x00000001 [ 1] _main
# CHECK-NEXT: 0x[[#%X,FOO]] 0x00000000 [ 2] _foo
# CHECK-NEXT: 0x[[#%X,NUMBER]] 0x00000000 [ 1] _number
# CHECK-NEXT: 0x[[#%X,NUMBER]] 0x00000001 [ 1] _number
# RUN: %lld -map %t/c-string-literal-map %t/c-string-literal.o -o %t/c-string-literal-out
# RUN: FileCheck --check-prefix=CSTRING %s < %t/c-string-literal-map