diff options
author | Fangrui Song <i@maskray.me> | 2023-05-26 15:30:23 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2023-05-26 15:30:23 -0700 |
commit | 89d71c1efa85656b54bcd79b4278bc67690480e1 (patch) | |
tree | 0ea59c0c838b440c853c263fc82d97b2625ee366 /clang/lib | |
parent | 2be0abb7fe72ed4537b3eabcd3102d48ea845717 (diff) | |
download | llvm-89d71c1efa85656b54bcd79b4278bc67690480e1.zip llvm-89d71c1efa85656b54bcd79b4278bc67690480e1.tar.gz llvm-89d71c1efa85656b54bcd79b4278bc67690480e1.tar.bz2 |
[Driver] Reject AIX-specific link options on non-AIX targets
Follow-up to D106688 and D146431.
-b leads to a -Wunused-command-line-argument warning instead of an error
without linking phase.
-mxcoff-build-id= leads to a -Wunused-command-line-argument warning instead of
an error.
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 12 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/CommonArgs.cpp | 9 |
2 files changed, 8 insertions, 13 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index e1adff4..2fd07b3 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6370,10 +6370,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } } - if (Arg *A = Args.getLastArgNoClaim(options::OPT_K); - A && !TC.getTriple().isOSAIX()) - D.Diag(diag::err_drv_unsupported_opt_for_target) - << A->getAsString(Args) << TripleStr; + // Reject AIX-specific link options on other targets. + if (!TC.getTriple().isOSAIX()) { + for (const Arg *A : Args.filtered(options::OPT_b, options::OPT_K, + options::OPT_mxcoff_build_id_EQ)) { + D.Diag(diag::err_drv_unsupported_opt_for_target) + << A->getSpelling() << TripleStr; + } + } if (Args.getLastArg(options::OPT_fapple_kext) || (Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType))) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 4a11be7..8854d13 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -303,15 +303,6 @@ void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs, // Pass -z prefix for gcc linker compatibility. A.claim(); A.render(Args, CmdArgs); - } else if (A.getOption().matches(options::OPT_b)) { - const llvm::Triple &T = TC.getTriple(); - if (!T.isOSAIX()) { - TC.getDriver().Diag(diag::err_drv_unsupported_opt_for_target) - << A.getSpelling() << T.str(); - } - // Pass -b prefix for AIX linker. - A.claim(); - A.render(Args, CmdArgs); } else { A.renderAsInput(Args, CmdArgs); } |