[clang] [Clang] enhance loop analysis to handle variable changes inside lambdas (PR #135573)
Oleksandr T. via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 18 05:51:20 PDT 2025
================
@@ -299,3 +299,38 @@ void test10() {
for (auto[i, j, k] = arr; i < a; ++i) { }
for (auto[i, j, k] = arr; i < a; ++arr[0]) { }
};
+
+namespace GH132038 {
+extern void foo(int);
+void test1() {
+ int a = 0;
+ auto incr_a = [&a]() { ++a; };
+
+ for (int b = 10; a <= b; incr_a())
+ foo(a);
+
+ for (int b = 10; a <= b;)
+ incr_a();
+
+ for (int b = 10; a <= b; [&a]() { ++a; }()) { }
+ for (int b = 10; a <= b; [&a]() { }()) { }
----------------
a-tarasyuk wrote:
@zyn0217, that's a good question. In this case, I followed a similar example with functions where the body isn't taken into account
https://github.com/llvm/llvm-project/blob/db0f754c5af8e6c96770533520bf8b17fc0dc977/clang/test/SemaCXX/warn-loop-analysis.cpp#L23
https://github.com/llvm/llvm-project/blob/db0f754c5af8e6c96770533520bf8b17fc0dc977/clang/test/SemaCXX/warn-loop-analysis.cpp#L8
https://github.com/llvm/llvm-project/pull/135573
More information about the cfe-commits
mailing list