diff options
author | Sam Clegg <sbc@chromium.org> | 2018-07-18 21:46:09 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2018-07-18 21:46:09 +0000 |
commit | be3d65d3b5c4c98931bde7d767ee8c57a23943ed (patch) | |
tree | 1f6585db39379cb494fe17a57f888dab19067f25 /lld/wasm | |
parent | 77f76548388b33e3b6aa4929d5ad71f0ef43cee3 (diff) |
[WebAssembly] Fix archive member display in error messages
Add a test for this by causing a symbol collision
between archive members.
Differential Revision: https://reviews.llvm.org/D49343
Diffstat (limited to 'lld/wasm')
-rw-r--r-- | lld/wasm/InputFiles.cpp | 8 | ||||
-rw-r--r-- | lld/wasm/InputFiles.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp index 55392ccd34f..0396f299749 100644 --- a/lld/wasm/InputFiles.cpp +++ b/lld/wasm/InputFiles.cpp @@ -372,7 +372,7 @@ void ArchiveFile::addMember(const Archive::Symbol *Sym) { return; } - Obj->ParentName = ParentName; + Obj->ArchiveName = getName(); Symtab->addFile(Obj); } @@ -407,7 +407,7 @@ static Symbol *createBitcodeSymbol(const lto::InputFile::Symbol &ObjSym, void BitcodeFile::parse() { Obj = check(lto::InputFile::create(MemoryBufferRef( - MB.getBuffer(), Saver.save(ParentName + MB.getBufferIdentifier())))); + MB.getBuffer(), Saver.save(ArchiveName + MB.getBufferIdentifier())))); Triple T(Obj->getTargetTriple()); if (T.getArch() != Triple::wasm32) { error(toString(MB.getBufferIdentifier()) + ": machine type must be wasm32"); @@ -423,8 +423,8 @@ std::string lld::toString(const wasm::InputFile *File) { if (!File) return "<internal>"; - if (File->ParentName.empty()) + if (File->ArchiveName.empty()) return File->getName(); - return (File->ParentName + "(" + File->getName() + ")").str(); + return (File->ArchiveName + "(" + File->getName() + ")").str(); } diff --git a/lld/wasm/InputFiles.h b/lld/wasm/InputFiles.h index 75d20e63cf5..73cc32f8add 100644 --- a/lld/wasm/InputFiles.h +++ b/lld/wasm/InputFiles.h @@ -63,7 +63,7 @@ public: Kind kind() const { return FileKind; } // An archive file name if this file is created from an archive. - StringRef ParentName; + StringRef ArchiveName; ArrayRef<Symbol *> getSymbols() const { return Symbols; } |