[clang-tidy] Fix RenamerClangTidyChecks suggesting invalid macro identifiers

This behavior was fixed for regular identifiers in
9f3edc323a, but the same fix was not applied to
macro fixits. This addresses https://github.com/llvm/llvm-project/issues/52895.

Differential Revision: https://reviews.llvm.org/D116824
This commit is contained in:
Logan Smith 2022-01-07 10:22:56 -08:00
parent 68468bbe15
commit 988c3f5f96
2 changed files with 8 additions and 0 deletions

View File

@ -486,6 +486,9 @@ void RenamerClangTidyCheck::checkMacro(SourceManager &SourceMgr,
NamingCheckFailure &Failure = NamingCheckFailures[ID];
SourceRange Range(MacroNameTok.getLocation(), MacroNameTok.getEndLoc());
if (!isValidAsciiIdentifier(Info.Fixup))
Failure.FixStatus = ShouldFixStatus::FixInvalidIdentifier;
Failure.Info = std::move(Info);
addUsage(ID, Range);
}

View File

@ -171,6 +171,11 @@ int _;
// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: declaration uses identifier '_', which is reserved in the global namespace; cannot be fixed automatically [bugprone-reserved-identifier]
// CHECK-FIXES: {{^}}int _;{{$}}
// https://github.com/llvm/llvm-project/issues/52895
#define _5_kmph_rpm 459
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: declaration uses identifier '_5_kmph_rpm', which is reserved in the global namespace; cannot be fixed automatically [bugprone-reserved-identifier]
// CHECK-FIXES: {{^}}#define _5_kmph_rpm 459{{$}}
// these should pass
#define MACRO(m) int m = 0