Page MenuHomePhabricator

baloghadamsoftware (Balogh, Ádám)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 9 2016, 4:07 AM (162 w, 2 d)

Recent Activity

Tue, Apr 16

baloghadamsoftware accepted D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.

LGTM!

Tue, Apr 16, 5:40 AM · Restricted Project, Restricted Project

Thu, Mar 28

baloghadamsoftware committed rGa19c985f8ab0: [Analyzer] Constraint Manager - Calculate Effective Range for Differences (authored by baloghadamsoftware).
[Analyzer] Constraint Manager - Calculate Effective Range for Differences
Thu, Mar 28, 6:07 AM
baloghadamsoftware committed rC357167: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.
[Analyzer] Constraint Manager - Calculate Effective Range for Differences
Thu, Mar 28, 6:05 AM
baloghadamsoftware committed rL357167: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.
[Analyzer] Constraint Manager - Calculate Effective Range for Differences
Thu, Mar 28, 6:04 AM
baloghadamsoftware closed D55007: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.
Thu, Mar 28, 6:04 AM · Restricted Project, Restricted Project
baloghadamsoftware updated the diff for D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.

Fixed double transition.

Thu, Mar 28, 2:58 AM · Restricted Project

Mar 19 2019

baloghadamsoftware accepted D59461: [analyzer] Fix an assertion failure if plugins added dependencies.

This one seems straightforward.

Mar 19 2019, 7:56 AM · Restricted Project
baloghadamsoftware added a comment to D59466: [clang-tidy] openmp-exception-escape - a new check.

Great work! Thank you! I only have minor comment: did you consider moving the refactoring of ExceptionAnalyzer into a separate (prerequisite) patch?

Mar 19 2019, 7:37 AM · Restricted Project, Restricted Project, Restricted Project
baloghadamsoftware requested changes to D59459: [analyzer][NFC] Prefer binary searches in CheckerRegistry.
Mar 19 2019, 6:29 AM · Restricted Project, Restricted Project

Mar 18 2019

baloghadamsoftware accepted D59458: [analyzer][NFC] Clang-format CheckerRegistry.

No patch should be committed without clang-formatting anyway...

Mar 18 2019, 8:18 AM · Restricted Project
baloghadamsoftware added a comment to D59457: [analyzer][NFC] Use capital variable names, move methods out-of-line, rename some in CheckerRegistry.

Please rename the patch. Its name does not really express its content.

Mar 18 2019, 8:15 AM · Restricted Project, Restricted Project
baloghadamsoftware added a comment to D58367: [analyzer] NFC: Improve upon the concept of BugReporterVisitor..

As I understand it, this solution could be used to entirely get rid of the current bugreporter visitor structure (at least for checkers), right? The discussion seems to conclude that this is just as general, far easier to understand, far easier to implement, and is basically better in every regard without an (edit: significant) hit to performance? Because if so, I'm definitely against supporting two concurrent implementations of the same functionality -- in fact, we should even just forbid checkers to add custom visitors.

Mar 18 2019, 7:55 AM · Restricted Project
baloghadamsoftware accepted D57855: [analyzer][NFC] Reimplement checker options.

Aside from little comment it seems OK.

Mar 18 2019, 7:48 AM · Restricted Project
baloghadamsoftware added a comment to D57108: [clang-tidy] diagnose possibiltiy to add 'noexcept' in modernize-use-noexcept.

Ping! Any news regarding this patch?

Mar 18 2019, 7:20 AM · Restricted Project, Restricted Project
baloghadamsoftware added a comment to D57860: [analyzer] Validate checker option names and values.

I think it would be better if the default for compatibility mode were 'true'. That way this change will be backwards compatible and clients who want to enforce stricter checking could enable it. Setting compatibility mode to be true in the driver is not sufficient since many build systems call the frontend directly.

Mar 18 2019, 12:59 AM · Restricted Project
baloghadamsoftware added a comment to D55007: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.

Ping!

Mar 18 2019, 12:44 AM · Restricted Project, Restricted Project
baloghadamsoftware added a comment to D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.

Ping!

