https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/91844
I'm planning to remove StringRef::equals in favor of StringRef::operator==. - StringRef::operator==/!= outnumber StringRef::equals by a factor of 24 under clang/ in terms of their usage. - The elimination of StringRef::equals brings StringRef closer to std::string_view, which has operator== but not equals. - S == "foo" is more readable than S.equals("foo"), especially for !Long.Expression.equals("str") vs Long.Expression != "str". >From 8b4328567ca3406d63ff21d599cfb787efc81b26 Mon Sep 17 00:00:00 2001 From: Kazu Hirata <k...@google.com> Date: Thu, 9 May 2024 23:15:31 -0700 Subject: [PATCH] [clang] Use StringRef::operator== instead of StringRef::equals (NFC) I'm planning to remove StringRef::equals in favor of StringRef::operator==. - StringRef::operator==/!= outnumber StringRef::equals by a factor of 24 under clang/ in terms of their usage. - The elimination of StringRef::equals brings StringRef closer to std::string_view, which has operator== but not equals. - S == "foo" is more readable than S.equals("foo"), especially for !Long.Expression.equals("str") vs Long.Expression != "str". --- clang/include/clang/Basic/IdentifierTable.h | 2 +- clang/include/clang/Basic/SourceManager.h | 6 +++--- clang/lib/ARCMigrate/ObjCMT.cpp | 2 +- clang/lib/AST/PrintfFormatString.cpp | 8 ++++---- clang/lib/ASTMatchers/Dynamic/Marshallers.cpp | 4 ++-- clang/lib/Basic/Builtins.cpp | 2 +- clang/lib/Basic/Diagnostic.cpp | 3 +-- clang/lib/Basic/LangOptions.cpp | 2 +- clang/lib/Basic/Targets/ARM.cpp | 5 ++--- clang/lib/Basic/Targets/PPC.h | 2 +- clang/lib/Basic/Targets/SystemZ.h | 2 +- clang/lib/Basic/Targets/X86.h | 6 +++--- clang/lib/CodeGen/CodeGenFunction.cpp | 7 +++---- clang/lib/Format/ContinuationIndenter.cpp | 2 +- clang/lib/Format/Format.cpp | 2 +- clang/lib/Frontend/CompilerInvocation.cpp | 2 +- clang/lib/Frontend/ModuleDependencyCollector.cpp | 2 +- clang/lib/Lex/PPDirectives.cpp | 4 ++-- clang/lib/Parse/ParseDecl.cpp | 2 +- clang/lib/Parse/ParseDeclCXX.cpp | 4 ++-- clang/lib/Parse/ParseHLSL.cpp | 2 +- clang/lib/Parse/ParseOpenMP.cpp | 4 ++-- clang/lib/Sema/SemaCodeComplete.cpp | 9 ++++----- clang/lib/Sema/SemaDecl.cpp | 8 ++++---- clang/lib/Sema/SemaDeclCXX.cpp | 4 ++-- clang/lib/Sema/SemaStmtAsm.cpp | 2 +- clang/lib/Sema/SemaTemplate.cpp | 4 ++-- .../lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp | 7 +++---- .../StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp | 2 +- .../lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp | 2 +- clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 4 ++-- .../StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp | 4 ++-- .../StaticAnalyzer/Checkers/ObjCContainersChecker.cpp | 6 +++--- clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp | 2 +- clang/lib/StaticAnalyzer/Core/CheckerContext.cpp | 2 +- clang/lib/Tooling/Tooling.cpp | 2 +- clang/tools/diagtool/ShowEnabledWarnings.cpp | 4 ++-- clang/tools/diagtool/TreeView.cpp | 2 +- clang/unittests/CodeGen/IRMatchers.h | 2 +- 39 files changed, 68 insertions(+), 73 deletions(-) diff --git a/clang/include/clang/Basic/IdentifierTable.h b/clang/include/clang/Basic/IdentifierTable.h index a893e6f4d3d39..ae9ebd9f59154 100644 --- a/clang/include/clang/Basic/IdentifierTable.h +++ b/clang/include/clang/Basic/IdentifierTable.h @@ -738,7 +738,7 @@ class IdentifierTable { II->Entry = &Entry; // If this is the 'import' contextual keyword, mark it as such. - if (Name.equals("import")) + if (Name == "import") II->setModulesImport(true); return *II; diff --git a/clang/include/clang/Basic/SourceManager.h b/clang/include/clang/Basic/SourceManager.h index d2ece14da0b11..5258bab584f49 100644 --- a/clang/include/clang/Basic/SourceManager.h +++ b/clang/include/clang/Basic/SourceManager.h @@ -1504,7 +1504,7 @@ class SourceManager : public RefCountedBase<SourceManager> { if (Presumed.isInvalid()) return false; StringRef Filename(Presumed.getFilename()); - return Filename.equals("<built-in>"); + return Filename == "<built-in>"; } /// Returns whether \p Loc is located in a <command line> file. @@ -1513,7 +1513,7 @@ class SourceManager : public RefCountedBase<SourceManager> { if (Presumed.isInvalid()) return false; StringRef Filename(Presumed.getFilename()); - return Filename.equals("<command line>"); + return Filename == "<command line>"; } /// Returns whether \p Loc is located in a <scratch space> file. @@ -1522,7 +1522,7 @@ class SourceManager : public RefCountedBase<SourceManager> { if (Presumed.isInvalid()) return false; StringRef Filename(Presumed.getFilename()); - return Filename.equals("<scratch space>"); + return Filename == "<scratch space>"; } /// Returns if a SourceLocation is in a system header. diff --git a/clang/lib/ARCMigrate/ObjCMT.cpp b/clang/lib/ARCMigrate/ObjCMT.cpp index b9dcfb8951b3e..aaf41dc4039cd 100644 --- a/clang/lib/ARCMigrate/ObjCMT.cpp +++ b/clang/lib/ARCMigrate/ObjCMT.cpp @@ -484,7 +484,7 @@ static void rewriteToObjCProperty(const ObjCMethodDecl *Getter, // Short circuit 'delegate' properties that contain the name "delegate" or // "dataSource", or have exact name "target" to have 'assign' attribute. - if (PropertyName.equals("target") || PropertyName.contains("delegate") || + if (PropertyName == "target" || PropertyName.contains("delegate") || PropertyName.contains("dataSource")) { QualType QT = Getter->getReturnType(); if (!QT->isRealType()) diff --git a/clang/lib/AST/PrintfFormatString.cpp b/clang/lib/AST/PrintfFormatString.cpp index fec8ce13e8c44..dd3b38fabb550 100644 --- a/clang/lib/AST/PrintfFormatString.cpp +++ b/clang/lib/AST/PrintfFormatString.cpp @@ -146,13 +146,13 @@ static PrintfSpecifierResult ParsePrintfSpecifier(FormatStringHandler &H, if (Warn && (Size == 0 || Size > 8)) H.handleInvalidMaskType(MaskType); FS.setMaskType(MaskType); - } else if (MatchedStr.equals("sensitive")) + } else if (MatchedStr == "sensitive") PrivacyFlags = clang::analyze_os_log::OSLogBufferItem::IsSensitive; else if (PrivacyFlags != - clang::analyze_os_log::OSLogBufferItem::IsSensitive && - MatchedStr.equals("private")) + clang::analyze_os_log::OSLogBufferItem::IsSensitive && + MatchedStr == "private") PrivacyFlags = clang::analyze_os_log::OSLogBufferItem::IsPrivate; - else if (PrivacyFlags == 0 && MatchedStr.equals("public")) + else if (PrivacyFlags == 0 && MatchedStr == "public") PrivacyFlags = clang::analyze_os_log::OSLogBufferItem::IsPublic; } else { size_t CommaOrBracePos = diff --git a/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp b/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp index cf9ae7c974a62..37c91abb5c839 100644 --- a/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp +++ b/clang/lib/ASTMatchers/Dynamic/Marshallers.cpp @@ -21,7 +21,7 @@ getBestGuess(llvm::StringRef Search, llvm::ArrayRef<llvm::StringRef> Allowed, llvm::StringRef Res; for (const llvm::StringRef &Item : Allowed) { if (Item.equals_insensitive(Search)) { - assert(!Item.equals(Search) && "This should be handled earlier on."); + assert(Item != Search && "This should be handled earlier on."); MaxEditDistance = 1; Res = Item; continue; @@ -41,7 +41,7 @@ getBestGuess(llvm::StringRef Search, llvm::ArrayRef<llvm::StringRef> Allowed, if (!NoPrefix.consume_front(DropPrefix)) continue; if (NoPrefix.equals_insensitive(Search)) { - if (NoPrefix.equals(Search)) + if (NoPrefix == Search) return Item.str(); MaxEditDistance = 1; Res = Item; diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index 3467847ac1672..b116abbe034f7 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -64,7 +64,7 @@ bool Builtin::Context::isBuiltinFunc(llvm::StringRef FuncName) { bool InStdNamespace = FuncName.consume_front("std-"); for (unsigned i = Builtin::NotBuiltin + 1; i != Builtin::FirstTSBuiltin; ++i) { - if (FuncName.equals(BuiltinInfo[i].Name) && + if (FuncName == BuiltinInfo[i].Name && (bool)strchr(BuiltinInfo[i].Attributes, 'z') == InStdNamespace) return strchr(BuiltinInfo[i].Attributes, 'f') != nullptr; } diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index 0208ccc31bd7f..10136b4cd9435 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -851,8 +851,7 @@ FormatDiagnostic(const char *DiagStr, const char *DiagEnd, // When the diagnostic string is only "%0", the entire string is being given // by an outside source. Remove unprintable characters from this string // and skip all the other string processing. - if (DiagEnd - DiagStr == 2 && - StringRef(DiagStr, DiagEnd - DiagStr).equals("%0") && + if (DiagEnd - DiagStr == 2 && StringRef(DiagStr, DiagEnd - DiagStr) == "%0" && getArgKind(0) == DiagnosticsEngine::ak_std_string) { const std::string &S = getArgStdStr(0); EscapeStringForDiagnostic(S, OutStr); diff --git a/clang/lib/Basic/LangOptions.cpp b/clang/lib/Basic/LangOptions.cpp index a0adfbf61840e..2b906463931d3 100644 --- a/clang/lib/Basic/LangOptions.cpp +++ b/clang/lib/Basic/LangOptions.cpp @@ -48,7 +48,7 @@ void LangOptions::resetNonModularOptions() { bool LangOptions::isNoBuiltinFunc(StringRef FuncName) const { for (unsigned i = 0, e = NoBuiltinFuncs.size(); i != e; ++i) - if (FuncName.equals(NoBuiltinFuncs[i])) + if (FuncName == NoBuiltinFuncs[i]) return true; return false; } diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp index 877799c66ec4f..7423626d7c3cb 100644 --- a/clang/lib/Basic/Targets/ARM.cpp +++ b/clang/lib/Basic/Targets/ARM.cpp @@ -173,8 +173,7 @@ bool ARMTargetInfo::supportsThumb() const { } bool ARMTargetInfo::supportsThumb2() const { - return CPUAttr.equals("6T2") || - (ArchVersion >= 7 && !CPUAttr.equals("8M_BASE")); + return CPUAttr == "6T2" || (ArchVersion >= 7 && CPUAttr != "8M_BASE"); } StringRef ARMTargetInfo::getCPUAttr() const { @@ -1162,7 +1161,7 @@ bool ARMTargetInfo::validateAsmConstraint( return true; case 'j': // An immediate integer between 0 and 65535 (valid for MOVW) // only available in ARMv6T2 and above - if (CPUAttr.equals("6T2") || ArchVersion >= 7) { + if (CPUAttr == "6T2" || ArchVersion >= 7) { Info.setRequiresImmediate(0, 65535); return true; } diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h index 496b6131d09bb..fc23c30c68523 100644 --- a/clang/lib/Basic/Targets/PPC.h +++ b/clang/lib/Basic/Targets/PPC.h @@ -360,7 +360,7 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetInfo : public TargetInfo { bool hasBitIntType() const override { return true; } bool isSPRegName(StringRef RegName) const override { - return RegName.equals("r1") || RegName.equals("x1"); + return RegName == "r1" || RegName == "x1"; } // We support __builtin_cpu_supports/__builtin_cpu_is on targets that diff --git a/clang/lib/Basic/Targets/SystemZ.h b/clang/lib/Basic/Targets/SystemZ.h index 73d3aa01a043f..3bc6f2c1d3083 100644 --- a/clang/lib/Basic/Targets/SystemZ.h +++ b/clang/lib/Basic/Targets/SystemZ.h @@ -84,7 +84,7 @@ class LLVM_LIBRARY_VISIBILITY SystemZTargetInfo : public TargetInfo { ArrayRef<TargetInfo::AddlRegName> getGCCAddlRegNames() const override; bool isSPRegName(StringRef RegName) const override { - return RegName.equals("r15"); + return RegName == "r15"; } bool validateAsmConstraint(const char *&Name, diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h index c14e4d5f433d8..3ad5c248f4315 100644 --- a/clang/lib/Basic/Targets/X86.h +++ b/clang/lib/Basic/Targets/X86.h @@ -218,7 +218,7 @@ class LLVM_LIBRARY_VISIBILITY X86TargetInfo : public TargetInfo { ArrayRef<TargetInfo::AddlRegName> getGCCAddlRegNames() const override; bool isSPRegName(StringRef RegName) const override { - return RegName.equals("esp") || RegName.equals("rsp"); + return RegName == "esp" || RegName == "rsp"; } bool supportsCpuSupports() const override { return true; } @@ -246,7 +246,7 @@ class LLVM_LIBRARY_VISIBILITY X86TargetInfo : public TargetInfo { bool &HasSizeMismatch) const override { // esp and ebp are the only 32-bit registers the x86 backend can currently // handle. - if (RegName.equals("esp") || RegName.equals("ebp")) { + if (RegName == "esp" || RegName == "ebp") { // Check that the register size is 32-bit. HasSizeMismatch = RegSize != 32; return true; @@ -802,7 +802,7 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { bool &HasSizeMismatch) const override { // rsp and rbp are the only 64-bit registers the x86 backend can currently // handle. - if (RegName.equals("rsp") || RegName.equals("rbp")) { + if (RegName == "rsp" || RegName == "rbp") { // Check that the register size is 64-bit. HasSizeMismatch = RegSize != 64; return true; diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 477814140a9e2..9f16fcb438557 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -2765,10 +2765,9 @@ llvm::Value *CodeGenFunction::FormAArch64ResolverCondition( // only for features that are not enabled in the target. The exception is // for features whose extension instructions are executed as NOP on targets // without extension support. - if (!getContext().getTargetInfo().hasFeature(Feature) || - Feature.equals("bti") || Feature.equals("memtag") || - Feature.equals("memtag2") || Feature.equals("memtag3") || - Feature.equals("dgh")) + if (!getContext().getTargetInfo().hasFeature(Feature) || Feature == "bti" || + Feature == "memtag" || Feature == "memtag2" || Feature == "memtag3" || + Feature == "dgh") CondFeatures.push_back(Feature); } if (!CondFeatures.empty()) { diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index ad0e2c3c620c3..6b9fbfe0ebf53 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -1422,7 +1422,7 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) { // the next line. if (State.Line->InPragmaDirective) { FormatToken *PragmaType = State.Line->First->Next->Next; - if (PragmaType && PragmaType->TokenText.equals("omp")) + if (PragmaType && PragmaType->TokenText == "omp") return CurrentState.Indent + Style.ContinuationIndentWidth; } diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index c5c79dd0f883e..52005a6c881f3 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -3770,7 +3770,7 @@ reformat(const FormatStyle &Style, StringRef Code, tooling::Replacements NonNoOpFixes; for (const tooling::Replacement &Fix : Fixes) { StringRef OriginalCode = Code.substr(Fix.getOffset(), Fix.getLength()); - if (!OriginalCode.equals(Fix.getReplacementText())) { + if (OriginalCode != Fix.getReplacementText()) { auto Err = NonNoOpFixes.add(Fix); if (Err) { llvm::errs() << "Error adding replacements : " diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index dbb5f5662ebf1..14ee02c4cd582 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1969,7 +1969,7 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << A->getValue(); else if (Val == llvm::FunctionReturnThunksKind::Extern && - Args.getLastArgValue(OPT_mcmodel_EQ).equals("large")) + Args.getLastArgValue(OPT_mcmodel_EQ) == "large") Diags.Report(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args) << Args.getLastArg(OPT_mcmodel_EQ)->getAsString(Args); diff --git a/clang/lib/Frontend/ModuleDependencyCollector.cpp b/clang/lib/Frontend/ModuleDependencyCollector.cpp index b88cb60ebdd2a..e2883f1e027e4 100644 --- a/clang/lib/Frontend/ModuleDependencyCollector.cpp +++ b/clang/lib/Frontend/ModuleDependencyCollector.cpp @@ -105,7 +105,7 @@ static bool isCaseSensitivePath(StringRef Path) { // already expects when sensitivity isn't setup. for (auto &C : Path) UpperDest.push_back(toUppercase(C)); - if (!llvm::sys::fs::real_path(UpperDest, RealDest) && Path.equals(RealDest)) + if (!llvm::sys::fs::real_path(UpperDest, RealDest) && Path == RealDest) return false; return true; } diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 82eb47bcd5bf9..8e7386449dced 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -183,7 +183,7 @@ static MacroDiag shouldWarnOnMacroDef(Preprocessor &PP, IdentifierInfo *II) { return isFeatureTestMacro(Text) ? MD_NoWarn : MD_ReservedMacro; if (II->isKeyword(Lang)) return MD_KeywordDef; - if (Lang.CPlusPlus11 && (Text.equals("override") || Text.equals("final"))) + if (Lang.CPlusPlus11 && (Text == "override" || Text == "final")) return MD_KeywordDef; return MD_NoWarn; } @@ -2807,7 +2807,7 @@ static bool isConfigurationPattern(Token &MacroName, MacroInfo *MI, if (TrimmedValue.ends_with("__")) TrimmedValue = TrimmedValue.drop_back(2); } - return TrimmedValue.equals(MacroText); + return TrimmedValue == MacroText; } else { return false; } diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 5b5fc02ad4023..7fbaee5690bdf 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -3889,7 +3889,7 @@ void Parser::ParseDeclarationSpecifiers( // parse errors if this really is a __declspec attribute. Attempt to // recognize that scenario and recover gracefully. if (!getLangOpts().DeclSpecKeyword && Tok.is(tok::identifier) && - Tok.getIdentifierInfo()->getName().equals("__declspec")) { + Tok.getIdentifierInfo()->getName() == "__declspec") { Diag(Loc, diag::err_ms_attributes_not_enabled); // The next token should be an open paren. If it is, eat the entire diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 96c9708c3711b..65ddebca49bc6 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -4548,9 +4548,9 @@ static bool IsBuiltInOrStandardCXX11Attribute(IdentifierInfo *AttrName, case ParsedAttr::AT_Unlikely: return true; case ParsedAttr::AT_WarnUnusedResult: - return !ScopeName && AttrName->getName().equals("nodiscard"); + return !ScopeName && AttrName->getName() == "nodiscard"; case ParsedAttr::AT_Unused: - return !ScopeName && AttrName->getName().equals("maybe_unused"); + return !ScopeName && AttrName->getName() == "maybe_unused"; default: return false; } diff --git a/clang/lib/Parse/ParseHLSL.cpp b/clang/lib/Parse/ParseHLSL.cpp index e9c8d6dca7bf5..4b72afe9986e5 100644 --- a/clang/lib/Parse/ParseHLSL.cpp +++ b/clang/lib/Parse/ParseHLSL.cpp @@ -174,7 +174,7 @@ void Parser::ParseHLSLAnnotations(ParsedAttributes &Attrs, ArgExprs.push_back(ParseIdentifierLoc()); // Add numeric_constant for fix-it. - if (SpaceStr.equals("space") && Tok.is(tok::numeric_constant)) + if (SpaceStr == "space" && Tok.is(tok::numeric_constant)) fixSeparateAttrArgAndNumber(SpaceStr, SpaceLoc, Tok, ArgExprs, *this, Actions.Context, PP); } diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 18ba1185ee8de..53eabe0c662e5 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -740,7 +740,7 @@ static bool parseDeclareSimdClauses( BS = Out; BSRange = SourceRange(Tok.getLocation(), Tok.getEndLoc()); P.ConsumeToken(); - } else if (ClauseName.equals("simdlen")) { + } else if (ClauseName == "simdlen") { if (SimdLen.isUsable()) { P.Diag(Tok, diag::err_omp_more_one_clause) << getOpenMPDirectiveName(OMPD_declare_simd) << ClauseName << 0; @@ -1106,7 +1106,7 @@ static ExprResult parseContextScore(Parser &P) { llvm::SmallString<16> Buffer; StringRef SelectorName = P.getPreprocessor().getSpelling(P.getCurToken(), Buffer); - if (!SelectorName.equals("score")) + if (SelectorName != "score") return ScoreExpr; (void)P.ConsumeToken(); SourceLocation RLoc; diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 3f0ab10646fe5..87aa0cacc2496 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -4049,18 +4049,17 @@ unsigned clang::getMacroUsagePriority(StringRef MacroName, unsigned Priority = CCP_Macro; // Treat the "nil", "Nil" and "NULL" macros as null pointer constants. - if (MacroName.equals("nil") || MacroName.equals("NULL") || - MacroName.equals("Nil")) { + if (MacroName == "nil" || MacroName == "NULL" || MacroName == "Nil") { Priority = CCP_Constant; if (PreferredTypeIsPointer) Priority = Priority / CCF_SimilarTypeMatch; } // Treat "YES", "NO", "true", and "false" as constants. - else if (MacroName.equals("YES") || MacroName.equals("NO") || - MacroName.equals("true") || MacroName.equals("false")) + else if (MacroName == "YES" || MacroName == "NO" || MacroName == "true" || + MacroName == "false") Priority = CCP_Constant; // Treat "bool" as a type. - else if (MacroName.equals("bool")) + else if (MacroName == "bool") Priority = CCP_Type + (LangOpts.ObjC ? CCD_bool_in_ObjC : 0); return Priority; diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 590f37837eb2d..fb913034bd836 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -735,8 +735,8 @@ void Sema::DiagnoseUnknownTypeName(IdentifierInfo *&II, << II, CanRecover); } else if (DeclContext *DC = computeDeclContext(*SS, false)) { std::string CorrectedStr(Corrected.getAsString(getLangOpts())); - bool DroppedSpecifier = Corrected.WillReplaceSpecifier() && - II->getName().equals(CorrectedStr); + bool DroppedSpecifier = + Corrected.WillReplaceSpecifier() && II->getName() == CorrectedStr; diagnoseTypo(Corrected, PDiag(IsTemplateName ? diag::err_no_member_template_suggest @@ -1007,7 +1007,7 @@ Sema::NameClassification Sema::ClassifyName(Scope *S, CXXScopeSpec &SS, } else {// FIXME: is this even reachable? Test it. std::string CorrectedStr(Corrected.getAsString(getLangOpts())); bool DroppedSpecifier = Corrected.WillReplaceSpecifier() && - Name->getName().equals(CorrectedStr); + Name->getName() == CorrectedStr; diagnoseTypo(Corrected, PDiag(QualifiedDiag) << Name << computeDeclContext(SS, false) << DroppedSpecifier << SS.getRange()); @@ -16076,7 +16076,7 @@ static void diagnoseImplicitlyRetainedSelf(Sema &S) { static bool methodHasName(const FunctionDecl *FD, StringRef Name) { return isa<CXXMethodDecl>(FD) && FD->param_empty() && - FD->getDeclName().isIdentifier() && FD->getName().equals(Name); + FD->getDeclName().isIdentifier() && FD->getName() == Name; } bool Sema::CanBeGetReturnObject(const FunctionDecl *FD) { diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index d77b9507066b0..53238d355ea09 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -12234,8 +12234,8 @@ static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc, DiagnoseInvisibleNamespace(Corrected, S); } else if (DeclContext *DC = S.computeDeclContext(SS, false)) { std::string CorrectedStr(Corrected.getAsString(S.getLangOpts())); - bool DroppedSpecifier = Corrected.WillReplaceSpecifier() && - Ident->getName().equals(CorrectedStr); + bool DroppedSpecifier = + Corrected.WillReplaceSpecifier() && Ident->getName() == CorrectedStr; S.diagnoseTypo(Corrected, S.PDiag(diag::err_using_directive_member_suggest) << Ident << DC << DroppedSpecifier << SS.getRange(), diff --git a/clang/lib/Sema/SemaStmtAsm.cpp b/clang/lib/Sema/SemaStmtAsm.cpp index 83351b703c153..32d42f3c3f3bb 100644 --- a/clang/lib/Sema/SemaStmtAsm.cpp +++ b/clang/lib/Sema/SemaStmtAsm.cpp @@ -829,7 +829,7 @@ bool Sema::LookupInlineAsmField(StringRef Base, StringRef Member, NamedDecl *FoundDecl = nullptr; // MS InlineAsm uses 'this' as a base - if (getLangOpts().CPlusPlus && Base.equals("this")) { + if (getLangOpts().CPlusPlus && Base == "this") { if (const Type *PT = getCurrentThisType().getTypePtrOrNull()) FoundDecl = PT->getPointeeType()->getAsTagDecl(); } else { diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 480c0103ae335..82badb2efb5cf 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -4268,8 +4268,8 @@ checkBuiltinTemplateIdType(Sema &SemaRef, BuiltinTemplateDecl *BTD, /// Determine whether this alias template is "enable_if_t". /// libc++ >=14 uses "__enable_if_t" in C++11 mode. static bool isEnableIfAliasTemplate(TypeAliasTemplateDecl *AliasTemplate) { - return AliasTemplate->getName().equals("enable_if_t") || - AliasTemplate->getName().equals("__enable_if_t"); + return AliasTemplate->getName() == "enable_if_t" || + AliasTemplate->getName() == "__enable_if_t"; } /// Collect all of the separable terms in the given condition, which diff --git a/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp index d17f5ddf07055..a0190c30bfd28 100644 --- a/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp @@ -1065,15 +1065,14 @@ void GenericTaintChecker::taintUnsafeSocketProtocol(const CallEvent &Call, const IdentifierInfo *ID = Call.getCalleeIdentifier(); if (!ID) return; - if (!ID->getName().equals("socket")) + if (ID->getName() != "socket") return; SourceLocation DomLoc = Call.getArgExpr(0)->getExprLoc(); StringRef DomName = C.getMacroNameOrSpelling(DomLoc); // Allow internal communication protocols. - bool SafeProtocol = DomName.equals("AF_SYSTEM") || - DomName.equals("AF_LOCAL") || DomName.equals("AF_UNIX") || - DomName.equals("AF_RESERVED_36"); + bool SafeProtocol = DomName == "AF_SYSTEM" || DomName == "AF_LOCAL" || + DomName == "AF_UNIX" || DomName == "AF_RESERVED_36"; if (SafeProtocol) return; diff --git a/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp index fa51aa80216b4..1cb3848cfed2a 100644 --- a/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp @@ -41,7 +41,7 @@ static bool InNamespace(const Decl *D, StringRef NS) { if (!ND) return false; const IdentifierInfo *II = ND->getIdentifier(); - if (!II || !II->getName().equals(NS)) + if (!II || II->getName() != NS) return false; return isa<TranslationUnitDecl>(ND->getDeclContext()); } diff --git a/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp index 882eb0236a189..f524c4c067c8c 100644 --- a/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp @@ -1159,7 +1159,7 @@ void EmptyLocalizationContextChecker::MethodCrawler::VisitObjCMessageExpr( } if (isAnyIdentifier(Result.getKind())) { - if (Result.getRawIdentifier().equals("nil")) { + if (Result.getRawIdentifier() == "nil") { reportEmptyContextError(ME); return; } diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index ab89fb14046be..34af7fb131f5a 100644 --- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -1727,7 +1727,7 @@ static std::optional<bool> getFreeWhenDoneArg(const ObjCMethodCall &Call) { // FIXME: We should not rely on fully-constrained symbols being folded. for (unsigned i = 1; i < S.getNumArgs(); ++i) - if (S.getNameForSlot(i).equals("freeWhenDone")) + if (S.getNameForSlot(i) == "freeWhenDone") return !Call.getArgSVal(i).isZeroConstant(); return std::nullopt; @@ -3255,7 +3255,7 @@ bool MallocChecker::mayFreeAnyEscapedMemoryOrIsModeledExplicitly( if (FirstSlot.starts_with("addPointer") || FirstSlot.starts_with("insertPointer") || FirstSlot.starts_with("replacePointer") || - FirstSlot.equals("valueWithPointer")) { + FirstSlot == "valueWithPointer") { return true; } diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp index 2b008d1c775a2..6978d81faf1c7 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp @@ -101,14 +101,14 @@ void WalkAST::VisitCallExpr(CallExpr *CE) { const Expr *Arg = nullptr; unsigned ArgNum; - if (Name.equals("CFArrayCreate") || Name.equals("CFSetCreate")) { + if (Name == "CFArrayCreate" || Name == "CFSetCreate") { if (CE->getNumArgs() != 4) return; ArgNum = 1; Arg = CE->getArg(ArgNum)->IgnoreParenCasts(); if (hasPointerToPointerSizedType(Arg)) return; - } else if (Name.equals("CFDictionaryCreate")) { + } else if (Name == "CFDictionaryCreate") { if (CE->getNumArgs() != 6) return; // Check first argument. diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp index 28e88245ca95a..4937af3b91c29 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp @@ -82,7 +82,7 @@ void ObjCContainersChecker::checkPostStmt(const CallExpr *CE, return; // Add array size information to the state. - if (Name.equals("CFArrayCreate")) { + if (Name == "CFArrayCreate") { if (CE->getNumArgs() < 3) return; // Note, we can visit the Create method in the post-visit because @@ -92,7 +92,7 @@ void ObjCContainersChecker::checkPostStmt(const CallExpr *CE, return; } - if (Name.equals("CFArrayGetCount")) { + if (Name == "CFArrayGetCount") { addSizeInfo(CE->getArg(0), CE, C); return; } @@ -105,7 +105,7 @@ void ObjCContainersChecker::checkPreStmt(const CallExpr *CE, return; // Check the array access. - if (Name.equals("CFArrayGetValueAtIndex")) { + if (Name == "CFArrayGetValueAtIndex") { ProgramStateRef State = C.getState(); // Retrieve the size. // Find out if we saw this array symbol before and have information about diff --git a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp index a7b6f6c1fb55c..d4e020f7a72a0 100644 --- a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp @@ -1143,7 +1143,7 @@ void StreamChecker::evalFscanf(const FnDescription *Desc, const CallEvent &Call, return; if (auto const *Callee = Call.getCalleeIdentifier(); - !Callee || !Callee->getName().equals("vfscanf")) { + !Callee || Callee->getName() != "vfscanf") { SmallVector<unsigned int> EscArgs; for (auto EscArg : llvm::seq(2u, Call.getNumArgs())) EscArgs.push_back(EscArg); diff --git a/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp b/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp index 113abcd4c2ab0..96464b30c078f 100644 --- a/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp +++ b/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp @@ -104,7 +104,7 @@ bool CheckerContext::isCLibraryFunction(const FunctionDecl *FD, return true; StringRef FName = II->getName(); - if (FName.equals(Name)) + if (FName == Name) return true; if (FName.starts_with("__inline") && FName.contains(Name)) diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index c5c3cdb47e92e..ffacf9cf1f782 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/lib/Tooling/Tooling.cpp @@ -293,7 +293,7 @@ void addTargetAndModeForProgramName(std::vector<std::string> &CommandLine, ++Token) { StringRef TokenRef(*Token); ShouldAddTarget = ShouldAddTarget && !TokenRef.starts_with(TargetOPT) && - !TokenRef.equals(TargetOPTLegacy); + TokenRef != TargetOPTLegacy; ShouldAddMode = ShouldAddMode && !TokenRef.starts_with(DriverModeOPT); } if (ShouldAddMode) { diff --git a/clang/tools/diagtool/ShowEnabledWarnings.cpp b/clang/tools/diagtool/ShowEnabledWarnings.cpp index 285efe6ae05b3..66a295db054c3 100644 --- a/clang/tools/diagtool/ShowEnabledWarnings.cpp +++ b/clang/tools/diagtool/ShowEnabledWarnings.cpp @@ -90,11 +90,11 @@ int ShowEnabledWarnings::run(unsigned int argc, char **argv, raw_ostream &Out) { bool ShouldShowLevels = true; if (argc > 0) { StringRef FirstArg(*argv); - if (FirstArg.equals("--no-levels")) { + if (FirstArg == "--no-levels") { ShouldShowLevels = false; --argc; ++argv; - } else if (FirstArg.equals("--levels")) { + } else if (FirstArg == "--levels") { ShouldShowLevels = true; --argc; ++argv; diff --git a/clang/tools/diagtool/TreeView.cpp b/clang/tools/diagtool/TreeView.cpp index 00d1097b5fbfd..8d1ce14b0f520 100644 --- a/clang/tools/diagtool/TreeView.cpp +++ b/clang/tools/diagtool/TreeView.cpp @@ -144,7 +144,7 @@ int TreeView::run(unsigned int argc, char **argv, llvm::raw_ostream &out) { bool Internal = false; if (argc > 0) { StringRef FirstArg(*argv); - if (FirstArg.equals("--internal")) { + if (FirstArg == "--internal") { Internal = true; --argc; ++argv; diff --git a/clang/unittests/CodeGen/IRMatchers.h b/clang/unittests/CodeGen/IRMatchers.h index 47e4204980362..3572a317f07ac 100644 --- a/clang/unittests/CodeGen/IRMatchers.h +++ b/clang/unittests/CodeGen/IRMatchers.h @@ -317,7 +317,7 @@ class NameMetaMatcher : public EntityMatcher<Metadata> { NameMetaMatcher(StringRef N) : Name(N) {} bool matchEntity(const Metadata &M, MatcherContext &C) override { if (auto *MDS = dyn_cast<MDString>(&M)) - return MDS->getString().equals(Name); + return MDS->getString() == Name; return false; } }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits