summaryrefslogtreecommitdiffstats
path: root/lld/wasm/InputFiles.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/wasm/InputFiles.cpp')
-rw-r--r--lld/wasm/InputFiles.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp
index 2a5c10e3909..5c9ae60e543 100644
--- a/lld/wasm/InputFiles.cpp
+++ b/lld/wasm/InputFiles.cpp
@@ -44,8 +44,13 @@ Optional<MemoryBufferRef> lld::wasm::readFile(StringRef Path) {
InputFile *lld::wasm::createObjectFile(MemoryBufferRef MB) {
file_magic Magic = identify_magic(MB.getBuffer());
- if (Magic == file_magic::wasm_object)
+ if (Magic == file_magic::wasm_object) {
+ std::unique_ptr<Binary> Bin = check(createBinary(MB));
+ auto *Obj = cast<WasmObjectFile>(Bin.get());
+ if (Obj->isSharedObject())
+ return make<SharedFile>(MB);
return make<ObjFile>(MB);
+ }
if (Magic == file_magic::bitcode)
return make<BitcodeFile>(MB);
OpenPOWER on IntegriCloud