summaryrefslogtreecommitdiff
path: root/lld/wasm
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-07-18 21:46:09 +0000
committerSam Clegg <sbc@chromium.org>2018-07-18 21:46:09 +0000
commitbe3d65d3b5c4c98931bde7d767ee8c57a23943ed (patch)
tree1f6585db39379cb494fe17a57f888dab19067f25 /lld/wasm
parent77f76548388b33e3b6aa4929d5ad71f0ef43cee3 (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.cpp8
-rw-r--r--lld/wasm/InputFiles.h2
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; }