This revision was automatically updated to reflect the committed changes. Closed by commit rGb389a62518ad: [clang-tidy] Make MatchesAnyListedNameMatcher cope with unnamed Decl (authored by mikecrowe, committed by PiotrZSL).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154884/new/ https://reviews.llvm.org/D154884 Files: clang-tools-extra/clang-tidy/utils/Matchers.h clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp Index: clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp +++ clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp @@ -3,7 +3,7 @@ // RUN: [ \ // RUN: { \ // RUN: key: modernize-use-std-print.PrintfLikeFunctions, \ -// RUN: value: '::myprintf; mynamespace::myprintf2' \ +// RUN: value: 'unqualified_printf;::myprintf; mynamespace::myprintf2' \ // RUN: }, \ // RUN: { \ // RUN: key: modernize-use-std-print.FprintfLikeFunctions, \ @@ -14,7 +14,7 @@ // RUN: -- -isystem %clang_tidy_headers #include <cstdio> -#include <string.h> +#include <string> int myprintf(const char *, ...); int myfprintf(FILE *fp, const char *, ...); @@ -85,3 +85,10 @@ // CHECK-MESSAGES-NOT: [[@LINE-1]]:10: warning: use 'std::println' instead of 'myprintf' [modernize-use-std-print] // CHECK-FIXES-NOT: std::println(stderr, "return value {}", i); } + +// Ensure that MatchesAnyListedNameMatcher::NameMatcher::match() can cope with a +// NamedDecl that has no name when we're trying to match unqualified_printf. +void no_name(const std::string &in) +{ + "A" + in; +} Index: clang-tools-extra/clang-tidy/utils/Matchers.h =================================================================== --- clang-tools-extra/clang-tidy/utils/Matchers.h +++ clang-tools-extra/clang-tidy/utils/Matchers.h @@ -112,7 +112,9 @@ case MatchMode::MatchFullyQualified: return Regex.match("::" + ND.getQualifiedNameAsString()); default: - return Regex.match(ND.getName()); + if (const IdentifierInfo *II = ND.getIdentifier()) + return Regex.match(II->getName()); + return false; } }
Index: clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp +++ clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print-custom.cpp @@ -3,7 +3,7 @@ // RUN: [ \ // RUN: { \ // RUN: key: modernize-use-std-print.PrintfLikeFunctions, \ -// RUN: value: '::myprintf; mynamespace::myprintf2' \ +// RUN: value: 'unqualified_printf;::myprintf; mynamespace::myprintf2' \ // RUN: }, \ // RUN: { \ // RUN: key: modernize-use-std-print.FprintfLikeFunctions, \ @@ -14,7 +14,7 @@ // RUN: -- -isystem %clang_tidy_headers #include <cstdio> -#include <string.h> +#include <string> int myprintf(const char *, ...); int myfprintf(FILE *fp, const char *, ...); @@ -85,3 +85,10 @@ // CHECK-MESSAGES-NOT: [[@LINE-1]]:10: warning: use 'std::println' instead of 'myprintf' [modernize-use-std-print] // CHECK-FIXES-NOT: std::println(stderr, "return value {}", i); } + +// Ensure that MatchesAnyListedNameMatcher::NameMatcher::match() can cope with a +// NamedDecl that has no name when we're trying to match unqualified_printf. +void no_name(const std::string &in) +{ + "A" + in; +} Index: clang-tools-extra/clang-tidy/utils/Matchers.h =================================================================== --- clang-tools-extra/clang-tidy/utils/Matchers.h +++ clang-tools-extra/clang-tidy/utils/Matchers.h @@ -112,7 +112,9 @@ case MatchMode::MatchFullyQualified: return Regex.match("::" + ND.getQualifiedNameAsString()); default: - return Regex.match(ND.getName()); + if (const IdentifierInfo *II = ND.getIdentifier()) + return Regex.match(II->getName()); + return false; } }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits