[PATCH] D102273: [analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda by reference

2021-05-12 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Great job on the patch! Thanks! Comment at: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp:166-167 -static bool isPossiblyEscaped(const VarDecl *VD, ExplodedNode *N) { +static bool isCapturedByReference(const VarDecl *VD, ExplodedNode *N, +

[PATCH] D102294: [clang-tidy] bugprone-infinite-loop: React to ObjC ivars and messages in condition.

2021-05-12 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Tests look thorough, it should only reduce the number of warnings and should only affect Obj-C. So, I'd say that it's safe and sound! Great job! Comment at: clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp:64-66 + } else if (isa(Cond)

[PATCH] D102303: [ASTMatchers] Fix formatting around forFunction().

2021-05-12 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko accepted this revision. vsavchenko added a comment. This revision is now accepted and ready to land. It always pleases me when more code becomes compliant to our style guides. Thanks! Repository: rCTE Clang Tools Extra CHANGES SINCE LAST ACTION

[PATCH] D102213: [ASTMatchers] Add forCallable(), a generalization of forFunction().

2021-05-12 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. I honestly don't see a reason why it's not a part of `forFunction`. `forFunction` matches C++ methods and lambdas, Obj-C methods and blocks don't seem that much more special to have an extended matcher just for those. I really don't think that it will break

[PATCH] D102240: [analyzer][solver] Prevent use of a null state

2021-05-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, martong, steakhal. Herald added subscribers: ASDenysPetrov, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware, xazax.hun. vsavchenko requested review of this revision. Herald added a

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-28 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGab5823867c4a: [analyzer] Find better description for tracked symbolic values (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D100852: [analyzer] Track leaking object through stores

2021-04-28 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGe273918038a7: [analyzer] Track leaking object through stores (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100852/new/

[PATCH] D100839: [analyzer] Adjust the reported variable name in retain count checker

2021-04-28 Thread Valeriy Savchenko 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 rG61ae2db2d7a9: [analyzer] Adjust the reported variable name in retain count checker (authored by vsavchenko). Repository: rG LLVM Github Monorepo

[PATCH] D100626: [analyzer][NFC] Remove duplicated work from retain count leak report

2021-04-28 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG1dad8c5036bc: [analyzer][NFC] Remove duplicated work from retain count leak report (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D101358: [analyzer][StdLibraryFunctionsChecker] Track dependent arguments

2021-04-27 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko accepted this revision. vsavchenko added a comment. This revision is now accepted and ready to land. Looking great, thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101358/new/ https://reviews.llvm.org/D101358

[PATCH] D92639: [analyzer] Add control flow arrows to the analyzer's HTML reports

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D92639#2716973 , @ASDenysPetrov wrote: > @vsavchenko > I make some tests and fixes. Please, consider. OMG, that's so awesome! Thank you so much! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D100839: [analyzer] Adjust the reported variable name in retain count checker

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 340544. vsavchenko added a comment. Add test for the case when there are no good alternatives Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100839/new/ https://reviews.llvm.org/D100839 Files:

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 340499. vsavchenko marked an inline comment as done. vsavchenko added a comment. Limit the number of cases where the new note refinement takes place Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101041/new/

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko marked 4 inline comments as done. vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:1532 + // Telling the user that the value of 'a' is assigned to 'c', while + // correct, can be confusing. +

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 340473. vsavchenko added a comment. Refactor the way we get Region for variable declaration Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101041/new/ https://reviews.llvm.org/D101041 Files:

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-26 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 340469. vsavchenko added a comment. Add one more testg covering the situation when we can't pick up that one region to associate with the value. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101041/new/

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:1532 + // Telling the user that the value of 'a' is assigned to 'c', while + // correct, can be confusing. + StoreManager::FindUniqueBinding FB(V.getAsLocSymbol());

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:1529 + // b = a; + // c = foo(b); + // martong wrote: > I'd rather use `identity` here (and at line 1509) instead of `foo`, I think > that

[PATCH] D101060: [Analyzer][StdLibraryFunctionsChecker] Describe arg constraints

2021-04-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Awesome, thanks! LGTM now! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101060/new/ https://reviews.llvm.org/D101060 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D101060: [Analyzer][StdLibraryFunctionsChecker] Describe arg constraints

2021-04-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/std-c-library-functions-arg-constraints-notes.cpp:32 +__buf_size_arg_constraint_concrete(buf); // \ +// expected-note{{The size of the 0th arg should be equal to or less than the value of 10}} \ +//

[PATCH] D101060: [Analyzer][StdLibraryFunctionsChecker] Describe arg constraints

2021-04-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Great job! Thanks! Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:338-339 } +llvm_unreachable("The constraint must be either a concrete value or " + "encoded in an argument.");

[PATCH] D100955: [-Wcalled-once] Do not run analysis on Obj-C++

2021-04-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG5780dbeee648: [-Wcalled-once] Do not run analysis on Obj-C++ (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100955/new/

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 339578. vsavchenko added a comment. Minor fix in comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101041/new/ https://reviews.llvm.org/D101041 Files:

[PATCH] D101041: [analyzer] Find better description for tracked symbolic values

2021-04-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, martong, steakhal, xazax.hun. Herald added subscribers: ASDenysPetrov, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D100839: [analyzer] Adjust the reported variable name in retain count checker

2021-04-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:651 + + return Result; +} NoQ wrote: > I feel semi-irrational urge to add comments whenever NRVO is employed. I know, and I lacked

[PATCH] D100955: [-Wcalled-once] Do not run analysis on Obj-C++

2021-04-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added a reviewer: NoQ. Herald added a subscriber: Charusso. vsavchenko requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Objective-C++ is not yet suppoerted. rdar://76729552 Repository: rG

[PATCH] D100852: [analyzer] Track leaking object through stores

2021-04-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D100852#2704282 , @NoQ wrote: > I think this is already way better than before. I see that `OSDynamicCast` > isn't supported yet and we seem to hit the same wall as D97183 > because

[PATCH] D100852: [analyzer] Track leaking object through stores

2021-04-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 339143. vsavchenko marked an inline comment as done. vsavchenko added a comment. Add a comment and replace getAs with castAs Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100852/new/

[PATCH] D100852: [analyzer] Track leaking object through stores

2021-04-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, martong, steakhal, xazax.hun. Herald added subscribers: ASDenysPetrov, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D100839: [analyzer] Adjust the reported variable name in retain count checker

2021-04-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 338835. vsavchenko added a comment. Update comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100839/new/ https://reviews.llvm.org/D100839 Files:

[PATCH] D100839: [analyzer] Adjust the reported variable name in retain count checker

2021-04-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. Herald added subscribers: steakhal, ASDenysPetrov, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun. vsavchenko requested review of this revision. Herald added a project: clang. Herald added a

[PATCH] D97183: [analyzer] Add NoteTag for smart-ptr get()

2021-04-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D97183#2699336 , @steakhal wrote: > In D97183#2699080 , @RedDocMD wrote: > >> For the following function: >> >> void foo(std::unique_ptr P) { >> A* praw = P.get(); >> A*

[PATCH] D100626: [analyzer][NFC] Remove duplicated work from retain count leak report

2021-04-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added a reviewer: NoQ. Herald added subscribers: steakhal, ASDenysPetrov, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, kristof.beyls, xazax.hun. vsavchenko requested review of this revision.

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-12 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99262#2682803 , @martong wrote: > In D99262#2673842 , @vsavchenko > wrote: > >> Support nested init lists > > Thanks for addressing the nested lists! (And sorry for the late reply,

[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-04-08 Thread Valeriy Savchenko 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 rG663ac91ed1d6: [analyzer] Fix false positives in inner pointer checker (PR49628) (authored by vsavchenko). Repository: rG LLVM Github Monorepo

[PATCH] D99181: [analyzer] Fix crash on spaceship operator (PR47511)

2021-04-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4b958dd6bcca: [analyzer] Fix crash on spaceship operator (PR47511) (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99181/new/

[PATCH] D99181: [analyzer] Fix crash on spaceship operator (PR47511)

2021-04-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 336108. vsavchenko marked 4 inline comments as done. vsavchenko added a comment. Change produced SVal for the spaceship operator from Undefined to Unknown Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-08 Thread Valeriy Savchenko 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 rG9f0d8bac144c: [analyzer] Fix dead store checker false positive (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST

[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-04-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 336077. vsavchenko added a comment. Require std::data to accept exactly 1 argument Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99260/new/ https://reviews.llvm.org/D99260 Files:

[PATCH] D99797: [analyzer] Implemented RangeSet::Factory::unite function to handle intersections and adjacency

2021-04-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/unittests/StaticAnalyzer/RangeSetTest.cpp:471 + + // RHS adjacent to LHS in between. + // RHS => ___ I guess I also want to have more cases where ranges from RHS are in between ranges from LHS, also

[PATCH] D99797: [analyzer] Implemented RangeSet::Factory::unite function to handle intersections and adjacency

2021-04-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Well, that is a nice exercise for "two pointer" problems, but can we please talk about the actual use case for it? Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:136 + +RangeSet RangeSet::Factory::unite(RangeSet LHS, RangeSet

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 335795. vsavchenko added a comment. Support nested init lists Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99262/new/ https://reviews.llvm.org/D99262 Files:

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99262#2673825 , @steakhal wrote: > Looks good. Thank you. I guess it will do for PODs, but for regular C++ types we have an early exit until we learn about side effects from constructors. Repository: rG LLVM Github

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp:420-421 + // We should also allow defensive initialization of structs. + if (const auto *ILE = + dyn_cast(E->IgnoreParenCasts()))

[PATCH] D99601: [-Wcompletion-handler] Don't recognize init methods as conventional

2021-04-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. vsavchenko marked an inline comment as done. Closed by commit rG77f1e096e8a0: [-Wcompletion-handler] Dont recognize init methods as conventional (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES

[PATCH] D99194: [analyzer] Fix body farm for Obj-C++ properties

2021-04-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4821c15691ba: [analyzer] Fix body farm for Obj-C++ properties (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99194/new/

[PATCH] D99194: [analyzer] Fix body farm for Obj-C++ properties

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 335615. vsavchenko added a comment. Set Prop and IVar at the same time Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99194/new/ https://reviews.llvm.org/D99194 Files: clang/lib/Analysis/BodyFarm.cpp

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp:420-421 + // We should also allow defensive initialization of structs. + if (const auto *ILE = + dyn_cast(E->IgnoreParenCasts()))

[PATCH] D99194: [analyzer] Fix body farm for Obj-C++ properties

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/Analysis/BodyFarm.cpp:757 + if (PI->getPropertyDecl()) { +Prop = PI->getPropertyDecl(); +if (Prop->getGetterName() == MD->getSelector()) NoQ wrote: > At this point `Prop` may contain a

[PATCH] D69726: [analyzer] DynamicSize: Store the dynamic size

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D69726#2671611 , @Charusso wrote: > In D69726#2671526 , @vsavchenko > wrote: > >> @Charusso >> It looks like this patch introduced a some weird false positive on >> PostgreSQL

[PATCH] D69726: [analyzer] DynamicSize: Store the dynamic size

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. @Charusso It looks like this patch introduced a some weird false positive on PostgreSQL F16161734: report-guc.c-ParseLongOption-13-1.html I'll try to look at it myself and minimize it, but maybe you can get an idea from a full

[PATCH] D99601: [-Wcompletion-handler] Don't recognize init methods as conventional

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko marked an inline comment as done. vsavchenko added inline comments. Comment at: clang/lib/Analysis/CalledOnceCheck.cpp:1017 + static bool isInitMethod(Selector MethodSelector) { +return MethodSelector.getNameForSlot(0).startswith_lower(INIT_PREFIX); + }

[PATCH] D99601: [-Wcompletion-handler] Don't recognize init methods as conventional

2021-04-06 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 335462. vsavchenko added a comment. Use builtin way of checking for init methods Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99601/new/ https://reviews.llvm.org/D99601 Files:

[PATCH] D99797: [analyzer] Handle intersections and adjacency in RangeSet::Factory::add function

2021-04-03 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:114-115 +return RHS; + for (const Range : RHS) +LHS = add(LHS, R); + return LHS; This is REAL bad. The main benefit of the new `RangeSet` over the

[PATCH] D99797: [analyzer] Handle intersections and adjacency in RangeSet::Factory::add function

2021-04-03 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:138-139 - return makePersistent(std::move(Result)); -} + if (!Original.pin(From, To)) +return getEmptySet(); ASDenysPetrov wrote: > This allows to

[PATCH] D99797: [analyzer] Handle intersections and adjacency in RangeSet::Factory::add function

2021-04-03 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99797#2666565 , @ASDenysPetrov wrote: > @vsavchenko > OK, what do you think of ***adjacency*** feature? I mean it simplifies such > ranges `[1,2][3,4][5,6]` to `[1,6]`. Is it worth for implementation? I want to clarify

[PATCH] D99797: [analyzer] Handle intersections and adjacency in RangeSet::Factory::add function

2021-04-02 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Thanks for working on improvements of the solver and constraints! However, I have some tough questions about this patch. What I really want to understand here is motivation. Why do we need to have `add` operation semantics like this in the first place? My guess

[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-03-31 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/inner-pointer.cpp:23 + +char *data(std::string ); + martong wrote: > Seems like all test are exercising with std::string, this looks like a legacy > in this Checker. > Still, I miss a bit at

[PATCH] D99658: [analyzer] Fix clang_analyzer_getExtent for heap regions

2021-03-31 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/explain-svals.cpp:56 clang_analyzer_explain(x); // expected-warning-re^pointer to element of type 'int' with index 0 of heap segment that starts at symbol of type 'int \*' conjured at statement 'new int

[PATCH] D99658: [analyzer] Fix clang_analyzer_getExtent for heap regions

2021-03-31 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko accepted this revision. vsavchenko added a comment. This revision is now accepted and ready to land. Looking great! Thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99658/new/ https://reviews.llvm.org/D99658

[PATCH] D99601: [-Wcompletion-handler] Don't recognize init methods as conventional

2021-03-30 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added a reviewer: NoQ. Herald added a subscriber: Charusso. vsavchenko requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. rdar://75704162 Repository: rG LLVM Github Monorepo

[PATCH] D99274: [analyzer] Fix crash when reasoning about C11 atomics (PR49422)

2021-03-30 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGaf7e1f07ac03: [analyzer] Fix crash when reasoning about C11 atomics (PR49422) (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D99500: [analyzer] Support allocClassWithName in OSObjectCStyleCast checker

2021-03-30 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG90377308de6c: [analyzer] Support allocClassWithName in OSObjectCStyleCast checker (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D99500: [analyzer] Support allocClassWithName in OSObjectCStyleCast checker

2021-03-30 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99500#2657675 , @NoQ wrote: > LGTM! Thanks for formatting ^.^ > > WDYT about a heuristic that literally matches the source code of the casted > expression as plain text to see if it mentions the type? Like, regardless of

[PATCH] D99500: [analyzer] Support allocClassWithName in OSObjectCStyleCast checker

2021-03-29 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov. Herald added subscribers: martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-03-29 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99260#2650201 , @steakhal wrote: > I recommend splitting this into two. I would happily accept the part about > `std::data()`. > > IMO `std::addressof()` should be modelled via `evalCall` as a pure function, > instead of

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-03-29 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 333793. vsavchenko added a comment. Add another test Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99262/new/ https://reviews.llvm.org/D99262 Files:

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-03-29 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 333789. vsavchenko added a comment. Add comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99262/new/ https://reviews.llvm.org/D99262 Files: clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp

[PATCH] D99343: [Analyzer] Infer 0 value when the divisible is 0 (bug fix)

2021-03-25 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Awesome! Thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99343/new/ https://reviews.llvm.org/D99343 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D99344: [Analyzer] Track RValue expressions

2021-03-25 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. From the first glance, everything is looking good! Thanks for addressing this! But I still need to have a deeper look. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:1932-1933 +bool

[PATCH] D99343: [Analyzer] Infer 0 value when the divisible is 0 (bug fix)

2021-03-25 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko accepted this revision. vsavchenko added a comment. This revision is now accepted and ready to land. Looks great! Comment at: clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp:655 return makeSymExprValNN(op, InputLHS, InputRHS, resultTy); + case

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-03-24 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D99262#2648512 , @steakhal wrote: > I see your point. > > Would it report this issue? > > int test() { > struct Foo foo = {0, 0}; // I would expect a warning here, that 'foo' was > initialized but never read. >

[PATCH] D99274: [analyzer] Fix crash when reasoning about C11 atomics (PR49422)

2021-03-24 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov. Herald added subscribers: Charusso, dkrupp, donat.nagy, Szelethus, jfb, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D99181: [analyzer] Fix crash on spaceship operator (PR47511)

2021-03-24 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp:331 // Note: LAnd, LOr, Comma are handled specially by higher-level logic. steakhal wrote: > So, there are some corner cases already. > I can't see any

[PATCH] D99262: [analyzer] Fix dead store checker false positive

2021-03-24 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov. Herald added subscribers: martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D99260: [analyzer] Fix false positives in inner pointer checker (PR49628)

2021-03-24 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov. Herald added subscribers: martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D99194: [analyzer] Fix body farm for Obj-C++ properties

2021-03-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, xazax.hun, steakhal, ASDenysPetrov. Herald added subscribers: Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware, kristof.beyls. vsavchenko requested review of this revision.

[PATCH] D99181: [analyzer] Fix crash on spaceship operator (PR47511)

2021-03-23 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: NoQ, steakhal, xazax.hun, ASDenysPetrov, martong. Herald added subscribers: Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware, yaxunl. vsavchenko requested review of this

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

2021-03-22 Thread Valeriy Savchenko 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 rG02b51e5316cd: [analyzer][solver] Redesign constraint ranges data structure (authored by vsavchenko). Changed prior to commit:

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

2021-03-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D86465#2640954 , @steakhal wrote: > In D86465#2640875 , @vsavchenko > wrote: > >> This is not only a compiler feature, it also should be supported by the >> target architecture: >>

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

2021-03-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D86465#2637186 , @steakhal wrote: > Ah, I wanted to give it a go, but the bots caught an assertion failure for > the parent revision of this. See the details at the Bugzilla ticket >

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

2021-03-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D86465#2640687 , @steakhal wrote: > Given that it did not change any reports in our testbench it seems to be safe > to land it. > > It clearly improves the API significantly, so I'm not opposing. > Really good work

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

2021-03-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D86465#2637186 , @steakhal wrote: > Ah, I wanted to give it a go, but the bots caught an assertion failure for > the parent revision of this. See the details at the Bugzilla ticket >

[PATCH] D98948: [analyzer][solver] Fix infeasible constraints (PR49642)

2021-03-22 Thread Valeriy Savchenko 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 rG3085bda2b348: [analyzer][solver] Fix infeasible constraints (PR49642) (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES

[PATCH] D98948: [analyzer][solver] Fix infeasible constraints (PR49642)

2021-03-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 332211. vsavchenko added a comment. Re-write the test using %clang_analyze_cc1 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98948/new/ https://reviews.llvm.org/D98948 Files:

[PATCH] D98948: [analyzer][solver] Fix infeasible constraints (PR49642)

2021-03-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/PR49642.c:1 +// RUN: %clang --analyze -Xclang -analyzer-checker=core %s + NoQ wrote: > Why not the usual `%clang_analyze_cc1`? Your approach only adds driver > testing which doesn't seem to test

[PATCH] D98948: [analyzer][solver] Fix infeasible constraints (PR49642)

2021-03-19 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 331863. vsavchenko added a comment. Fix typos in comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98948/new/ https://reviews.llvm.org/D98948 Files:

[PATCH] D98948: [analyzer][solver] Fix infeasible constraints (PR49642)

2021-03-19 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added reviewers: steakhal, NoQ, xazax.hun, ASDenysPetrov. Herald added subscribers: martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, rnkovacs, szepet, baloghadamsoftware. vsavchenko requested review of this revision. Herald

[PATCH] D98694: [-Wcalled-once-parameter] Fix false positives for cleanup attr

2021-03-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG4a7afc9a8843: [-Wcalled-once-parameter] Fix false positives for cleanup attr (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D98688: [-Wcalled-once-parameter] Harden analysis in terms of block use

2021-03-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGf1a7d5a7b0ec: [-Wcalled-once-parameter] Harden analysis in terms of block use (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D98688: [-Wcalled-once-parameter] Harden analysis in terms of block use

2021-03-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/SemaObjC/warn-called-once.m:861 // We consider captures by blocks as escapes - [self indirect_call:(^{ + [self indirect_call:(^{ // expected-note{{previous call is here}} callback(); NoQ

[PATCH] D98622: [-Wcalled-once-parameter] Let escapes overwrite MaybeCalled states

2021-03-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D98622#2630012 , @NoQ wrote: > LGTM! Do any of the high-level comments at the beginning of the file need to > be updated to reflect this change? No, they don't. This commit doesn't affect the join semantics (the main

[PATCH] D98688: [-Wcalled-once-parameter] Harden analysis in terms of block use

2021-03-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 331186. vsavchenko added a comment. Replace manual memory management of IPData with std::unique_ptr Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98688/new/ https://reviews.llvm.org/D98688 Files:

[PATCH] D98622: [-Wcalled-once-parameter] Let escapes overwrite MaybeCalled states

2021-03-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGc86dacd1a448: [-Wcalled-once-parameter] Let escapes overwrite MaybeCalled states (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D98688: [-Wcalled-once-parameter] Harden analysis in terms of block use

2021-03-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/Sema/AnalysisBasedWarnings.cpp:1729 + handleBlockThatIsGuaranteedToBeCalledOnce(const BlockDecl *Block) override { +Data.flushWarnings(Block, S); + } NoQ wrote: > Do i understand correctly that you're

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

2021-03-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 331008. vsavchenko added a comment. Add minor fix in tests Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D86465/new/ https://reviews.llvm.org/D86465 Files:

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

2021-03-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Oof, it took me quite some time to come back to this. I don't think that I'll be able to gather more performance-related data than I already did, so if it's OK with y'all, we can land it. @NoQ @steakhal @ASDenysPetrov ? Comment at:

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

2021-03-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 331005. vsavchenko marked 16 inline comments as done. vsavchenko added a comment. Rebase and address review comments Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D86465/new/ https://reviews.llvm.org/D86465

[PATCH] D98694: [-Wcalled-once-parameter] Fix false positives for cleanup attr

2021-03-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added a reviewer: NoQ. Herald added a subscriber: Charusso. vsavchenko requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Cleanup attribute allows users to attach a destructor-like functions to

[PATCH] D98688: [-Wcalled-once-parameter] Harden analysis in terms of block use

2021-03-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko created this revision. vsavchenko added a reviewer: NoQ. Herald added a subscriber: Charusso. vsavchenko requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This patch introduces a very simple inter-procedural analysis between

<    1   2   3   4   5   6   7   8   9   >