Index: COFF/InputFiles.cpp =================================================================== --- COFF/InputFiles.cpp +++ COFF/InputFiles.cpp @@ -64,8 +64,7 @@ void ArchiveFile::parse() { // Parse a MemoryBufferRef as an archive file. auto ArchiveOrErr = Archive::create(MB); - error(errorToErrorCode(ArchiveOrErr.takeError()), - "Failed to parse static library"); + error(errorToErrorCode(ArchiveOrErr.takeError()), getShortName()); File = std::move(*ArchiveOrErr); // Allocate a buffer for Lazy objects. @@ -82,22 +81,22 @@ Error Err; for (auto &Child : File->children(Err)) Seen[Child.getChildOffset()].clear(); - error(std::move(Err), "Failed to parse static library"); + error(std::move(Err), getShortName()); } // Returns a buffer pointing to a member file containing a given symbol. // This function is thread-safe. MemoryBufferRef ArchiveFile::getMember(const Archive::Symbol *Sym) { auto COrErr = Sym->getMember(); - error(COrErr, Twine("Could not get the member for symbol ") + Sym->getName()); + error(COrErr, Sym->getName() + Twine(": Could not get member for symbol")); const Archive::Child &C = *COrErr; // Return an empty buffer if we have already returned the same buffer. if (Seen[C.getChildOffset()].test_and_set()) return MemoryBufferRef(); ErrorOr Ret = C.getMemoryBufferRef(); - error(Ret, Twine("Could not get the buffer for the member defining symbol ") + - Sym->getName()); + error(Ret, Sym->getName() + + Twine(": Could not get buffer for member defining symbol")); return *Ret; } @@ -105,15 +104,14 @@ // Parse a memory buffer as a COFF file. auto BinOrErr = createBinary(MB); if (!BinOrErr) - error(errorToErrorCode(BinOrErr.takeError()), - "Failed to parse object file"); + error(errorToErrorCode(BinOrErr.takeError()), getShortName()); std::unique_ptr Bin = std::move(*BinOrErr); if (auto *Obj = dyn_cast(Bin.get())) { Bin.release(); COFFObj.reset(Obj); } else { - error(Twine(getName()) + " is not a COFF file."); + error(getShortName() + ": not a COFF file"); } // Read section and symbol tables. @@ -167,7 +165,7 @@ for (uint32_t I = 0; I < NumSymbols; ++I) { // Get a COFFSymbolRef object. auto SymOrErr = COFFObj->getSymbol(I); - error(SymOrErr, Twine("broken object file: ") + getName()); + error(SymOrErr, getShortName()); COFFSymbolRef Sym = *SymOrErr; @@ -231,12 +229,12 @@ // Reserved sections numbers don't have contents. if (llvm::COFF::isReservedSectionNumber(SectionNumber)) - error(Twine("broken object file: ") + getName()); + error(getShortName() + Twine(": broken object file")); // This symbol references a section which is not present in the section // header. if ((uint32_t)SectionNumber >= SparseChunks.size()) - error(Twine("broken object file: ") + getName()); + error(getShortName() + Twine(": broken object file")); // Nothing else to do without a section chunk. auto *SC = cast_or_null(SparseChunks[SectionNumber]); Index: COFF/Librarian.cpp =================================================================== --- COFF/Librarian.cpp +++ COFF/Librarian.cpp @@ -484,6 +484,6 @@ std::pair Result = writeArchive(Path, Members, /*WriteSymtab*/ true, object::Archive::K_GNU, /*Deterministic*/ true, /*Thin*/ false); - error(Result.second, Twine("Failed to write ") + Path); + error(Result.second, Path); } Index: COFF/Writer.cpp =================================================================== --- COFF/Writer.cpp +++ COFF/Writer.cpp @@ -653,7 +653,7 @@ void Writer::openFile(StringRef Path) { ErrorOr> BufferOrErr = FileOutputBuffer::create(Path, FileSize, FileOutputBuffer::F_executable); - error(BufferOrErr, Twine("failed to open ") + Path); + error(BufferOrErr, Path); Buffer = std::move(*BufferOrErr); }