diff options
author | Rui Ueyama <ruiu@google.com> | 2015-12-17 01:51:23 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-12-17 01:51:23 +0000 |
commit | 784b769d32b1e31c745fe408adfda516d31397cd (patch) | |
tree | 2b615aed0b2c743755524f9fe8f1080e47692cf1 | |
parent | 05ac43fec33181a589748de29c1877a537e91b3b (diff) | |
download | bcm5719-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.cpp | 14 |
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; |