User Details
- User Since
- Jun 16 2016, 2:39 AM (354 w, 2 d)
May 7 2018
May 4 2018
Changes based on comments.
Format changes added based on comments.
May 2 2018
Yepp, good point, Aleksei, rewritten the tests using explicit instantiation.
Apr 26 2018
I have commited this patch (r330847) but unfortunately "refactored" the differential revision link from the commit message out. Added it as a dependent commit.
Apr 25 2018
Yepp, pretty straightforward check for something we were not aware previously (but unfortunately encountered it).
Changes made based on comments.
The CFG recreating problem is handled the following (only for this check):
Always store the last visited function and its CFG* (in form of the Sequence*) and check if we are visiting it again. If so, then the check reuses the previous one, if not, then replaces them. As far as I know the AST traverse done by the tidy fits this model (at least for this check, since it not uses narrowing matchers to other functions).
Sure, it would be better to find a general solution to this problem, and make the CFG reusable by every check which needs it, but I would left it for a follow-up (and a change like this probably would worth an own patch/review anyway).
Rewritten the tests using the newly added TEST_P method.
This patch failed earlier when -fdelayed-template-parsing flag was enabled, however, the actual import process was OK but the original AST havent included the checked nodes.
TEST_P made possible to check whether the original code contains the node we would like to import (and we test only in this case, since otherwise it does not make sense).
Apr 11 2018
Hello Aleksei,
Apr 6 2018
Addressed comments and readded the lost fixes.
Apr 5 2018
Rebase + set the IDNS in a more general way.
Moved to bugprone category,
skipping memberExpr cases for now in order to avoid false positives,
other small changes based on review comments.
Mar 30 2018
Yepp, thanks for the patch! One small typo below.
Mar 27 2018
Mar 26 2018
Added the assignment operator matcher patch as a dependency and rebased on top of that.
Mar 19 2018
Nice catch, it looks good to me! Thank you!
One small nit for future debugging people: Could you insert a comment line in the test case where you explain what is this all about? E.g what you just have written in the description: "invalidateRegions() will construct the SymbolConjured with null Stmt" or something like this.
Feb 21 2018
Feb 16 2018
ping
ping
Jan 21 2018
Would it make sense to use the last element of the block edge's source for the diagnostic location when the destination block is empty?
Jan 18 2018
First, sorry for this delayed update, however, I was working on this and running this on real projects. I wanted to make sure that this update will be complete enough that this patch would not cause any harm (yes, these features are hidden behind a flag but anyway) and not crashes on edge cases I haven't thought of. The core used the fact that LocationContext only contains StackFramce and BlockInvocation and I aimed to eliminate all these code snippets (more like rewrite).
I essentially have one question at a glance - for loop counter variables, don't we want LoopEntrance be before the initialization?
Added comments and removed indirect goto support from this patch.
Dec 21 2017
Comment added to LoopEntrance CFGElement.
Dec 18 2017
Hi Alexey!
Dec 12 2017
Dec 7 2017
Nope, that was me. If this (and the dependencies) are looking good, I can commit them as well (added the dependencies ^^).
Updates based on comments.
Dec 6 2017
Hi Eugen!
Good question, probably should have detailed it in the description.
This matcher based solution would not gain much benefit from the symbolic execution provided information. (I mean, it would mean a much different type of check on the states.)
The main problems that the analyzer does not completely unroll the loops only the first steps and we always have information about the simulated path. However, detecting that some variables will surely not be modified requires a top level overview on the loop and the AST provides these informations. The one thing (that I can say right now) that can come handy is that we would able to detect more precisely the happened-before relation on the escape and the loop statements. Since the CFG can provide us fair enough information on this one, I do not think that this is enough reason to put this checker to the analyzer.
Updated the wording in the docs.
Dec 1 2017
Added Alexander and Aaron as reviewers for the matcher parts.
Nov 29 2017
Yepp, I am not exactly sure how I managed to do it, but I've missed this comment last time. Fixed it.
Nov 24 2017
Thank you for the review!
Nov 23 2017
Updating the usage of ImportTemplateArgumentListInfo.
Updating the usage of ImportTemplateArgumentListInfo.
Updated based on review comments.
Hello Aleksei,
Updates based on review comments.
Left some unformatted lines in the previous version. Fixed.
Updates based on comments.
Nov 16 2017
Testfiles added and HTML updated.
isAssignmentOp matcher moved to ASTMatchers.h
(Manuel added to reviewers as the code owner of ASTMatchers)
Oct 28 2017
- Updated to use a custom AST matcher for assignment operator check. (More structured and efficient.)
- Tests added as well.
Oct 27 2017
Just removed some accidentally left changes from the patch.
LGTM as well, but same note applies.
Oct 19 2017
Checking for importing base updated to (!Imported && From) style.
Oct 14 2017
Fixed the commented bug (check if ThisRegion is null).
Test file (running line) update.