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/tools/llvm-ifs/llvm-ifs.cpp | |
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/tools/llvm-ifs/llvm-ifs.cpp')
-rw-r--r-- | llvm/tools/llvm-ifs/llvm-ifs.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/tools/llvm-ifs/llvm-ifs.cpp b/llvm/tools/llvm-ifs/llvm-ifs.cpp index 92ca519..0d2744f 100644 --- a/llvm/tools/llvm-ifs/llvm-ifs.cpp +++ b/llvm/tools/llvm-ifs/llvm-ifs.cpp @@ -333,9 +333,13 @@ static DriverConfig parseArgs(int argc, char *const *argv) { if (!Config.OutputFormat) OptionNotFound("--output-format", A->getValue()); } - if (const opt::Arg *A = Args.getLastArg(OPT_arch_EQ)) - Config.OverrideArch = ELF::convertArchNameToEMachine(A->getValue()); - + if (const opt::Arg *A = Args.getLastArg(OPT_arch_EQ)) { + uint16_t eMachine = ELF::convertArchNameToEMachine(A->getValue()); + if (eMachine == ELF::EM_NONE) { + fatalError(Twine("unknown arch '") + A->getValue() + "'"); + } + Config.OverrideArch = eMachine; + } if (const opt::Arg *A = Args.getLastArg(OPT_bitwidth_EQ)) { size_t Width; llvm::StringRef S(A->getValue()); |