diff options
author | Dave Lee <davelee.com@gmail.com> | 2019-02-16 06:59:49 +0000 |
---|---|---|
committer | Dave Lee <davelee.com@gmail.com> | 2019-02-16 06:59:49 +0000 |
commit | 5fc9edf6bb590059cd0df70bfa1e6882307b485d (patch) | |
tree | ec91c6e7b7ca5fec585572b1f4a8cd2b170a3464 /llvm/tools/llvm-nm/llvm-nm.cpp | |
parent | 358f99c7fe27282dfdf6da1f98fb91c1e93dfd35 (diff) | |
download | bcm5719-llvm-5fc9edf6bb590059cd0df70bfa1e6882307b485d.tar.gz bcm5719-llvm-5fc9edf6bb590059cd0df70bfa1e6882307b485d.zip |
llvm-nm: Observe -no-llvm-bc for archive members
Summary:
This change fixes the `-no-llvm-bc` flag to work with object files within
archives. Currently the `-no-llvm-bc` flag works for regular object files, but
not static libraries, where it continues to show bitcode symbol info.
Original support was added in D4371.
Reviewers: compnerd, smeenai, pcc
Reviewed By: compnerd
Subscribers: rupprecht, keith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D48798
llvm-svn: 354196
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 7c009297139..a7346d56f32 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -1737,8 +1737,9 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { return; LLVMContext Context; - Expected<std::unique_ptr<Binary>> BinaryOrErr = createBinary( - BufferOrErr.get()->getMemBufferRef(), NoLLVMBitcode ? nullptr : &Context); + LLVMContext *ContextPtr = NoLLVMBitcode ? nullptr : &Context; + Expected<std::unique_ptr<Binary>> BinaryOrErr = + createBinary(BufferOrErr.get()->getMemBufferRef(), ContextPtr); if (!BinaryOrErr) { error(BinaryOrErr.takeError(), Filename); return; @@ -1772,7 +1773,8 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { { Error Err = Error::success(); for (auto &C : A->children(Err)) { - Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(&Context); + Expected<std::unique_ptr<Binary>> ChildOrErr = + C.getAsBinary(ContextPtr); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) error(std::move(E), Filename, C); @@ -1843,7 +1845,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { Error Err = Error::success(); for (auto &C : A->children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = - C.getAsBinary(&Context); + C.getAsBinary(ContextPtr); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType( ChildOrErr.takeError())) { @@ -1914,7 +1916,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { Error Err = Error::success(); for (auto &C : A->children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = - C.getAsBinary(&Context); + C.getAsBinary(ContextPtr); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType( ChildOrErr.takeError())) @@ -1981,7 +1983,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { Error Err = Error::success(); for (auto &C : A->children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = - C.getAsBinary(&Context); + C.getAsBinary(ContextPtr); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType( ChildOrErr.takeError())) |