[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-05 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103440#2799629 , @xazax.hun wrote: > I was wondering, if we could try something new with the tests. To increase > our confidence that the expected behavior is correct, how about including a > Z3 proof with each of the tes

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103605#2801681 , @NoQ wrote: > Inlined defensive check suppressions are indeed pretty ugly; this problem > should ideally be solved in a completely different manner. > > That said, I strongly disagree that "when the tracke

[PATCH] D103317: [Analyzer][engine][solver] Simplify complex constraints

2021-06-07 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103317#2803238 , @ASDenysPetrov wrote: > @vsavchenko > > I appologize for my immaturity and for the audacity of my infantile > assumptions. I admit any constructive criticism. Thank you for referencing > the theory. I wi

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-08 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103605#2804421 , @NoQ wrote: > These are not other topics. We're discussing the overall direction into which > this patchset is a large step. I absolutely welcome this step and am > fascinated to see how it turns out but

[PATCH] D103902: [analyzer] Extract NilReceiverHandler

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

[PATCH] D103914: [analyzer] Extract ArrayIndexHandler

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

[PATCH] D103917: [analyzer] Extract InterestingLValueHandler

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

[PATCH] D103961: [analyzer] Extract InlinedFunctionCallHandler

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

[PATCH] D103314: [Analyzer][solver] Simplify existing constraints when a new constraint is added

2021-06-09 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. OK, we definitely need to know about performance. Plus, I'm still curious about the crash. I didn't get how simplification helped/caused that crash. I have one thought here. If the lack of simplification indeed caused the crash, we are in trouble with this patch. I

[PATCH] D103967: [Analyzer][solver] Add dump methods for (dis)equality classes.

2021-06-09 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. This is definitely useful! Thanks! I was just wondering if we should add it into the state printer instead. @NoQ what's your take on this? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103967/new/ https://reviews.llvm

[PATCH] D103630: [analyzer] Refactor trackRValueExpression into ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103630#2809658 , @NoQ wrote: > I guess you should mark all of these commits as NFC? I thought about, but they do change one thing: return value of `trackExpressionValue`. With each commit it's getting more consistent.

[PATCH] D103618: [analyzer] Change FindLastStoreBRVisitor to use Tracker

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:2274 + const StackFrameContext *Origin) { + Tracker::create(Report)->track(V, R, Opts, Origin); +} NoQ wrote: > How does lifetim

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h:110 + /// (inlined defensive checks, returned null). + bool EnableNullFPSuppression = true; +}; xazax.hun wrote: > I vaguely remember we wan

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351098. vsavchenko marked 4 inline comments as done. vsavchenko added a comment. Fix review remarks Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103605/new/ https://reviews.llvm.org/D103605 Files: clang/

[PATCH] D103616: [analyzer] Reimplement trackExpressionValue as ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351099. vsavchenko added a comment. Rebase and change how we call track for values Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103616/new/ https://reviews.llvm.org/D103616 Files: clang/lib/StaticAnalyze

[PATCH] D103616: [analyzer] Reimplement trackExpressionValue as ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351102. vsavchenko added a comment. Rebase and change `KnownSVal` to `SVal` in `trackStoredValue` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103616/new/ https://reviews.llvm.org/D103616 Files: clang/in

[PATCH] D103628: [analyzer] Turn ReturnVisitor into a tracking visitor

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351104. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103628/new/ https://reviews.llvm.org/D103628 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index:

[PATCH] D103630: [analyzer] Refactor trackRValueExpression into ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351106. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103630/new/ https://reviews.llvm.org/D103630 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index: c

[PATCH] D103631: [analyzer] Turn TrackControlDependencyCond into a tracking visitor

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351107. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103631/new/ https://reviews.llvm.org/D103631 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index:

[PATCH] D103633: [analyzer] Refactor trackExpressionValue to accept TrackingOptions

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351108. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103633/new/ https://reviews.llvm.org/D103633 Files: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter

[PATCH] D103633: [analyzer] Refactor trackExpressionValue to accept TrackingOptions

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351109. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103633/new/ https://reviews.llvm.org/D103633 Files: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter

[PATCH] D103677: [analyzer] Extract ControlDependencyHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351110. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103677/new/ https://reviews.llvm.org/D103677 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index:

[PATCH] D103902: [analyzer] Extract NilReceiverHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 35. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103902/new/ https://reviews.llvm.org/D103902 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index:

