diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 74cd39377520..99f62fa3c0be 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -4532,8 +4532,9 @@ const char *arm::getARMCPUForMArch(const ArgList &Args, : "arm7tdmi"; } +/// FIXME: this should return a stringref once getHostCPUName return one. /// getARMTargetCPU - Get the (LLVM) name of the ARM cpu we are targeting. -const char *arm::getARMTargetCPU(const ArgList &Args, +std::string arm::getARMTargetCPU(const ArgList &Args, const llvm::Triple &Triple) { // FIXME: Warn on inconsistent use of -mcpu and -march. // If we have -mcpu=, use that. @@ -4541,9 +4542,9 @@ const char *arm::getARMTargetCPU(const ArgList &Args, StringRef MCPU = A->getValue(); // Handle -mcpu=native. if (MCPU == "native") - return llvm::sys::getHostCPUName().c_str(); + return llvm::sys::getHostCPUName(); else - return MCPU.str().c_str(); + return MCPU.str(); } return getARMCPUForMArch(Args, Triple); diff --git a/clang/lib/Driver/Tools.h b/clang/lib/Driver/Tools.h index 562352f035c4..c6da145ce375 100644 --- a/clang/lib/Driver/Tools.h +++ b/clang/lib/Driver/Tools.h @@ -202,7 +202,7 @@ namespace hexagon { } // end namespace hexagon. namespace arm { - const char* getARMTargetCPU(const llvm::opt::ArgList &Args, + std::string getARMTargetCPU(const llvm::opt::ArgList &Args, const llvm::Triple &Triple); const char* getARMCPUForMArch(const llvm::opt::ArgList &Args, const llvm::Triple &Triple);