Fix printing of common symbols.

Printing the symbol size matches the behavior or both gnu nm and freebsd nm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241480 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2015-07-06 18:18:44 +00:00
parent edfa571cbd
commit e473de21aa
2 changed files with 12 additions and 4 deletions

View File

@ -3,6 +3,7 @@
// CHECK: 0000000000000000 ffffffffffffffff n a
// CHECK: 0000000000000000 0000000000000000 N b
// CHECK: 0000000000000004 0000000000000004 C c
.section foo
a:
@ -10,3 +11,5 @@ a:
.global b
b:
.comm c,4,8

View File

@ -901,10 +901,15 @@ static void dumpSymbolNamesFromObject(SymbolicFile &Obj, bool printName,
S.Size = ELFSymbolRef(Sym).getSize();
}
if (PrintAddress && isa<ObjectFile>(Obj)) {
ErrorOr<uint64_t> AddressOrErr = SymbolRef(Sym).getAddress();
if (error(AddressOrErr.getError()))
break;
S.Address = *AddressOrErr;
SymbolRef SymRef(Sym);
if (SymFlags & SymbolRef::SF_Common) {
S.Address = SymRef.getCommonSize();
} else {
ErrorOr<uint64_t> AddressOrErr = SymRef.getAddress();
if (error(AddressOrErr.getError()))
break;
S.Address = *AddressOrErr;
}
}
S.TypeChar = getNMTypeChar(Obj, Sym);
if (error(Sym.printName(OS)))