Mar 18 2019, 12:42 AM · Restricted Project
baloghadamsoftware accepted D57922: [analyzer] Insert checker options into AnalyzerOption::ConfigTable.

LGTM!

Mar 18 2019, 12:42 AM · Restricted Project

Mar 13 2019

baloghadamsoftware committed rGd703305e404d: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the… (authored by baloghadamsoftware).
[Analyzer] Skip symbolic regions based on conjured symbols in comparison of the…
Mar 13 2019, 6:54 AM
baloghadamsoftware committed rL356049: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the….
[Analyzer] Skip symbolic regions based on conjured symbols in comparison of the…
Mar 13 2019, 6:54 AM
baloghadamsoftware committed rC356049: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the….
[Analyzer] Skip symbolic regions based on conjured symbols in comparison of the…
Mar 13 2019, 6:54 AM
baloghadamsoftware closed D53754: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the containers of iterators.
Mar 13 2019, 6:54 AM · Restricted Project

Mar 12 2019

baloghadamsoftware added inline comments to D57860: [analyzer] Validate checker option names and values.
Mar 12 2019, 7:20 AM · Restricted Project
baloghadamsoftware added inline comments to D57922: [analyzer] Insert checker options into AnalyzerOption::ConfigTable.
Mar 12 2019, 7:19 AM · Restricted Project
baloghadamsoftware accepted D59195: [analyzer] Remove the default value arg from getChecker*Option.

This is straightforward.

Mar 12 2019, 6:55 AM · Restricted Project
baloghadamsoftware added inline comments to D57860: [analyzer] Validate checker option names and values.
Mar 12 2019, 6:09 AM · Restricted Project

Mar 11 2019

baloghadamsoftware requested changes to D57855: [analyzer][NFC] Reimplement checker options.
Mar 11 2019, 7:47 AM · Restricted Project

Feb 21 2019

baloghadamsoftware updated the diff for D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.

processComparison() refactored.

Feb 21 2019, 12:53 AM · Restricted Project

Feb 20 2019

