summaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy
diff options
context:
space:
mode:
authorCarlos Galvez <carlosgalvezp@gmail.com>2023-05-07 17:08:33 +0000
committerCarlos Galvez <carlosgalvezp@gmail.com>2023-05-09 16:45:02 +0000
commit0d6d8a853a6ea29b5f461a475a8f8eb7e7ba18e2 (patch)
treebc170af1400e70a09015166cfda4ea6bf891026d /clang-tools-extra/clang-tidy
parent4d0d295b618edfc937d5bf247f0853df5c70cb96 (diff)
downloadllvm-0d6d8a853a6ea29b5f461a475a8f8eb7e7ba18e2.tar.gz
[clang-tidy] Fix bugprone-assert-side-effect to actually give warnings
Some time ago a patch was merged to disable all clang-tidy warnings from system macros. This led to bugprone-assert-side-effect silently no longer working, since the warnings came from a system macro. The problem was not detected because the fake assert functions were implemented in the same file as the test, instead of being a system include like it's done in the real world. Move the assert to a proper system header, and fix the code to warn at the correct location. This patch is breakdown from https://reviews.llvm.org/D147081 by PiotrZSL. Fixes https://github.com/llvm/llvm-project/issues/62314 Differential Revision: https://reviews.llvm.org/D150071
Diffstat (limited to 'clang-tools-extra/clang-tidy')
-rw-r--r--clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
index 600a923b211c..07a987359d4d 100644
--- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
@@ -117,13 +117,13 @@ void AssertSideEffectCheck::check(const MatchFinder::MatchResult &Result) {
StringRef AssertMacroName;
while (Loc.isValid() && Loc.isMacroID()) {
StringRef MacroName = Lexer::getImmediateMacroName(Loc, SM, LangOpts);
+ Loc = SM.getImmediateMacroCallerLoc(Loc);
// Check if this macro is an assert.
if (llvm::is_contained(AssertMacros, MacroName)) {
AssertMacroName = MacroName;
break;
}
- Loc = SM.getImmediateMacroCallerLoc(Loc);
}
if (AssertMacroName.empty())
return;