[PATCH] D103914: [analyzer] Extract ArrayIndexHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351113. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103914/new/ https://reviews.llvm.org/D103914 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index:

[PATCH] D103961: [analyzer] Extract InlinedFunctionCallHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351115. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103961/new/ https://reviews.llvm.org/D103961 Files: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp Index: c

[PATCH] D103616: [analyzer] Reimplement trackExpressionValue as ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Oh boy! I screwed up with interactive rebases 🥲 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103616/new/ https://reviews.llvm.org/D103616 ___ cfe-commits mailing list cfe-com

[PATCH] D103633: [analyzer] Refactor trackExpressionValue to accept TrackingOptions

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Oof, I also screwed up rebasing this commit as well. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103633/new/ https://reviews.llvm.org/D103633 ___ cfe-commits mailing list cf

[PATCH] D103616: [analyzer] Reimplement trackExpressionValue as ExpressionHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351121. vsavchenko added a comment. Remove parts from the next commit Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103616/new/ https://reviews.llvm.org/D103616 Files: clang/lib/StaticAnalyzer/Core/BugRep

[PATCH] D103618: [analyzer] Change FindLastStoreBRVisitor to use Tracker

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351125. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103618/new/ https://reviews.llvm.org/D103618 Files: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter

[PATCH] D103633: [analyzer] Refactor trackExpressionValue to accept TrackingOptions

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351143. vsavchenko added a comment. Remove unintnentionally merged changes from the next commit Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103633/new/ https://reviews.llvm.org/D103633 Files: clang/incl

