summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorDave Lee <davelee.com@gmail.com>2019-02-16 06:59:49 +0000
committerDave Lee <davelee.com@gmail.com>2019-02-16 06:59:49 +0000
commit5fc9edf6bb590059cd0df70bfa1e6882307b485d (patch)
treeec91c6e7b7ca5fec585572b1f4a8cd2b170a3464 /llvm/tools/llvm-nm/llvm-nm.cpp
parent358f99c7fe27282dfdf6da1f98fb91c1e93dfd35 (diff)
downloadbcm5719-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.cpp14
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()))
OpenPOWER on IntegriCloud