diff options
author | Haowei Wu <haowei@google.com> | 2023-03-22 16:41:47 -0700 |
---|---|---|
committer | Haowei Wu <haowei@google.com> | 2023-04-10 16:02:04 -0700 |
commit | 420526fb22f35df4750063ef4783b3774eaa371a (patch) | |
tree | fb35839cf42d6a6cd7397b6f618466b479979307 /llvm/lib/InterfaceStub | |
parent | dea417f75e56bc87633bdd16711b401503a5a821 (diff) | |
download | llvm-420526fb22f35df4750063ef4783b3774eaa371a.zip llvm-420526fb22f35df4750063ef4783b3774eaa371a.tar.gz llvm-420526fb22f35df4750063ef4783b3774eaa371a.tar.bz2 |
[ifs] Print an error when llvm-ifs is supplied with an unknown arch
This patch makes llvm-ifs print an error when the arch string from
'--arch' flag or the IFS file 'Arch' field is unknown.
Differential Revision: https://reviews.llvm.org/D146672
Diffstat (limited to 'llvm/lib/InterfaceStub')
-rw-r--r-- | llvm/lib/InterfaceStub/IFSHandler.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/InterfaceStub/IFSHandler.cpp b/llvm/lib/InterfaceStub/IFSHandler.cpp index a7be08ac..aa5817dc 100644 --- a/llvm/lib/InterfaceStub/IFSHandler.cpp +++ b/llvm/lib/InterfaceStub/IFSHandler.cpp @@ -193,8 +193,13 @@ Expected<std::unique_ptr<IFSStub>> ifs::readIFSFromBuffer(StringRef Buf) { "IFS version " + Stub->IfsVersion.getAsString() + " is unsupported.", std::make_error_code(std::errc::invalid_argument)); if (Stub->Target.ArchString) { - Stub->Target.Arch = + uint16_t eMachine = ELF::convertArchNameToEMachine(*Stub->Target.ArchString); + if (eMachine == ELF::EM_NONE) + return createStringError( + std::make_error_code(std::errc::invalid_argument), + "IFS arch '" + *Stub->Target.ArchString + "' is unsupported"); + Stub->Target.Arch = eMachine; } return std::move(Stub); } |