[PATCH] D89055: [analyzer] Wrong type cast occures during pointer dereferencing after type punning

2020-10-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > Can we collapse this function further towards this goal? Say, why not pump > every region //unconditionally// through `castRegion()`? Does > `dispatchCast()` use `castRegion()` internally - and if it does, why are > there so many branches in this

[PATCH] D87547: [MinGW][clang-shlib] Build by default on MinGW

2020-10-09 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov reopened this revision. ASDenysPetrov added a comment. This revision is now accepted and ready to land. Hi, @mati865 Currently I got an error while building with GCC10 on Win10. [2325/2656] Linking CXX shared library bin\libclang-cpp.dll FAILED: bin/libclang-cpp.dll

[PATCH] D88477: [analyzer] Overwrite cast type in getBinding only if that was null originally

2020-10-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ @steakhal Hi, guys. I've just uploaded a patch for solving this and related D77062 . Welcome to review D89055 . Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D89055: [analyzer] Wrong type cast occures during pointer dereferencing after type punning

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

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

2020-10-02 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > Till then, I recommend you to follow my effort at D88477 > . I'm aleady on this way. I'm debugging the Store. I think we load a wrong type because we store a wrong type. CHANGES SINCE LAST ACTION

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

2020-10-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > @ASDenysPetrov Do you still want to rework the API of the `assumeZero`? This patch more looks like NFC, being just refactored. Actually I see that if we find and fix the root cause, we can freely refuse this patch. Another thing I see is that this

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

2020-09-28 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > If we get the value of `**b`, we get a //NonLoc// of type //unsigned char//. > The dump of `**b` confirms this: `reg_$4 Element{SymRegion{reg_$0},0 S64b,unsigned char}>`, which is a > `NonLoc` in deed. Exactly. That's what I've been trying to explaine

[PATCH] D87146: [analyzer] Implement shared semantics checks for XNU functions in PthreadLockChecker

2020-09-28 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @baloghadamsoftware > Sorry, absolutely no competence. That's OK. I've added a clarification section to the summary to make it easier to understand my intentions. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87146/new/ https://reviews.llvm.org/D87146

[PATCH] D87146: [analyzer] Implement shared semantics checks for XNU functions in PthreadLockChecker

2020-09-25 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. It would be nice if someone had time to look at this. Thanks. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87146/new/ https://reviews.llvm.org/D87146 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

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

