summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-12-17 01:51:23 +0000
committerRui Ueyama <ruiu@google.com>2015-12-17 01:51:23 +0000
commit784b769d32b1e31c745fe408adfda516d31397cd (patch)
tree2b615aed0b2c743755524f9fe8f1080e47692cf1
parent05ac43fec33181a589748de29c1877a537e91b3b (diff)
downloadbcm5719-llvm-784b769d32b1e31c745fe408adfda516d31397cd.tar.gz
bcm5719-llvm-784b769d32b1e31c745fe408adfda516d31397cd.zip
ELF: Avoid string concatenation if there's no error.
llvm-svn: 255870
-rw-r--r--lld/ELF/InputFiles.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index 175ccd3f21a..9af7fd878f4 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -318,10 +318,11 @@ MemoryBufferRef ArchiveFile::getMember(const Archive::Symbol *Sym) {
if (!Seen.insert(C.getChildOffset()).second)
return MemoryBufferRef();
- ErrorOr<MemoryBufferRef> Ret = C.getMemoryBufferRef();
- error(Ret, "Could not get the buffer for the member defining symbol " +
- Sym->getName());
- return *Ret;
+ ErrorOr<MemoryBufferRef> RefOrErr = C.getMemoryBufferRef();
+ if (!RefOrErr)
+ error(RefOrErr, "Could not get the buffer for the member defining symbol " +
+ Sym->getName());
+ return *RefOrErr;
}
std::vector<MemoryBufferRef> ArchiveFile::getMembers() {
@@ -333,8 +334,9 @@ std::vector<MemoryBufferRef> ArchiveFile::getMembers() {
"Could not get the child of the archive " + File->getFileName());
const Archive::Child Child(*ChildOrErr);
ErrorOr<MemoryBufferRef> MbOrErr = Child.getMemoryBufferRef();
- error(MbOrErr, "Could not get the buffer for a child of the archive " +
- File->getFileName());
+ if (!MbOrErr)
+ error(MbOrErr, "Could not get the buffer for a child of the archive " +
+ File->getFileName());
Result.push_back(MbOrErr.get());
}
return Result;
OpenPOWER on IntegriCloud