[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-22 Thread Artem Dergachev via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG99b94f29ac5d: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter. (authored by dergachev.a). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-21 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra added a comment. Great! Can someone take care of merging it? I believe I don't have access. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80171/new/ https://reviews.llvm.org/D80171 ___ cfe-c

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko accepted this revision. vsavchenko added a comment. LGTM! Thanks again! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80171/new/ https://reviews.llvm.org/D80171 ___ cfe-commits mailing list

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-20 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ accepted this revision. NoQ added a comment. This revision is now accepted and ready to land. Looks great, thanks! This is probably not the precise solution (i.e., we might be able to see where exactly is the reference taken and proceed from there) but neither is the original code - it's al

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-20 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra updated this revision to Diff 265253. AbbasSabra added a comment. Fix code review 2 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80171/new/ https://reviews.llvm.org/D80171 Files: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp clan

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-20 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra marked 2 inline comments as done. AbbasSabra added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp:167 + const bool isParm = VD->getKind() == Decl::ParmVar; + // Reference parameters are assumed as escaped variables. vs

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-20 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added inline comments. Comment at: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp:167 + const bool isParm = VD->getKind() == Decl::ParmVar; + // Reference parameters are assumed as escaped variables. `getKind` function is only an implementation de

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra updated this revision to Diff 265095. AbbasSabra added a comment. update Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80171/new/ https://reviews.llvm.org/D80171 Files: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp clang/test/Anal

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra requested review of this revision. AbbasSabra added a comment. What you both said makes sense. Now, reference parameters are escaped and value parameters are treated as the local variables. Thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.ll

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra updated this revision to Diff 265090. AbbasSabra added a comment. Fix code review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80171/new/ https://reviews.llvm.org/D80171 Files: clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp clang/

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Valeriy Savchenko via Phabricator via cfe-commits
vsavchenko added a comment. Thanks for taking your time to find and resolve the bug. I agree that this solution seems a bit too harsh. Technically there is no difference between local variable declaration and a parameter declaration (if we are talking about value types as pointed out by @xazax.

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Gábor Horváth via Phabricator via cfe-commits
xazax.hun added inline comments. Comment at: clang/test/Analysis/loop-unrolling.cpp:503 + +void arg_as_loop_counter(int i) { + for (i = 0; i < 10; ++i) { nit: we usually use `arg` for actual arguments at the call site, and use `param` for formal parameters. The

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-19 Thread Gábor Horváth via Phabricator via cfe-commits
xazax.hun added reviewers: NoQ, vsavchenko. xazax.hun added a comment. Thanks for finding this bug! Adding some reviewers. I think it would be perfectly fine to unroll loops where the loop counter is a pass-by-value parameter. That should not be considered escaped. I think in case of parameters

[PATCH] D80171: [analyzer] LoopUnrolling: fix crash when a parameter is a loop counter

2020-05-18 Thread Abbas Sabra via Phabricator via cfe-commits
AbbasSabra created this revision. AbbasSabra added a reviewer: szepet. Herald added subscribers: ASDenysPetrov, martong, Charusso, dkrupp, donat.nagy, Szelethus, mikhail.ramalho, a.sidorin, zzheng, rnkovacs, baloghadamsoftware, xazax.hun. Herald added a project: clang. When loop counter is a fun