summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
index fd6c4ca92fc..91451e680ca 100644
--- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp
@@ -75,9 +75,17 @@ void StaticAssertCheck::check(const MatchFinder::MatchResult &Result) {
return;
// False literal is not the result of macro expansion.
- if (IsAlwaysFalse &&
- !SM.getImmediateSpellingLoc(IsAlwaysFalse->getExprLoc()).isMacroID())
- return;
+ if (IsAlwaysFalse) {
+ SourceLocation FalseLiteralLoc =
+ SM.getImmediateSpellingLoc(IsAlwaysFalse->getExprLoc());
+ if (!FalseLiteralLoc.isMacroID())
+ return;
+
+ StringRef FalseMacroName =
+ Lexer::getImmediateMacroName(FalseLiteralLoc, SM, Opts);
+ if (FalseMacroName.compare_lower("false") == 0)
+ return;
+ }
SourceLocation AssertLoc = SM.getImmediateMacroCallerLoc(AssertExpansionLoc);
OpenPOWER on IntegriCloud