Author: Fangrui Song Date: 2022-07-25T15:05:38-07:00 New Revision: 1d23f6c5a4f6ebb101c282f8f506588fe4d9e92f
URL: https://github.com/llvm/llvm-project/commit/1d23f6c5a4f6ebb101c282f8f506588fe4d9e92f DIFF: https://github.com/llvm/llvm-project/commit/1d23f6c5a4f6ebb101c282f8f506588fe4d9e92f.diff LOG: [Driver] Ignore unimplemented -mtune= for ARM/PowerPC This compensates for 8f0c901c1a172313a32bc06a1fcface76cd1220f which enabled -Wunused-command-line-argument for unimplemented -mtune= in the generic code. Ignoring -mtune= appears to be longstanding and the error-free behavior in the presence of -Werror is unfortunately relied on by the Linux kernel's arm and powerpc ports. Ignore the warnings for the upcoming 15.0.0 branch and will implement functionality to fill the test gap soon. Link: https://github.com/ClangBuiltLinux/linux/issues/1674 Added: Modified: clang/lib/Driver/ToolChains/Arch/ARM.cpp clang/lib/Driver/ToolChains/Arch/PPC.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp index 5c49db2f08379..a64909d9a6e77 100644 --- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp @@ -548,6 +548,11 @@ void arm::getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple, if (CPUArg) checkARMCPUName(D, CPUArg, Args, CPUName, ArchName, ExtensionFeatures, Triple, CPUArgFPUID); + + // TODO Handle -mtune=. Suppress -Wunused-command-line-argument as a + // longstanding behavior. + (void)Args.getLastArg(options::OPT_mtune_EQ); + // Honor -mfpu=. ClangAs gives preference to -Wa,-mfpu=. unsigned FPUID = llvm::ARM::FK_INVALID; const Arg *FPUArg = Args.getLastArg(options::OPT_mfpu_EQ); diff --git a/clang/lib/Driver/ToolChains/Arch/PPC.cpp b/clang/lib/Driver/ToolChains/Arch/PPC.cpp index bcaecf4b2d980..7817ec595ceb3 100644 --- a/clang/lib/Driver/ToolChains/Arch/PPC.cpp +++ b/clang/lib/Driver/ToolChains/Arch/PPC.cpp @@ -107,6 +107,10 @@ const char *ppc::getPPCAsmModeForCPU(StringRef Name) { void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector<StringRef> &Features) { + // TODO Handle -mtune=. Suppress -Wunused-command-line-argument as a + // longstanding behavior. + (void)Args.getLastArg(options::OPT_mtune_EQ); + if (Triple.getSubArch() == llvm::Triple::PPCSubArch_spe) Features.push_back("+spe"); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits