зеркало из https://github.com/microsoft/clang-1.git
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
This commit is contained in:
Родитель
e242d5f5fa
Коммит
f22d1fd96d
|
@ -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();
|
||||
|
|
|
@ -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")
|
||||
|
|
Загрузка…
Ссылка в новой задаче