[PATCH] D103644: [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler

2021-06-10 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351145. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103644/new/ https://reviews.llvm.org/D103644 Files: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter

[PATCH] D104046: [analyzer] Simplify the process of producing notes for stores

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

[PATCH] D103644: [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:2047 + +// TODO: get rid of it. +const DeclStmt *DS = nullptr; NoQ wrote: > WDYM? > > Also maybe downscope it? I meant that the only client for it is unde

[PATCH] D103677: [analyzer] Extract ControlDependencyHandler

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351374. vsavchenko marked an inline comment as done. vsavchenko added a comment. Add comment Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103677/new/ https://reviews.llvm.org/D103677 Files: clang/lib/Sta

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-11 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 rG0cc3100bf8d1: [analyzer] Introduce a new interface for tracking (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST

[PATCH] D103616: [analyzer] Reimplement trackExpressionValue as ExpressionHandler

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG967c06b3e95b: [analyzer] Reimplement trackExpressionValue as ExpressionHandler (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103616?vs=351121&id=351378#toc Repository:

[PATCH] D103618: [analyzer] Change FindLastStoreBRVisitor to use Tracker

2021-06-11 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 rGb6bcf953220d: [analyzer] Change FindLastStoreBRVisitor to use Tracker (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/

[PATCH] D103624: [analyzer] Hide and rename FindLastStoreBRVisitor

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG87a5c4d3745a: [analyzer] Hide and rename FindLastStoreBRVisitor (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103624?vs=349654&id=351380#toc Repository: rG LLVM Github

[PATCH] D103628: [analyzer] Turn ReturnVisitor into a tracking visitor

2021-06-11 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 rGf853d2601abd: [analyzer] Turn ReturnVisitor into a tracking visitor (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE L

[PATCH] D103630: [analyzer] Refactor trackRValueExpression into ExpressionHandler

2021-06-11 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 rG3fc8d943c360: [analyzer] Refactor trackRValueExpression into ExpressionHandler (authored by vsavchenko). Changed prior to commit: https://reviews.

[PATCH] D103631: [analyzer] Turn TrackControlDependencyCond into a tracking visitor

2021-06-11 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 rG51d4704d5ec9: [analyzer] Turn TrackControlDependencyCond into a tracking visitor (authored by vsavchenko). Repository: rG LLVM Github Monorepo CH

[PATCH] D103633: [analyzer] Refactor trackExpressionValue to accept TrackingOptions

2021-06-11 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 rG57006d2f6d96: [analyzer] Refactor trackExpressionValue to accept TrackingOptions (authored by vsavchenko). Changed prior to commit: https://review

[PATCH] D104135: [analyzer] Decouple NoteTag from its Factory

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

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

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

[PATCH] D103644: [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351512. vsavchenko marked 2 inline comments as done. vsavchenko added a comment. Fix review remarks Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103644/new/ https://reviews.llvm.org/D103644 Files: clang/

[PATCH] D104046: [analyzer] Simplify the process of producing notes for stores

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 351515. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104046/new/ https://reviews.llvm.org/D104046 Files: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter

[PATCH] D104135: [analyzer] Decouple NoteTag from its Factory

2021-06-11 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D104135#2814081 , @NoQ wrote: > P.S. I like this design! > > I'm trying to remember why we needed a factory in the first place. Who's gonna carry your callbacks for ya, huh? > I think a lot of tags work just fine as static

[PATCH] D103314: [Analyzer][solver] Simplify existing constraints when a new constraint is added

2021-06-13 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103314#2810795 , @martong wrote: > I have the first measurements results in the attached zip file. The file > contains the html file generated by csa-testbench. It's name contains `CTU` > but actually it was a regular non

[PATCH] D103618: [analyzer] Change FindLastStoreBRVisitor to use Tracker

2021-06-14 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h:367-368 +/// \param Origin Only adds notes when the last store happened in a +///different stackframe to this one. Disregarded if the tracking kind +//

[PATCH] D103630: [analyzer] Refactor trackRValueExpression into ExpressionHandler

2021-06-14 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:2263-2264 Tracker::Tracker(PathSensitiveBugReport &Report) : Report(Report) { addHighPriorityHandler(); + addLowPriorityHandler(); // TODO: split trackExpressionValue and F

[PATCH] D103605: [analyzer] Introduce a new interface for tracking

2021-06-14 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103605#2816979 , @Szelethus wrote: > Sorry for the absence, took my time to catch up with this series! Really > interesting insight into how a new interface is being designed! I need some > time to digest things, but can'

[PATCH] D103644: [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGbbebf38b736a: [analyzer] Refactor StoreSiteFinder and extract DefaultStoreHandler (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103

[PATCH] D103677: [analyzer] Extract ControlDependencyHandler

2021-06-15 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 rG85f475c979aa: [analyzer] Extract ControlDependencyHandler (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D103902: [analyzer] Extract NilReceiverHandler

2021-06-15 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 rG1639dcb27984: [analyzer] Extract NilReceiverHandler (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103902?vs=35&

[PATCH] D103914: [analyzer] Extract ArrayIndexHandler

2021-06-15 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 rG40cb73bd2073: [analyzer] Extract ArrayIndexHandler (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103914?vs=351113&i

[PATCH] D103917: [analyzer] Extract InterestingLValueHandler

2021-06-15 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 rG2e490676ea2e: [analyzer] Extract InterestingLValueHandler (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103917?vs=3

[PATCH] D103961: [analyzer] Extract InlinedFunctionCallHandler

2021-06-15 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 rG6e6a26b8f0ea: [analyzer] Extract InlinedFunctionCallHandler (authored by vsavchenko). Changed prior to commit: https://reviews.llvm.org/D103961?vs

[PATCH] D104046: [analyzer] Simplify the process of producing notes for stores

2021-06-15 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 rG16f7a952ec3e: [analyzer] Simplify the process of producing notes for stores (authored by vsavchenko). Changed prior to commit: https://reviews.llv

[PATCH] D104135: [analyzer] Decouple NoteTag from its Factory

2021-06-15 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 rGeadd54f2741f: [analyzer] Decouple NoteTag from its Factory (authored by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTIO

[PATCH] D104135: [analyzer] Decouple NoteTag from its Factory

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:777 static bool classof(const ProgramPointTag *T) { return T->getTagKind() == &Kind; } NoQ wrote: > vsavchenko wrote: > > NoQ wrote: > > >

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 352075. vsavchenko added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104136/new/ https://reviews.llvm.org/D104136 Files: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCoun

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:953-957 + // Let's traverse... + for (const ExplodedNode *N = ExprNode; + // ...all the nodes corresponding to the given expression..

[PATCH] D103750: [analyzer] Handle std::make_unique for SmartPtrModeling

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp:216-220 +// TODO: ExprEngine should do this for us. +auto &Engine = State->getStateManager().getOwningEngine(); +State = Engine.updateObjectsUnderConstruction( +

[PATCH] D104300: [analyzer] Handle `std::swap`

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp:94-103 const auto *RecordDecl = MethodDecl->getParent(); - if (!RecordDecl || !RecordDecl->getDeclContext()->isStdNamespace()) + return isStdSmartPtr(RecordDecl); +} + +bool

[PATCH] D104300: [analyzer] Handle `std::swap`

2021-06-15 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. It looks like new functionality is VERY much like `handleSwap`, and we should definitely merge common parts. Also, I think that commit title should be more specific than "Handle std::swap". It should at least mention the checker. Repository: rG LLVM Github Monor

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1397 +(LHS.To() < 0 && RHS.To() < 0 && Max > 0) || +(LHS.To() < 0 && RHS.To() < 0 && Max > 0)) { + return {RangeFactory, Tmin, Tmax}; This

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1401-1402 + +// FIXME: This case in particular is resulting in failed assertion. +Range First = Range(Tmin, Max); +Range Second = Range(Min, Tmax);

[PATCH] D103096: [analyzer] Implement cast for ranges of symbolic integers.

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko requested changes to this revision. vsavchenko added a comment. This revision now requires changes to proceed. Hey, great work! I think that casts are extremely important, but it looks like you mixed so many things into this patch. Let's make one step at a time a split it into (at l

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1409-1415 + if ((LHS.From() > 0 && RHS.From() > 0 && Min < 0) || + (LHS.From() < 0 && RHS.From() < 0 && Min > 0) || + (LHS.To() > 0 && RHS.To() > 0 && Max < 0) || +

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1409-1415 + if ((LHS.From() > 0 && RHS.From() > 0 && Min < 0) || + (LHS.From() < 0 && RHS.From() < 0 && Min > 0) || + (LHS.To() > 0 && RHS.To() > 0 && Max < 0) || +

[PATCH] D103096: [analyzer] Implement cast for ranges of symbolic integers.

2021-06-16 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103096#2822965 , @ASDenysPetrov wrote: > In D103096#2821750 , @vsavchenko > wrote: > >> Hey, great work! I think that casts are extremely important, but it looks >> like you mix

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D104136#2823834 , @Szelethus wrote: > Aha, alright! So the tracker tracked back to where the tracked expression got > computed in node `N`, which is the return value of some identity function. > Unless its explicitly told

[PATCH] D103096: [analyzer] Implement cast for ranges of symbolic integers.

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2506-2520 + for (auto It = NTL.findByWidth(C.getIntWidth(T)) - 1; It >= NTL.begin(); + --It) { +SymbolRef S = State->getSymbolManager().getCastSymbol( +RootSy

[PATCH] D104300: [analyzer] Handle std::swap for std::unique_ptr

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. I agree with @NoQ that notes are pretty much straightforward and we shouldn't abandon them altogether. Refinements about what is null or non-null pointer are purely cosmetic and we definitely can tweak this messaging. Comment at: clang/lib/StaticA

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 352652. vsavchenko added a comment. Move IdentityHandler into the anonymous namespace Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104136/new/ https://reviews.llvm.org/D104136 Files: clang/lib/StaticAnal

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

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. I think this iteration is much better, it requires way more description as it has now. You didn't actually describe anywhere how this algorithm actually works. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:200-201 +} + +

[PATCH] D103094: [analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions.

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. OK, about the quadratic algorithm. I can think of one solution that is actually linear asymptotically, but because of the constant factor can be worse in practice (we usually have extremely small range sets). So, while I don't like it, it's probably fine. ==

[PATCH] D103094: [analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions.

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:245-246 +/// +/// Complexity: O(N^2) +/// where N = size(What) +RangeSet castTo(RangeSet What, APSIntType Ty); --

[PATCH] D103094: [analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions.

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:692 + ContainerType Result; + ContainerType RHS; + ASDenysPetrov wrote: > vsavchenko wrote: > > We have LHS (left-hand side) and RHS (right-hand side) as a co

[PATCH] D104136: [analyzer] Add better tracking for RetainCountChecker leak warnings

2021-06-17 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:953-957 + // Let's traverse... + for (const ExplodedNode *N = ExprNode; + // ...all the nodes corresponding to the given expression..

[PATCH] D103025: [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl()

2021-06-18 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 good to me! Sorry it took forever! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103025/new/ https://reviews.llvm.org/D103025 ___

[PATCH] D103025: [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl()

2021-06-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103025#2826482 , @tomasz-kaminski-sonarsource wrote: > Would it be possible to merge it for me, as I do not have a commit right? Sure thing! Which email should I set for commit author? Repository: rG LLVM Github Monor

[PATCH] D103025: [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl()

2021-06-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGcc2ef1955609: [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl() (authored by tomasz-kaminski-sonarsource, committed by vsavchenko). Repository: rG LLVM Github Monorepo CHANGES SINCE LAS

[PATCH] D103025: [analyzer] Handle NTTP invocation in CallContext.getCalleeDecl()

2021-06-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Thanks for fixing this! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103025/new/ https://reviews.llvm.org/D103025 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http

[PATCH] D104550: [analyzer] Implement getType for SVal

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

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-18 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Hey folks! I was thinking that this method can be quite handy. I think it would be great to have another pair of eyes (but more would be better) to look into this and: - Suggest other test cases to add - See if I missed any "typed" values from the hierarchy - See if

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1395 + + if (Min > Max) { +// This implies that an overflow has occured as either boundary would have I commented on this part previously, you shouldn't ge

[PATCH] D103314: [Analyzer][solver] Simplify existing constraints when a new constraint is added

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D103314#2829806 , @uabelho wrote: > Hi, > > I'm seeing a failed assertion with this patch. > Reproduce with > > clang --analyze bbi-57338.c > > Result: > > clang: /repo/uabelho/master-github/llvm/include/llvm/ADT/APSInt.

[PATCH] D104616: [analyzer][WIP] Model comparision methods of std::unique_ptr

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D104616#2829705 , @RedDocMD wrote: > The only method that I think can be realistically modelled is `==` (and thus > `!=`). If both the operands refer to the same `unique_ptr`, we know `==` > returns true. If they are not t

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/constant-folding.c:280-281 + if (c < 0 && c != INT_MIN && d < 0) { +clang_analyzer_eval((c + d) == -1); // expected-warning{{FALSE}} +clang_analyzer_eval((c + d) == 0); // expected-warning{{FALSE}} +cl

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 353343. vsavchenko added a comment. Support GotoLabel Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104550/new/ https://reviews.llvm.org/D104550 Files: clang/include/clang/StaticAnalyzer/Core/PathSensitiv

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 353371. vsavchenko added a comment. Support ConcreteInt, LocAsInteger, and GotoLabel Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104550/new/ https://reviews.llvm.org/D104550 Files: clang/include/clang/S

[PATCH] D104647: [analyzer] Support SVal::getType for pointer-to-member values

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

[PATCH] D104647: [analyzer] Support SVal::getType for pointer-to-member values

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. This one is a bit more invasive, so I decided to put it into a separate patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104647/new/ https://reviews.llvm.org/D104647 ___ c

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-21 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko marked an inline comment as done. vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/SVals.cpp:151 + Optional VisitNonLocLazyCompoundVal(nonloc::LazyCompoundVal LCV) { +return Visit(LCV.getRegion()); + } NoQ wrote: > This

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko marked an inline comment as done. vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/SVals.cpp:151 + Optional VisitNonLocLazyCompoundVal(nonloc::LazyCompoundVal LCV) { +return Visit(LCV.getRegion()); + } NoQ wrote: > vsav

[PATCH] D103440: [WIP][analyzer] Introduce range-based reasoning for addition operator

2021-06-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/test/Analysis/constant-folding.c:280-281 + if (c < 0 && c != INT_MIN && d < 0) { +clang_analyzer_eval((c + d) == -1); // expected-warning{{FALSE}} +clang_analyzer_eval((c + d) == 0); // expected-warning{{FALSE}} +cl

[PATCH] D104550: [analyzer] Implement getType for SVal

2021-06-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D104550#2832983 , @Szelethus wrote: > This is not an urgent, but still a very important issue: `SVal` is likely > among the first things a new developer in the analyzer sees. Its common > around the university here that so

[PATCH] D104439: [analyzer][NFC] Demonstrate a move from the analyzer-configs `.def` file to a TableGen file

2021-06-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. In D104439#2832984 , @Szelethus wrote: > Ping. > > The main question with this patch really is whether we want TableGen at all > or not, as for what we generate precisely and how we'd utilize it is a > discussion for later.

[PATCH] D104647: [analyzer] Support SVal::getType for pointer-to-member values

2021-06-22 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko updated this revision to Diff 353649. vsavchenko added a comment. Restore behavior for nullptr declarations Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104647/new/ https://reviews.llvm.org/D104647 Files: clang/include/clang/StaticAn

<    1   2   3   4   5   6   7   8   9   >