diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/ToolChains/Arch/ARM.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp index 81aba547104..9e0c4835716 100644 --- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp @@ -88,6 +88,7 @@ static bool DecodeARMFeatures(const Driver &D, StringRef text, static void DecodeARMFeaturesFromCPU(const Driver &D, StringRef CPU, std::vector<StringRef> &Features) { + CPU = CPU.split("+").first; if (CPU != "generic") { llvm::ARM::ArchKind ArchKind = llvm::ARM::parseCPUArch(CPU); unsigned Extension = llvm::ARM::getDefaultExtensions(CPU, ArchKind); @@ -350,11 +351,9 @@ void arm::getARMTargetFeatures(const ToolChain &TC, D.Diag(clang::diag::warn_drv_unused_argument) << CPUArg->getAsString(Args); CPUName = StringRef(WaCPU->getValue()).substr(6); - checkARMCPUName(D, WaCPU, Args, CPUName, ArchName, Features, Triple); - } else if (CPUArg) { + CPUArg = WaCPU; + } else if (CPUArg) CPUName = CPUArg->getValue(); - checkARMCPUName(D, CPUArg, Args, CPUName, ArchName, Features, Triple); - } // Add CPU features for generic CPUs if (CPUName == "native") { @@ -367,6 +366,8 @@ void arm::getARMTargetFeatures(const ToolChain &TC, DecodeARMFeaturesFromCPU(D, CPUName, Features); } + if (CPUArg) + checkARMCPUName(D, CPUArg, Args, CPUName, ArchName, Features, Triple); // Honor -mfpu=. ClangAs gives preference to -Wa,-mfpu=. const Arg *FPUArg = Args.getLastArg(options::OPT_mfpu_EQ); if (WaFPU) { |