summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib/LibDriver/LibDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/LibDriver/LibDriver.cpp')
-rw-r--r--contrib/llvm/lib/LibDriver/LibDriver.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/contrib/llvm/lib/LibDriver/LibDriver.cpp b/contrib/llvm/lib/LibDriver/LibDriver.cpp
index ea6d921..bcdec4f 100644
--- a/contrib/llvm/lib/LibDriver/LibDriver.cpp
+++ b/contrib/llvm/lib/LibDriver/LibDriver.cpp
@@ -143,6 +143,15 @@ int llvm::libDriverMain(llvm::ArrayRef<const char*> ArgsArr) {
});
return 1;
}
+ sys::fs::file_magic Magic =
+ sys::fs::identify_magic(MOrErr->Buf->getBuffer());
+ if (Magic != sys::fs::file_magic::coff_object &&
+ Magic != sys::fs::file_magic::bitcode &&
+ Magic != sys::fs::file_magic::windows_resource) {
+ llvm::errs() << Arg->getValue()
+ << ": not a COFF object, bitcode or resource file\n";
+ return 1;
+ }
Members.emplace_back(std::move(*MOrErr));
}
OpenPOWER on IntegriCloud