2020-09-24 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ Comment at: clang/test/Analysis/Checkers/CPlusPlus11LockChecker.cpp:379-382 +void rm_bad1() { + rm1.lock(); // no-warning + rm1.lock(); // expected-warning{{This lock has already been acquired}} +} NoQ wrote: >

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

2020-09-24 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > I would not accept this patch unless this investigation is done. However, I'm > not inherently against this change. Actually I've done the investigation. You can find it here https://reviews.llvm.org/D77062#1977613 The bug is somewhere deep in the

[PATCH] D86465: [analyzer][solver] Redesign constraint ranges data structure

2020-09-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. Here is my five cents. I haven't done with the review yet. I'm gonna return to it a bit later. Comment at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:56 + bool operator==(const Range ) const { return Impl

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

2020-09-10 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. One more notification. Please, somebody look at this patch. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D87138: [analyzer][NFC] Introduce refactoring of PthreadLockChecker

2020-09-08 Thread Denys Petrov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGe67405141836: [analyzer] [NFC] Introduce refactoring of PthreadLockChecker (authored by ASDenysPetrov). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

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

2020-09-08 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @steakhal > the readability of the reports should be improved. Absolutely agree. Let's do this in the next patches :) @NoQ You've recommended to extend PthreadLockChecker with STL mutexes. I think I've done. Could you make a quick look, please?

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

2020-09-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 290135. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85984/new/ https://reviews.llvm.org/D85984 Files: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp

[PATCH] D87146: [analyzer] Implement shared semantics checks for XNU functions in PthreadLockChecker

2020-09-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 290134. ASDenysPetrov added a comment. Test fix. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87146/new/ https://reviews.llvm.org/D87146 Files: clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp

[PATCH] D87146: [analyzer] Implement shared semantics checks for XNU functions in PthreadLockChecker

2020-09-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 290133. ASDenysPetrov added a comment. Minor fixes. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87146/new/ https://reviews.llvm.org/D87146 Files: clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp

[PATCH] D87146: [analyzer] Implement shared semantics checks for XNU functions in PthreadLockChecker

2020-09-06 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 290131. ASDenysPetrov added a comment. Fixed some missed conditions. Added more tests. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87146/new/ https://reviews.llvm.org/D87146 Files: clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp

[PATCH] D86295: [analyzer] Reorder the layout of MemRegion and cache by hand for optimal size

2020-09-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov accepted this revision. ASDenysPetrov added a comment. This revision is now accepted and ready to land. The change LGTM,!. If it really can speed up performance or improve memory organization, let's load this patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D87138: [analyzer][NFC] Introduce refactoring of PthreadLockChecker

2020-09-04 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. In D87138#2256360 , @martong wrote: > This seems to be a total non-functional-change. Please include [NFC] next > time with a similar refactoring. Otherwise, Looks good to me, thanks! Thanks! Added [NFC] to the title.

[PATCH] D87138: [analyzer] Introduce refactoring of PthreadLockChecker

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

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

2020-09-03 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. A gentle notification :-) CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77062/new/ https://reviews.llvm.org/D77062 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

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

2020-09-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 289190. ASDenysPetrov added a comment. Added //timed// functions support and tests for them. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85984/new/ https://reviews.llvm.org/D85984 Files:

[PATCH] D86533: (Urgent!) [release][docs][analyzer] Add 11.0.0. release notes

2020-09-01 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added inline comments. Comment at: clang/docs/ReleaseNotes.rst:453 + equal or known to be non-equal. + +- Added :ref:`on-demand parsing ` capability to Cross Translation I've added the patch "Reasoning about comparison expressions in

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

2020-08-31 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 288930. ASDenysPetrov added a comment. Added //shared// semantics checks and correspondent tests. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85984/new/ https://reviews.llvm.org/D85984 Files:

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

2020-08-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov abandoned this revision. ASDenysPetrov added a comment. Guys! I've moved my work to PthreadLockChecker https://reviews.llvm.org/D85984. You are welcome to look at it. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85431/new/ https://reviews.llvm.org/D85431

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

2020-08-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 287997. ASDenysPetrov edited the summary of this revision. ASDenysPetrov added a comment. Added support of: - std::timed_mutex - std::recursive_timed_mutex - std::shared_mutex - std::shared_timed_mutex CHANGES SINCE LAST ACTION

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

2020-08-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. One more 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

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

2020-08-26 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov added a comment. @NoQ > That's completely different checker logic. I think, I got the message. The real recursive logic can be caught here: std::recursive_mutex rm; void recur1() { recur2(); } void recur2() { rm.lock(); recur1(); // here we can ignore the meet

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

2020-08-25 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 287669. ASDenysPetrov added a comment. Added recursive_mutex support. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D85984/new/ https://reviews.llvm.org/D85984 Files: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td

[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/

[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,

[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.

[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;

[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

[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/

[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

[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

[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

[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:

[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,

[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 , -ProgramStateRef state, SVal V, QualType

[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

[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-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

[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

[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,

[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,

[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

[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

[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

[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

[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 , Factory , + const llvm::APSInt ) 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/

[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 , Factory , + const llvm::APSInt ) const { +

[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

[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] 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

[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

[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=272427#toc

[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=272379#toc

[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

[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

[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

[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:

[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

[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

[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] 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] 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] 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

[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] 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

[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

[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] 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|

[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

[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] 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

[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:

[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

[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] 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

[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:

[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 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

[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 ___

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

2020-05-27 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

[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

[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

[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

[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

[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] 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 ___

[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

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

2020-05-13 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 263739. ASDenysPetrov added a comment. Updated. @xazax.hun you were right. Now it looks more readable. Thanks. 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-13 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov updated this revision to Diff 263689. ASDenysPetrov added a comment. Updated due to @xazax.hun comments. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78933/new/ https://reviews.llvm.org/D78933 Files: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp

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

2020-05-12 Thread Denys Petrov via Phabricator via cfe-commits
ASDenysPetrov marked 3 inline comments as done. ASDenysPetrov added a comment. > The measurements I mentioned earlier about runtimes, node count and so on > could help answer some of those questions. I'm looking for an appropriate project to measure performance, since I have some troubles

<    1   2   3   4   5   6   7   >