From: Sunil Srivastava Date: Sun, 3 Feb 2019 22:40:01 +0000 (+0000) Subject: Compute the correct symbol size in llvm-nm even without --print-size X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=916e581bdec618ab58c502296dce70ef3bf9e000;p=llvm Compute the correct symbol size in llvm-nm even without --print-size 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 --- diff --git a/test/tools/llvm-nm/X86/posixELF.test b/test/tools/llvm-nm/X86/posixELF.test index f66e1befc8f..810bc9705f9 100644 --- a/test/tools/llvm-nm/X86/posixELF.test +++ b/test/tools/llvm-nm/X86/posixELF.test @@ -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 diff --git a/test/tools/llvm-nm/X86/response-file.test b/test/tools/llvm-nm/X86/response-file.test index 5c53960056c..8f4e2a734b9 100644 --- a/test/tools/llvm-nm/X86/response-file.test +++ b/test/tools/llvm-nm/X86/response-file.test @@ -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 diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index 3a83fdb1424..7c009297139 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/tools/llvm-nm/llvm-nm.cpp @@ -1190,10 +1190,8 @@ dumpSymbolNamesFromObject(SymbolicFile &Obj, bool printName, NMSymbol S = {}; S.Size = 0; S.Address = 0; - if (PrintSize) { - if (isa(&Obj)) - S.Size = ELFSymbolRef(Sym).getSize(); - } + if (isa(&Obj)) + S.Size = ELFSymbolRef(Sym).getSize(); if (PrintAddress && isa(Obj)) { SymbolRef SymRef(Sym); Expected AddressOrErr = SymRef.getAddress();