1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

Fix printing of common symbols.

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

llvm-svn: 241480
This commit is contained in:
Rafael Espindola 2015-07-06 18:18:44 +00:00
parent 6945ffc637
commit 384e9f4564
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)))