diff --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp b/clang/lib/Driver/ToolChains/Arch/X86.cpp index 2cc44c09917f53..5d9a7234b027d2 100644 --- a/clang/lib/Driver/ToolChains/Arch/X86.cpp +++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp @@ -20,7 +20,7 @@ using namespace clang::driver::tools; using namespace clang; using namespace llvm::opt; -const char *x86::getX86TargetCPU(const ArgList &Args, +std::string x86::getX86TargetCPU(const ArgList &Args, const llvm::Triple &Triple) { if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ)) { if (StringRef(A->getValue()) != "native") @@ -33,7 +33,7 @@ const char *x86::getX86TargetCPU(const ArgList &Args, // with -native. std::string CPU = std::string(llvm::sys::getHostCPUName()); if (!CPU.empty() && CPU != "generic") - return Args.MakeArgString(CPU); + return CPU; } if (const Arg *A = Args.getLastArgNoClaim(options::OPT__SLASH_arch)) { @@ -64,7 +64,7 @@ const char *x86::getX86TargetCPU(const ArgList &Args, // Select the default CPU if none was given (or detection failed). if (!Triple.isX86()) - return nullptr; // This routine is only handling x86 targets. + return ""; // This routine is only handling x86 targets. bool Is64Bit = Triple.getArch() == llvm::Triple::x86_64; diff --git a/clang/lib/Driver/ToolChains/Arch/X86.h b/clang/lib/Driver/ToolChains/Arch/X86.h index 9f9c2b8c4b4993..14f0a26c8be4dc 100644 --- a/clang/lib/Driver/ToolChains/Arch/X86.h +++ b/clang/lib/Driver/ToolChains/Arch/X86.h @@ -21,7 +21,7 @@ namespace driver { namespace tools { namespace x86 { -const char *getX86TargetCPU(const llvm::opt::ArgList &Args, +std::string getX86TargetCPU(const llvm::opt::ArgList &Args, const llvm::Triple &Triple); void getX86TargetFeatures(const Driver &D, const llvm::Triple &Triple,