]> granicus.if.org Git - llvm/commitdiff
Compute the correct symbol size in llvm-nm even without --print-size
authorSunil Srivastava <sunil_srivastava@playstation.sony.com>
Sun, 3 Feb 2019 22:40:01 +0000 (22:40 +0000)
committerSunil Srivastava <sunil_srivastava@playstation.sony.com>
Sun, 3 Feb 2019 22:40:01 +0000 (22:40 +0000)
In llvm-nm, the symbol size was being computed only with --print-size option,
even though it was being printed in other cases, such as with --format=posix.

This patch simply removes the guard, so that the size is computed
independently of the later decision to print it or not.

Fixes PR39997.

Differential Revision: https://reviews.llvm.org/D57599

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353011 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-nm/X86/posixELF.test
test/tools/llvm-nm/X86/response-file.test
tools/llvm-nm/llvm-nm.cpp

index f66e1befc8fe509fe95fe7f029f5ba65e9e2cd59..810bc9705f97195d3e51455453ad561d112d4097 100644 (file)
@@ -1,4 +1,4 @@
 # RUN: llvm-nm -P %p/Inputs/hello.obj.elf-x86_64 | FileCheck %s
 
-CHECK: main T 0 0
+CHECK: main T 0 15
 CHECK: puts U 0 0
index 5c53960056c6d3e1c0fcf33afa7af98eb6ebe454..8f4e2a734b91efef1e2ff7ec2d9ce2b933dda375 100644 (file)
@@ -1,5 +1,5 @@
 # RUN: echo "-P %p/Inputs/hello.obj.elf-x86_64" > %t-response
 # RUN: llvm-nm @%t-response | FileCheck %s
 
-CHECK: main T 0 0
+CHECK: main T 0 15
 CHECK: puts U 0 0
index 3a83fdb14247e748af00c7b1286ed766f7267f5f..7c009297139638a18fa62245fbb6a94a4e7eccfb 100644 (file)
@@ -1190,10 +1190,8 @@ dumpSymbolNamesFromObject(SymbolicFile &Obj, bool printName,
       NMSymbol S = {};
       S.Size = 0;
       S.Address = 0;
-      if (PrintSize) {
-        if (isa<ELFObjectFileBase>(&Obj))
-          S.Size = ELFSymbolRef(Sym).getSize();
-      }
+      if (isa<ELFObjectFileBase>(&Obj))
+        S.Size = ELFSymbolRef(Sym).getSize();
       if (PrintAddress && isa<ObjectFile>(Obj)) {
         SymbolRef SymRef(Sym);
         Expected<uint64_t> AddressOrErr = SymRef.getAddress();