baloghadamsoftware retitled D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split from [Analyzer] Record and process comparison of symbols instead of iterator positions in interator checkers to [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.
Feb 20 2019, 10:12 AM · Restricted Project
baloghadamsoftware updated the diff for D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.

Instead of recording comparisons do an eager state split if the result is a symbolic value.

Feb 20 2019, 10:11 AM · Restricted Project
baloghadamsoftware added inline comments to D50256: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager (for == and != only).
Feb 20 2019, 6:11 AM
baloghadamsoftware added a comment to D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.
In D53701#1322255, @NoQ wrote:

Well, i mean, whenever you are inlining a method, you are exposing details of the "internals" of the inlined API to the user. The only difference is whether this API itself deals with iterators. This sounds to me as if we try not to inline iterator methods in general. Or try really hard to prevent desynchronization between the two models.

Feb 20 2019, 5:33 AM · Restricted Project
baloghadamsoftware added a comment to D57108: [clang-tidy] diagnose possibiltiy to add 'noexcept' in modernize-use-noexcept.

Great! However, I would rename the test files: modernize-use-noexcept-opt.cpp is inaccurate since there are multiple options, it could be e.g. modernize-use-noexcept-dont-use-noexcept-false.cpp. modernize-use-noexcept-new-noexcept.cpp is a bit misleading because of the new which is a valid C++ keyword. modernize-use-noexcept-add-missing-noexcept.cpp sounds better for me.

Feb 20 2019, 3:50 AM · Restricted Project, Restricted Project
baloghadamsoftware added a comment to D58367: [analyzer] NFC: Improve upon the concept of BugReporterVisitor..

Thank you for working this. I totally agree with you: whenever the checker spawns a new node in the exploded graph there is no point to leave it unmarked and then revers engineer it. BugReporterVisitors should only care for nodes which are not spawned by the checker reporting the bug. This way we could get rid of some unnecessary visitors, e.g. CXXSelfAssignmentBRVisitor. This also opens an easier way for checkers similar to CXXSelfAssignmentChecker which does not report any bug but creates a new execution path which may end in a bug reported by another checker. Using note tags there is no need to create a separate BugReporterVisitor for every such checker and add it globally to every bug report.

Feb 20 2019, 2:14 AM · Restricted Project

Feb 19 2019

baloghadamsoftware added a reviewer for D57108: [clang-tidy] diagnose possibiltiy to add 'noexcept' in modernize-use-noexcept: baloghadamsoftware.
Feb 19 2019, 2:23 AM · Restricted Project, Restricted Project
baloghadamsoftware accepted D57883: [clang-tidy] refactor ExceptionAnalyzer further to give ternary answer.

It's for D57108, i'we guessed that such ternary answer will be required there.

Feb 19 2019, 2:20 AM · Restricted Project
Herald added a project to D57108: [clang-tidy] diagnose possibiltiy to add 'noexcept' in modernize-use-noexcept: Restricted Project.
Feb 19 2019, 2:17 AM · Restricted Project, Restricted Project
baloghadamsoftware added a comment to D57883: [clang-tidy] refactor ExceptionAnalyzer further to give ternary answer.

If I understand it correctly, this is more of an infrastructure improvement than check enhancement. It looks like a nice and clean code. Where do we expect to use this new behavior? In the current check or in the upcoming "modernize" check?

Feb 19 2019, 2:04 AM · Restricted Project

Feb 18 2019

baloghadamsoftware added a comment to D53754: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the containers of iterators.
In D53754#1315247, @NoQ wrote:

What makes you think that conjured symbols are special?

Doesn't the same problem appear in the following example?:

void foo(std::vector<int> &v1, std::vector<int> &v2) {
  v2.erase(v1.cbegin());
}

In this example if foo() is analyzed as a top level function, the respective symbols would be of SymbolRegionValue kind. It is also easy to come up with a test case that involves SymbolDerived.

Feb 18 2019, 6:46 AM · Restricted Project
baloghadamsoftware added a comment to D55007: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.
In D55007#1322335, @NoQ wrote:

I just generally wish for a function that would return the most specific known range for the given arbitrary symbol. This is something we can put, for example, into visitor path notes.

Eg., imagine "Assuming x is greater than 5" -> "Tainted array index constrained to [5, 6] U {8} U [10, 12]" -> "Potential buffer overflow: accessing array of 11 elements with a tainted index".

getRange() is a great name for such function. For now i think it kinda works for atomic symbols with a few extra goodies on top of that. If we generally move towards that goal, i think it would be great.

Feb 18 2019, 6:17 AM · Restricted Project, Restricted Project

Feb 15 2019

baloghadamsoftware committed rG55725785d222: [Analyzer] Fix for test file of bug 40625 (authored by baloghadamsoftware).
[Analyzer] Fix for test file of bug 40625
Feb 15 2019, 4:34 AM
baloghadamsoftware committed rC354127: [Analyzer] Fix for test file of bug 40625.
[Analyzer] Fix for test file of bug 40625
Feb 15 2019, 4:33 AM
baloghadamsoftware committed rL354127: [Analyzer] Fix for test file of bug 40625.
[Analyzer] Fix for test file of bug 40625
Feb 15 2019, 4:33 AM

Feb 13 2019

baloghadamsoftware committed rG3bd63ae381c5: [Analyzer] Crash fix for FindLastStoreBRVisitor (authored by baloghadamsoftware).
[Analyzer] Crash fix for FindLastStoreBRVisitor
Feb 13 2019, 4:26 AM
baloghadamsoftware committed rC353943: [Analyzer] Crash fix for FindLastStoreBRVisitor.
[Analyzer] Crash fix for FindLastStoreBRVisitor
Feb 13 2019, 4:25 AM
baloghadamsoftware committed rL353943: [Analyzer] Crash fix for FindLastStoreBRVisitor.
[Analyzer] Crash fix for FindLastStoreBRVisitor
Feb 13 2019, 4:25 AM
baloghadamsoftware closed D58067: [Analyzer] Crash fix for FindLastStoreBRVisitor.
Feb 13 2019, 4:25 AM · Restricted Project

Feb 12 2019

baloghadamsoftware updated the diff for D58067: [Analyzer] Crash fix for FindLastStoreBRVisitor.

Function renamed, comment updated.

Feb 12 2019, 7:41 AM · Restricted Project

Feb 11 2019

baloghadamsoftware added a comment to D58067: [Analyzer] Crash fix for FindLastStoreBRVisitor.

I tried very hard to create a test case where we are crashing on a true positive but I did not succeed. I am not sure whether it is possible so fixing the false positive in CallAndMessageUnInitRefArg also fixes the crash without this patch. However I am confident the bug is still a bug in the visitor and maybe in the future it will be used for complex values as well which could be LazyCompoundVals. Also you can see in the test case uninit-vals.m that even if it does not crash it prints nonsense bug path notes caused by this same bug which is fixed by this patch.

Feb 11 2019, 11:59 AM · Restricted Project
baloghadamsoftware created D58067: [Analyzer] Crash fix for FindLastStoreBRVisitor.
Feb 11 2019, 11:48 AM · Restricted Project

Jan 30 2019

baloghadamsoftware accepted D57100: [clang-tidy] refactor bugprone-exception-escape analysis into class.
Jan 30 2019, 1:05 PM · Restricted Project
baloghadamsoftware added a comment to D57100: [clang-tidy] refactor bugprone-exception-escape analysis into class.

@baloghadamsoftware Do you see any problems with the refactoring, especially the new FunctionDecl*-Caching is not exactly a refactoring. If you have any thoughts on that would be great to hear!

Jan 30 2019, 1:05 PM · Restricted Project

Jan 28 2019

baloghadamsoftware added a comment to D57100: [clang-tidy] refactor bugprone-exception-escape analysis into class.

Hello! I am glad to see that this check gets improved by the community. I also think a "modernize" check which marks functions with noexcept is also useful.

Jan 28 2019, 4:47 AM · Restricted Project

Jan 21 2019

baloghadamsoftware committed rL351746: [Analyzer] Remove extra blank line from Iterator Checker (test commit).
[Analyzer] Remove extra blank line from Iterator Checker (test commit)
Jan 21 2019, 7:32 AM
baloghadamsoftware committed rC351746: [Analyzer] Remove extra blank line from Iterator Checker (test commit).
[Analyzer] Remove extra blank line from Iterator Checker (test commit)
Jan 21 2019, 7:32 AM

Jan 16 2019

baloghadamsoftware accepted D56824: [analyzer] MoveChecker: add ".assign" to the list of common reinitializing methods..

I think it is straightforward. Thank you for noticing this.

Jan 16 2019, 11:14 PM

Jan 14 2019

baloghadamsoftware added a comment to D56632: [analyzer] Track region liveness only through base regions..

This seems to be an important fix. Thank you!

Jan 14 2019, 7:32 AM

Dec 5 2018

baloghadamsoftware committed rL348362: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation….
[Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation…
Dec 5 2018, 5:21 AM

Dec 4 2018

baloghadamsoftware added a comment to D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.
In D53701#1315242, @NoQ wrote:

I think it's worth a try to do a total evalCall at first, and then disable evalCall (together with the attempt to model the iterator position) in an incrementally growing blacklist of cases (1. iterator adaptors, 2. ....) as we encounter problems. This essentially becomes part of the logic that decides whether an object is an iterator. Eg., if it's more like an adaptor than an actual iterator, let's treat it as if it's not an iterator, but inline instead, and hope that we model the underlying iterators correctly via evalCall.

Dec 4 2018, 7:45 AM · Restricted Project
baloghadamsoftware added a comment to D50256: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager (for == and != only).

Thank you for reviewing this patch!

Dec 4 2018, 5:59 AM
baloghadamsoftware added a comment to D55007: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.

My original idea was that once we ony store either A - B or B - A. Thus if we already have A - B stored then do not store range for B - A but negate both the difference and the range. I can think on two ways to implement this:

Dec 4 2018, 5:32 AM · Restricted Project, Restricted Project
baloghadamsoftware committed rL348245: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments….
[Analyzer] Iterator Checker - Forbid decrements past the begin() and increments…
Dec 4 2018, 2:30 AM
baloghadamsoftware committed rC348245: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments….
[Analyzer] Iterator Checker - Forbid decrements past the begin() and increments…
Dec 4 2018, 2:30 AM
baloghadamsoftware closed D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.
Dec 4 2018, 2:30 AM · Restricted Project
baloghadamsoftware committed rC348244: [Analyzer] Iterator Checkers - Use the region of the topmost base class for….
[Analyzer] Iterator Checkers - Use the region of the topmost base class for…
Dec 4 2018, 2:25 AM
baloghadamsoftware committed rL348244: [Analyzer] Iterator Checkers - Use the region of the topmost base class for….
[Analyzer] Iterator Checkers - Use the region of the topmost base class for…
Dec 4 2018, 2:25 AM
baloghadamsoftware closed D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.
Dec 4 2018, 2:25 AM · Restricted Project

Dec 3 2018

baloghadamsoftware updated the diff for D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.

One error message slightly updated.

Dec 3 2018, 6:44 AM · Restricted Project
baloghadamsoftware updated the diff for D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.

Now I think I understand the terminology and the concept so I could add Doxygen comment. I also refactored the code as you suggested, original code was based on getBaseRegion().

Dec 3 2018, 5:18 AM · Restricted Project

Dec 1 2018

baloghadamsoftware updated the diff for D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.

Thank you for the review!

Dec 1 2018, 7:55 AM · Restricted Project

Nov 30 2018

baloghadamsoftware added a comment to D55051: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled.

Committed because I was notified that the deadline for 7.0.1 is today.

Nov 30 2018, 3:01 AM · Restricted Project
baloghadamsoftware committed rL347981: lyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation….
lyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation…
Nov 30 2018, 2:48 AM
baloghadamsoftware committed rC347981: lyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation….
lyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation…
Nov 30 2018, 2:40 AM
baloghadamsoftware closed D55051: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled.
Nov 30 2018, 2:40 AM · Restricted Project
baloghadamsoftware updated the diff for D55051: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled.

Test added.

Nov 30 2018, 2:27 AM · Restricted Project

Nov 29 2018

baloghadamsoftware added a comment to D55051: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled.

Have you seen a crash resulting from this? Is supplying a test case feasable? I know that some of these errors are extremely hard to reproduce.

Edit: Nevertheless, looks good to me.

Nov 29 2018, 4:23 AM · Restricted Project
baloghadamsoftware created D55051: [Analyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled.
Nov 29 2018, 1:55 AM · Restricted Project

Nov 28 2018

baloghadamsoftware created D55007: [Analyzer] Constraint Manager - Calculate Effective Range for Differences.
Nov 28 2018, 7:48 AM · Restricted Project, Restricted Project

Nov 26 2018

baloghadamsoftware added a comment to D53754: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the containers of iterators.

I wonder whether a method in MemRegion called isSameRegion or isSurelySameRegion would be better. I think it's likely that there are (or will be) checkers that would do similar things.

Nov 26 2018, 1:01 AM · Restricted Project

Nov 23 2018

baloghadamsoftware updated the diff for D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.

Updated according to the comments.

Nov 23 2018, 7:24 AM · Restricted Project
baloghadamsoftware updated the diff for D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.

More standard-like tests.

Nov 23 2018, 6:46 AM · Restricted Project
baloghadamsoftware updated the diff for D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.

Restored corrected patch after uploading an incorrect one.

Nov 23 2018, 6:45 AM · Restricted Project
baloghadamsoftware updated the diff for D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.
Nov 23 2018, 4:17 AM · Restricted Project
baloghadamsoftware added a comment to D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.

There is CXXDerivedObjectRegion as well. I am totally confused about the terminology now. Is there somewhere a documentation that explains all these things? If I make a class hierarchy, then the region of derived objects are CXXBaseObjectRegion. I did not meet CXXDerivedObjectRegion yet.

Nov 23 2018, 2:00 AM · Restricted Project

Nov 21 2018

baloghadamsoftware added a comment to D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.
In D54466#1297887, @NoQ wrote:

I marked this patch as WIP because I could not create a test-case for it. However in real projects this patch seems to reduce false positives significantly.

False positives are hard to reduce via delta-debugging because they can be accidentally reduced into true positives, because the distinction between true positives and false positives cannot be tested automatically. But once you fix the false positive, creduce can be used to reduce them by writing down the condition as "the positive is there on the original clang but not on the modified clang". Strongly recommended :)

Nov 21 2018, 6:34 AM · Restricted Project
baloghadamsoftware updated the diff for D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.
Nov 21 2018, 6:31 AM · Restricted Project

Nov 15 2018

baloghadamsoftware added a comment to D49074: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager.

Here is the proof of the algorithm for signed char and unsigned char types. The dumper which tests every n for the n*k <comparison operator> m relation and creates ranges from values satisfying the expression for every k and m produces exactly the same output as the generator which generates the ranges using the algorithm from the patch. One the machine I run them they take between 30 and 60 seconds to run.

Nov 15 2018, 4:54 AM
baloghadamsoftware updated the diff for D49074: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager.

Rebased on the previous part. Tests updated for the now default eagerly assume mode.

Nov 15 2018, 4:44 AM
baloghadamsoftware updated the diff for D50256: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager (for == and != only).

Tests updated to the now default eagerly assume mode. Range scaling fixed.

Nov 15 2018, 4:44 AM

Nov 13 2018

baloghadamsoftware added a comment to D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.

I marked this patch as WIP because I could not create a test-case for it. However in real projects this patch seems to reduce false positives significantly.

Nov 13 2018, 12:14 AM · Restricted Project
baloghadamsoftware created D54466: [Analyzer] Iterator Checkers - Use the region of the topmost base class for iterators stored in a region.
Nov 13 2018, 12:11 AM · Restricted Project

Nov 6 2018

baloghadamsoftware added a comment to D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.
In D53701#1288258, @NoQ wrote:

Mmm, is it possible to detect adapters and inline them as an exception from the rule? You can foresee a pretty complicated system of rules and exceptions if we go down this path, but i believe that it is still much easier and more reliable than the system that tries to synchronize two different models of iterators, so i really encourage you to at least give it a try somehow.

Nov 6 2018, 6:31 AM · Restricted Project
baloghadamsoftware updated the summary of D54149: [Analyzer] [WIP] Standard C++ library functions checker for the std::find() family.
Nov 6 2018, 6:14 AM · Restricted Project
baloghadamsoftware created D54149: [Analyzer] [WIP] Standard C++ library functions checker for the std::find() family.
Nov 6 2018, 6:00 AM · Restricted Project

Nov 5 2018

baloghadamsoftware added a comment to D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.

Your suggestion sounds completely reasonable. We cannot rely entirely on inlining of comparison operators. However, there is an important side-effect of inlining: on iterator-adapters inlining ensures that we handle the comparison of the underlying iterator correctly. Without inlining, evalCall() only works on the outermost iterator which is not always correct: it may happen that the checker cannot conclude any useful relation between the two iterator-adapters but there are some relations stored about the inner iterators. Based on my experiments quite many of the false-positives are related to iterator-adapters. So I am afraid that we introduce even more false-positives by losing inlining.

Nov 5 2018, 1:56 AM · Restricted Project

Oct 30 2018

baloghadamsoftware added a comment to D50256: [Analyzer] [WIP] Basic support for multiplication and division in the constraint manager (for == and != only).

@NoQ Any comments/concerns regarding this solution?

Oct 30 2018, 4:48 AM

Oct 29 2018

baloghadamsoftware created D53812: [Analyzer] Iterator Checker - Forbid decrements past the begin() and increments past the end() of containers.
Oct 29 2018, 5:03 AM · Restricted Project

Oct 26 2018

baloghadamsoftware created D53754: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the containers of iterators.
Oct 26 2018, 4:56 AM · Restricted Project

Oct 25 2018

baloghadamsoftware created D53701: [Analyzer] Instead of recording comparisons in interator checkers do an eager state split.
Oct 25 2018, 7:26 AM · Restricted Project

Oct 13 2018

baloghadamsoftware committed rL344445: [clang-tidy] Fix for typos in the tests for `bugprone-exception-escape`.
[clang-tidy] Fix for typos in the tests for `bugprone-exception-escape`
Oct 13 2018, 4:20 AM