[PATCH] D64607: [clang-tidy] Fix crash on end location inside macro
Nathan Huckleberry via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 11 17:27:53 PDT 2019
Nathan-Huckleberry created this revision.
Herald added subscribers: cfe-commits, xazax.hun.
Herald added a project: clang.
Lexer::getLocForEndOfToken is defined to return an
invalid location if the given location is inside a macro.
Other checks conditionally warn based off location
validity. Updating this check to do the same.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D64607
Files:
clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
Index: clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
+++ clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
@@ -132,9 +132,10 @@
// We report the first occurence only when we find the second one.
diag(Branches[i]->getBeginLoc(),
"repeated branch in conditional chain");
- diag(Lexer::getLocForEndOfToken(Branches[i]->getEndLoc(), 0,
- *Result.SourceManager, getLangOpts()),
- "end of the original", DiagnosticIDs::Note);
+ SourceLocation End = Lexer::getLocForEndOfToken(Branches[i]->getEndLoc(), 0, *Result.SourceManager, getLangOpts());
+ if(End.isValid()) {
+ diag(End,"end of the original", DiagnosticIDs::Note);
+ }
}
diag(Branches[j]->getBeginLoc(), "clone %0 starts here",
@@ -208,10 +209,11 @@
if (EndLoc.isMacroID())
EndLoc = Context.getSourceManager().getExpansionLoc(EndLoc);
+ EndLoc = Lexer::getLocForEndOfToken(EndLoc, 0, *Result.SourceManager,getLangOpts());
- diag(Lexer::getLocForEndOfToken(EndLoc, 0, *Result.SourceManager,
- getLangOpts()),
- "last of these clones ends here", DiagnosticIDs::Note);
+ if(EndLoc.isValid()) {
+ diag(EndLoc,"last of these clones ends here", DiagnosticIDs::Note);
+ }
}
BeginCurrent = EndCurrent;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64607.209380.patch
Type: text/x-patch
Size: 1591 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190712/c06e3173/attachment.bin>
More information about the cfe-commits
mailing list