summaryrefslogtreecommitdiffstats
path: root/lld/ELF/InputFiles.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/InputFiles.cpp')
-rw-r--r--lld/ELF/InputFiles.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index 5a942ba0ab4..2ba02fc4df6 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -491,7 +491,12 @@ static std::unique_ptr<InputFile> createELFFile(MemoryBufferRef MB) {
std::unique_ptr<InputFile> elf2::createObjectFile(MemoryBufferRef MB,
StringRef ArchiveName) {
- std::unique_ptr<InputFile> F = createELFFile<ObjectFile>(MB);
+ using namespace sys::fs;
+ std::unique_ptr<InputFile> F;
+ if (identify_magic(MB.getBuffer()) == file_magic::bitcode)
+ F.reset(new BitcodeFile(MB));
+ else
+ F = createELFFile<ObjectFile>(MB);
F->ArchiveName = ArchiveName;
return F;
}
OpenPOWER on IntegriCloud