[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-20 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. I've made some performance measurements on https://github.com/vim/vim project. Since I'm using Windows I had no chance to do a lot of test on different projects, because of Unix-environment dependency. I've tested the most weighty files running `clang --analyze -Xcl

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-05-20 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Folk, please look at this patch. It has been hanging for a time here. We should finally make a decision about it. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ c

[PATCH] D80117: [analyzer] Introduce reasoning about symbolic remainder operator

2020-05-20 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko I've made some assumptions. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:459-469 +if (Origin.From().isMinSignedValue()) { + // If mini is a minimal signed value, absolute value of it is greater + /

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-05-20 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Just a ping. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77802/new/ https://reviews.llvm.org/D77802 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-05-21 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ many thanks. I'll land it. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77802/new/ https://reviews.llvm.org/D77802 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/m

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-05-25 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGba92b274225f: [analyzer] Improved RangeSet::Negate support of unsigned ranges (authored by ASDenysPetrov). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D7780

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @xazax.hun, any thoughts? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman

[PATCH] D80444: [analyzer] Add support for IE of keyboard and mouse navigation in HTML report

2020-05-26 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG6bbaa62d26b6: [analyzer] Add support for IE of keyboard and mouse navigation in HTML report (authored by ASDenysPetrov). Herald added a subscriber: cfe-commits. Repository: rG LLVM Github Monorepo CHAN

[PATCH] D78442: Create a warning flag for 'warn_conv_*_not_used'

2020-05-28 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. I suddenly discovered you unnoticed revision. I'd advise you to add more reviewers or subscribers here. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78442/new/ https://reviews.llvm.org/D78442 ___ cfe-commits

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-29 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 267185. ASDenysPetrov added a comment. Updated. Rebased with D79232 . @vsavchenko, @NoQ, @xazax.hun please look. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files:

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-29 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @xazax.hun > I think we should check it on some more projects. We saw vastly different > analyzer behavior on other projects in the past. I completely agree with you. But, unfortunately, vim-proj is the only I could squeeze from that bunch. > I think you should

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-29 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked 6 inline comments as done. ASDenysPetrov added a comment. Do not apologize for syntax, language or code style remarks. Them make code better and it's really important for me to know about my faults. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraint

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-06-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 267587. ASDenysPetrov added a comment. Updated due to comments. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp clang/test/Analysis/c

[PATCH] D77062: [analyzer] Improved zero assumption in CStringChecke::assumeZero

2020-07-16 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 278445. ASDenysPetrov marked an inline comment as done. ASDenysPetrov added a comment. Changed naming due to LLVM rules. I decided not to change names everywhere to leave the patch more readable. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-07 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ Yes, I have some thoughts. I am on revision master from [02.04.2020 10:29:20] (5 days ago). I've check these test and all passes on my PC. As you can see in the log : scan-build: Removing directory '/c/src/llvm-project/out/gn/obj/clang/test/Analysis/scan-

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-07 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ I've just pulled all from github and make a build. Then I ran the tests, and they successfully passed. Namely, **scan-build** analyzed inputs and create //stdout //with diagnostics. Then **filecheck **checked without fails. But in case of **buildbot **it did

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-07 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. In D76768#1967129 , @Charusso wrote: > I believe it is very strange on a Windows system to have multiple dots in a > file. The other issue could be the wildcard `/*/` in a path full of `\`s. The > LLVM `lit` (https://llvm.o

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. > If the source was checked out incorrectly then most likely everything would > have been broken, not just our test. I'd rather suspect write permissions or > something, but then again, a lot of tests create directories and then write > into them. Dunno. No, I me

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @thakis > 'perl' is not recognized as an internal or external command, I think you got another problem, that Perl isn't just presented in your PATH. It is not the case for buildbot logs. > perl wasn't required to run tests on Win for a long time. If we do want to

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, baloghadamsoftware. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, xazax.hun. This fixes https://b

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @thakis Let me explain what works for me. This is in my **PATH**: - C:\Perl\c\bin - C:\Perl\perl\site\bin - C:\Perl\perl\bin - D:\llvm-project\buildn\bin This is what in D:\llvm-project\buildn\bin (all this is a product of ninja+gcc): - clang.exe - FileCheck.exe -

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-04-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ , sorry for the late response, was working on other patch. > Why are we getting a compound value here? We are getting **nonloc::SymbolVal** here, not a compound value, since //* *ptr// result is unknown after //*ptr = foo();// (look at the test sample). The

[PATCH] D76768: [analyzer] Added support of scan-build and exploded-graph-rewriter regression tests for Windows

2020-04-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @thakis, > ^ This is not usually true. (But I think lit adds build/bin to the PATH for > tests, so it's possibly true for tests, which would be enough.) AFAIK lit do not add anything to PATH. You should do it by yourself. > If you run `del bin\*` followed by `mak

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-04-13 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @Szelethus, @NoQ I've investigated graph.dot of the sample. F11723129: t37503.dot Here is a simplification: 1. SA thinks that `ptr` is a pointer with a structure `MemRegion->MemRegion->MemRegion->Element` 2. Then `*(unsigned ch

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-14 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal, thank you for your time! @baloghadamsoftware > Please add a bit more tests where we can see that the negated of unsigned > range of `[n..m]` is `UINT_MAX-m+1..UINT_MAX-n+1]`. Yes. I am writing them. Thanks for the review. Repository: rG LLVM Github

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 257617. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. Herald added a subscriber: mgorny. Improved Negate function in terms of handling `[MIN,A]U[B,MAX] => [MIN,-B]U[-A,MAX]` (previously was `[MIN,MIN]U[MIN+1,-B]U[-A,M

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-04-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @Szelethus > This is the exploded graph for which code? The t37503.cpp file you uploaded > earlier doesn't have the functions/variables found here, nor does the test > case included in this patch. This //html //corresponds to the test case in the patch. You can f

[PATCH] D78289: [analyzer] Stability improvements for IteratorModeling functions

2020-04-16 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: baloghadamsoftware, NoQ. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, xazax.hun. Some functions paths

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-06-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked 3 inline comments as done. ASDenysPetrov added a comment. @NoQ You concerns are absolutly justified. I agree with you. Let me tell what I'm thinking in inlines. If you are interested in why the assertion happens, please, look D77062#1977613

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-06-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 268424. ASDenysPetrov added a comment. Removed `V.getAs()` from `if`. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 Files: clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp clang/test/Analysis

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-06-05 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: dcoughlin, NoQ, alexfh. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun. Problem: Th

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-06-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 269481. ASDenysPetrov added a comment. Added more tests changing an array element. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81254/new/ https://reviews.llvm.org/D81254 Files: clang/lib/StaticAnalyzer/Core/RegionStore.cpp clang/test/An

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-06-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RegionStore.cpp:1709 if (!O.getRegion()) -return UnknownVal(); +return svalBuilder.getRegionValueSymbolVal(R); NoQ wrote: >

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-06-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ, what do you think about my explanation? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-06-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko I've compiled some performance stats using //csa-testbench//. The result are within the margin of error. | Project| Before | After | Delta | | libWebM| 0:00:32 | 0:00:34 | 6,25% | | Memcached | 0:00:25 | 0:00:26 | 4,00% | | OpenSSL| 0

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-06-12 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @xazax.hun, I've made performance measurements you concerned about. Could you look at it and make decision on this patch? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 _

[PATCH] D69599: [analyzer] DynamicSize: Remove 'getSizeInElements()' from store

2020-06-12 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Herald added subscribers: martong, steakhal. @Charusso I think this patch may fix this bug https://bugs.llvm.org/show_bug.cgi?id=25284 Could you please verify and close it if so? At least I couldn't reproduce it on the latest build. Repository: rG LLVM Github Mo

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-06-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. In D78933#2090076 , @xazax.hun wrote: > I would not call the results of the measurement within the margin of error > but the results do not look bad. Unless there is some objection from someone > else I am ok with committin

[PATCH] D77806: [analyzer] Do not report CFError null dereference for nonnull params

2020-06-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko Seems you could fix this bug https://bugs.llvm.org/show_bug.cgi?id=24876 Could you check it, please? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77806/new/ https://reviews.llvm.org/D77806 ___

[PATCH] D78933: [analyzer] Reasoning about comparison expressions in RangeConstraintManager

2020-06-15 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGe1741e34e00b: [analyzer] Reasoning about comparison expressions in RangeConstraintManager (authored by ASDenysPetrov). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.ll

[PATCH] D77062: [analyzer] Improved zero assumption in CStringChecke::assumeZero

2020-07-02 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ , just one another ping, since it is near to be closed. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org htt

[PATCH] D82381: [analyzer] Introduce small improvements to the solver infra

2020-07-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Hi @vsavchenko , sorry for the late review. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:367-378 +RangeSet RangeSet::Delete(BasicValueFactory &BV, Factory &F, + const llvm::APSInt &Point) const { +

[PATCH] D83286: [analyzer][solver] Track symbol disequalities

2020-07-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko > if a != b and b == C where C is a constant, a != C Did you take into account that e.g. `a > b` also is a disequality. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83286/new/ https://reviews.llvm.org/D

[PATCH] D82381: [analyzer] Introduce small improvements to the solver infra

2020-07-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko Thank you. Despite of all of my nits, LGTM! Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:367-378 +RangeSet RangeSet::Delete(BasicValueFactory &BV, Factory &F, + const llvm::APSInt &Point

[PATCH] D82381: [analyzer] Introduce small improvements to the solver infra

2020-07-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko OK, let it be. ) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82381/new/ https://reviews.llvm.org/D82381 ___ cfe-commits mailing list cfe-commits@lists.llvm

[PATCH] D82381: [analyzer] Introduce small improvements to the solver infra

2020-07-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:734 //expressions which we currently do not know how to negate. - const RangeSet *getRangeForMinusSymbol(ProgramStateRef State, SymbolRef Sym) { + Optional getR

[PATCH] D77062: [analyzer] Improved zero assumption in CStringChecke::assumeZero

2020-07-15 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. One more :-) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe

[PATCH] D82092: [analyzer] Handle `\l` symbol in Windows specific file paths in exploded-graph-rewriter

2020-06-18 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, vsavchenko. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun. Handle `\l` separately for

[PATCH] D82103: [analyzer] Remove forbidden characters from a SourceLocation filename for a graph dump on Windows

2020-06-18 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: Charusso, NoQ. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun. Windows forbidden file path characters

[PATCH] D82103: [analyzer] Remove forbidden characters from a SourceLocation filename for a graph dump on Windows

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 271971. ASDenysPetrov added a comment. Fixed clang-format. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82103/new/ https://reviews.llvm.org/D82103 Files: clang/include/clang/Basic/JsonSupport.h clang/test/Analysis/exploded-graph-rewrite

[PATCH] D82092: [analyzer] Handle `\l` symbol in Windows specific file paths in exploded-graph-rewriter

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 271968. ASDenysPetrov added a comment. Fixed clang-format. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82092/new/ https://reviews.llvm.org/D82092 Files: clang/test/Analysis/exploded-graph-rewriter/l_directory_from_l/win_file_macros.cpp

[PATCH] D82092: [analyzer] Handle `\l` symbol in Windows specific file paths in exploded-graph-rewriter

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added a comment. In D82092#2100973 , @vsavchenko wrote: > Even though it doesn't seem that necessary, I would still vote to comply with > `clang-format` in tests as well. Yes, I just forgot t

[PATCH] D82092: [analyzer] Handle `\l` symbol in string literals in exploded-graph-rewriter

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 272007. ASDenysPetrov added a comment. Expanded the patch for all platforms. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82092/new/ https://reviews.llvm.org/D82092 Files: clang/test/Analysis/exploded-graph-rewriter/l_name_starts_with_l.cp

[PATCH] D82092: [analyzer] Handle `\l` symbol in string literals in exploded-graph-rewriter

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added inline comments. Comment at: clang/utils/analyzer/exploded-graph-rewriter.py:432 .replace('|', '\\|') +s = re.sub(r'(?', s) if self._gray_mode: This makes the graph

[PATCH] D82103: [analyzer] Remove forbidden characters from a SourceLocation filename for a graph dump on Windows

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added inline comments. Comment at: clang/utils/analyzer/exploded-graph-rewriter.py:383 +# when directory name starts with the letter `l`. +if sys.platform == 'win32': +# Find all

[PATCH] D82092: [analyzer] Handle `\l` symbol in string literals in exploded-graph-rewriter

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added a comment. Thanks for the quick review, guys! Comment at: clang/test/Analysis/exploded-graph-rewriter/l_name_starts_with_l.cpp:25 + +// This test is passed if exploded_graph_rewriter handles dot file without

[PATCH] D82103: [analyzer] Remove forbidden characters from a SourceLocation filename for a graph dump on Windows

2020-06-19 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 272204. ASDenysPetrov added a comment. Removed accidentally included unrelated changes. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82103/new/ https://reviews.llvm.org/D82103 Files: clang/include/clang/Basic/JsonSupport.h clang/test/Ana

[PATCH] D82092: [analyzer] Handle `\l` symbol in string literals in exploded-graph-rewriter

2020-06-22 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG01f9388d95ac: [analyzer] Handle `\l` symbol in string literals in exploded-graph-rewriter (authored by ASDenysPetrov). Changed prior to commit: https://reviews.llvm.org/D82092?vs=272007&id=272379#toc R

[PATCH] D82103: [analyzer] Remove forbidden characters from a SourceLocation filename for a graph dump on Windows

2020-06-22 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGbe9c5818351b: [analyzer] Remove forbidden characters from a filename for a graph dump on… (authored by ASDenysPetrov). Changed prior to commit: https://reviews.llvm.org/D82103?vs=272204&id=272427#toc R

[PATCH] D77062: [analyzer] Improved zero assumption in CStringChecke::assumeZero

2020-06-24 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 272997. ASDenysPetrov added a comment. @NoQ thanks for the approval. But I'm afraid we should return the check for `!V.getAs()` back in `CStringChecker::assumeZero`. Look, I paid attention to the fix for https://llvm.org/PR24951 and related commit rG4

[PATCH] D77062: [analyzer] Improved zero assumption in CStringChecke::assumeZero

2020-06-25 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ gentle ping. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinf

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-06-30 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ, thanks for the examples. I didn't get the first one. How do you get to the "//In reality we don't know//", if we don't touch `a[index1]`: void test1(int *a, int index1, int index2) { int x = a[index1]; a[index2] = 0; int y = a[index1]; /

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-16 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @baloghadamsoftware Please, review my changes. If you think they are OK, could you, please, commit the patch on by behalf as an author: `git commit --amend --author="Denys Petrov "` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77802/new/ https://reviews.

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-17 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked 9 inline comments as done. ASDenysPetrov added a comment. @baloghadamsoftware > However, please still extend the current tests I've looked for some appropriate tests to extend, but haven't found. What would you advise to use instead of mine? @steakhal Thanks for the comment

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-17 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 258300. ASDenysPetrov added a comment. Refined Negate function. Divided by steps for clarity. Made some changes in comments due to guideline. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77802/new/ https://reviews.llvm.org/D77802 Files: cl

[PATCH] D78289: [analyzer] Stability improvements for IteratorModeling functions

2020-04-17 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @baloghadamsoftware I know you have much expertise here. Do you have some thoughts of how I can test exactly these cases? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78289/new/ https://reviews.llvm.org/D78289 __

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-04-21 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-22 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked an inline comment as done. ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:217 + + const llvm::APSInt sampleValue = getMinValue(); + const bool isUnsigned = sampleValue.isUnsigned();

[PATCH] D78289: [analyzer] Stability improvements for IteratorModeling functions

2020-04-23 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 259521. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. @baloghadamsoftware I've added a test for unscoped SVal, but still can't come up with `if (!LPos || !RPos)` Could you, please, suggest me something? CHANGES SINC

[PATCH] D78289: [analyzer] Stability improvements for IteratorModeling functions

2020-04-23 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 259561. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. I decided not to add changes of what I cannot cover by tests. So I removed them. @NoQ @baloghadamsoftware please, review my changes. CHANGES SINCE LAST ACTION

[PATCH] D77062: [analyzer] Added check for unacceptable equality operation between Loc and NonLoc types

2020-04-23 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @Szelethus, could you, please, make some suggestions about my investigation above? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-com

[PATCH] D78933: RangeConstraintManager optimizations in comparison expressions

2020-04-27 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, baloghadamsoftware, steakhal, xazax.hun. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, rnkovacs. I got an idea how to make RangeConstraintManager​ more sofisticated. I want yo

[PATCH] D78933: RangeConstraintManager optimizations in comparison expressions

2020-04-27 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 260331. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cp

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-04-28 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 260604. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. @baloghadamsoftware I have added regression tests as you asked. You can now check them. Thanks. @NoQ, I kindly ask you to look at the changes, seems that it has a

[PATCH] D77792: [analyzer] Extend constraint manager to be able to compare simple SymSymExprs

2020-04-28 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal What about unsigneds? Does it work for unsigned values as well? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77792/new/ https://reviews.llvm.org/D77792 ___ cfe-commits mailing list cfe-commits@list

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 261552. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp clang/test/Analysis/constraint_manager_conditions.cpp Index: clang/test/Analys

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 261556. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp clang/test/Analysis/constraint_manager_conditions.cpp Index: clang/test/Analys

[PATCH] D78933: [analyzer] RangeConstraintManager optimizations in comparison expressions

2020-05-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 261563. ASDenysPetrov edited the summary of this revision. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp clang/test/Analysis/constrai

[PATCH] D79232: [analyzer] Refactor range inference for symbolic expressions

2020-05-02 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. In D79232#2016065 , @NoQ wrote: > @baloghadamsoftware @steakhal @ASDenysPetrov will you be able to plug D49074 > /D50256 > /D77792 >

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-05-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked 4 inline comments as done. ASDenysPetrov added a comment. Thank you for the feedback. I'll update the patch soon. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:261-262 +// remove adjacent ranges +newRanges = F.remove(newRanges

[PATCH] D77802: [analyzer] Improved RangeSet::Negate support of unsigned ranges

2020-05-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 261784. ASDenysPetrov added a comment. @NoQ updated the patch. Review, please. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77802/new/ https://reviews.llvm.org/D77802 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp clang/

[PATCH] D85026: [analyzer] Minor refactoring of SVal::getSubKind function

2020-07-31 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, vsavchenko, Eugene.Zelenko, krememek, steakhal. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, Charusso, dkrupp, donat.nagy, Szelethus, dexonsmith, mikhail.ramalho, a.sidorin, szepet, baloghadam

[PATCH] D85034: [analyzer] Simplified functions SVal::getAsSymbolicExpression and similar ones

2020-07-31 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: vsavchenko, NoQ, steakhal, dcoughlin. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun

[PATCH] D85034: [analyzer] Simplify functions SVal::getAsSymbolicExpression and similar ones

2020-08-02 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko > I again have to nitpick about the commit message, can you please change it to > "Simplify ..."? Ready! Sorry, I remember, you've already told me. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85034/new

[PATCH] D85026: [analyzer] Introduce minor refactoring of SVal::getSubKind function

2020-08-02 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @vsavchenko: > However, I'm going to complain about commit messages again 😅 I would prefer > having imperative mood in the message, something like "Refactor ..." or > "Introduce minor refactoring..." Changed title. Thank you, guys! Repository: rG LLVM Github

[PATCH] D85034: [analyzer] Simplify functions SVal::getAsSymbolicExpression and similar ones

2020-08-03 Thread Denys Petrov via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG86e1b73507f3: [analyzer] Simplify function SVal::getAsSymbolicExpression and similar ones (authored by ASDenysPetrov). Repository: rG LLVM Github

[PATCH] D85026: [analyzer] Introduce minor refactoring of SVal::getSubKind function

2020-08-03 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG21fa82d5c63c: [analyzer] Introduce minor refactoring of SVal::getSubKind function (authored by ASDenysPetrov). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D

[PATCH] D77062: [analyzer] Improve zero assumption in CStringChecke::assumeZero

2020-08-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Herald added a subscriber: steakhal. Ping! Comment at: clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp:199 // Utility methods - std::pair - static assumeZero(CheckerContext &C, -ProgramStateRef state, SVal V, QualType

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, vsavchenko, xazax.hun, steakhal, baloghadamsoftware, dcoughlin, Szelethus. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, martong, Charusso, dkrupp, donat.nagy, mikhail.ramalho, a.sidorin, rnkov

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-07 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 283916. ASDenysPetrov added a comment. @vsavchenko Made changes due to your remarks. Thanks you. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 Files: clang/include/clang/StaticAnalyzer/Checkers/Ch

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/ThreadPrimitivesChecker.cpp:46 + +REGISTER_SET_WITH_PROGRAMSTATE(LockedMutexes, SVal) + vsavchenko wrote: > vsavchenko wrote: > > You should also cleanup and remove dead symbols fr

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 284353. ASDenysPetrov added a comment. Aded enum FuncIdKind to define function Ids. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431 Files: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td cl

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 284373. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. Added recursive_mutex support. Please, look at a test file on TODOs. I want to cover those cases in the future. Could you advise me something on it? CHANGES SIN

[PATCH] D77062: [analyzer] Improve zero assumption in CStringChecke::assumeZero

2020-08-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ just one more ping. You accepted it and then I just revised it again. Could you, please, take a minute and look at it. I'd close it with a great pleasure. It's been hanging too long. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://re

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > Umm, why don't you extend `PthreadLockChecker` instead? First of all I wanted to try to go through all the steps, since it's my first checker. The second is that I considered `PthreadLockChecker` designed for C-functions. Another reason is that it better h

[PATCH] D85431: [analyzer] Implement a new checker ThreadPrimitivesChecker

2020-08-11 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > You're on the right track but your checker repeats `PthreadLockChecker` > word-by-word. Like, you can find answers to all your questions (eg., "how to > use `isLiveRegion`?") by reading that checker. C++ functions aren't any > different from C functions; t

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-08-14 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > If index1 and index2 has the same value, we should not be confident that the > x == y holds. Thanks! Now I see. Shame on me =) > We know where it points to (aka. the pointer's value is conjured), but we > don't know what the value if there. Absolute

[PATCH] D85984: [analyzer] Add a new checker alpha.cplusplus.CPlusPlus11Lock

2020-08-14 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov created this revision. ASDenysPetrov added reviewers: NoQ, vsavchenko, xazax.hun, dcoughlin. ASDenysPetrov added a project: clang. Herald added subscribers: cfe-commits, steakhal, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, balogha

[PATCH] D81254: [analyzer] Produce symbolic values for C-array elements

2020-08-14 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Hey, folk, welcome to https://reviews.llvm.org/D85984 I've moved the logic of this checker in `PthreadLockChecker` Should this revision be //closed //or //rejected //somehow? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81254/new/ https://reviews.llvm.or

[PATCH] D79336: [analyzer] Generalize bitwise OR rules for ranges

2020-05-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:77 + assert(!isEmpty()); + // NOTE: It's a shame that we can't implement 'getMaxValue' without scanning + // the whole tree to get to the last element. -

  1   2   3   4   5   6   7   >