diff options
-rw-r--r-- | include/clang/Basic/TargetInfo.h | 4 | ||||
-rw-r--r-- | lib/Basic/Targets.cpp | 8 | ||||
-rw-r--r-- | lib/CodeGen/TargetInfo.cpp | 6 |
3 files changed, 8 insertions, 10 deletions
diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h index 29de91569d..ef88ec2fd9 100644 --- a/include/clang/Basic/TargetInfo.h +++ b/include/clang/Basic/TargetInfo.h @@ -632,9 +632,7 @@ public: } /// \brief Get the ABI currently in use. - virtual const char *getABI() const { - return ""; - } + virtual StringRef getABI() const { return StringRef(); } /// \brief Get the C++ ABI currently in use. TargetCXXABI getCXXABI() const { diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 33b4916ef8..e88cb9e728 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -1863,7 +1863,7 @@ public: bool hasFeature(StringRef Feature) const override; bool handleTargetFeatures(std::vector<std::string> &Features, DiagnosticsEngine &Diags) override; - const char* getABI() const override { + StringRef getABI() const override { if (getTriple().getArch() == llvm::Triple::x86_64 && SSELevel >= AVX) return "avx"; else if (getTriple().getArch() == llvm::Triple::x86 && @@ -3663,7 +3663,7 @@ public: // zero length bitfield. UseZeroLengthBitfieldAlignment = true; } - const char *getABI() const override { return ABI.c_str(); } + StringRef getABI() const override { return ABI; } bool setABI(const std::string &Name) override { ABI = Name; @@ -4287,7 +4287,7 @@ public: TheCXXABI.set(TargetCXXABI::GenericAArch64); } - virtual const char *getABI() const { return ABI.c_str(); } + StringRef getABI() const override { return ABI; } virtual bool setABI(const std::string &Name) { if (Name != "aapcs" && Name != "darwinpcs") return false; @@ -5222,7 +5222,7 @@ public: IsNan2008(false), IsSingleFloat(false), FloatABI(HardFloat), DspRev(NoDSP), HasMSA(false), HasFP64(false), ABI(ABIStr) {} - const char *getABI() const override { return ABI.c_str(); } + StringRef getABI() const override { return ABI; } bool setABI(const std::string &Name) override = 0; bool setCPU(const std::string &Name) override { CPU = Name; diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp index 3421f160f9..2e27b3c07e 100644 --- a/lib/CodeGen/TargetInfo.cpp +++ b/lib/CodeGen/TargetInfo.cpp @@ -6480,7 +6480,7 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() { case llvm::Triple::arm64: case llvm::Triple::arm64_be: { AArch64ABIInfo::ABIKind Kind = AArch64ABIInfo::AAPCS; - if (strcmp(getTarget().getABI(), "darwinpcs") == 0) + if (getTarget().getABI() == "darwinpcs") Kind = AArch64ABIInfo::DarwinPCS; return *(TheTargetCodeGenInfo = new AArch64TargetCodeGenInfo(Types, Kind)); @@ -6492,7 +6492,7 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() { case llvm::Triple::thumbeb: { ARMABIInfo::ABIKind Kind = ARMABIInfo::AAPCS; - if (strcmp(getTarget().getABI(), "apcs-gnu") == 0) + if (getTarget().getABI() == "apcs-gnu") Kind = ARMABIInfo::APCS; else if (CodeGenOpts.FloatABI == "hard" || (CodeGenOpts.FloatABI != "soft" && @@ -6555,7 +6555,7 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() { } case llvm::Triple::x86_64: { - bool HasAVX = strcmp(getTarget().getABI(), "avx") == 0; + bool HasAVX = getTarget().getABI() == "avx"; switch (Triple.getOS()) { case llvm::Triple::Win32: |