aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-01-30 15:01:47 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-01-30 15:01:47 +0000
commitf22d1fd96d6056a2f271b0f7353b31f47547127b (patch)
treef168b479f58b55c84124ef0f4b96abc7ceefba40
parente242d5f5fae8b16cb2d54b9dbb60855d4c67e67d (diff)
Use StringRef instead of returning a temporary std::string.
This fixes a really nasty bug in Darwin::getDarwinArchName where we were going StringRef -> temporary std::string -> StringRef (and return the dead StringRef). The StringRefs from Triple live as long as the Triple itself, that should be long enough. Hopefully 2 of 4 MSVC buildbot failures are gone now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94892 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Driver/ToolChain.h6
-rw-r--r--lib/Driver/Tools.cpp2
2 files changed, 4 insertions, 4 deletions
diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h
index cc8d438db3..501e833202 100644
--- a/include/clang/Driver/ToolChain.h
+++ b/include/clang/Driver/ToolChain.h
@@ -53,9 +53,9 @@ public:
const Driver &getDriver() const;
const llvm::Triple &getTriple() const { return Triple; }
- std::string getArchName() const { return Triple.getArchName(); }
- std::string getPlatform() const { return Triple.getVendorName(); }
- std::string getOS() const { return Triple.getOSName(); }
+ llvm::StringRef getArchName() const { return Triple.getArchName(); }
+ llvm::StringRef getPlatform() const { return Triple.getVendorName(); }
+ llvm::StringRef getOS() const { return Triple.getOSName(); }
std::string getTripleString() const {
return Triple.getTriple();
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 2e7435fa32..2354bd494e 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -512,7 +512,7 @@ void Clang::AddX86TargetArgs(const ArgList &Args,
// Select the default CPU if none was given (or detection failed).
if (!CPUName) {
// FIXME: Need target hooks.
- if (memcmp(getToolChain().getOS().c_str(), "darwin", 6) == 0) {
+ if (getToolChain().getOS().startswith("darwin")) {
if (getToolChain().getArchName() == "x86_64")
CPUName = "core2";
else if (getToolChain().getArchName() == "i386")