================
@@ -0,0 +1,11 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-config
unroll-loops=true -verify %s
+
+void test_escaping_on_var_before_switch_case_no_crash(int c) {
+ switch (c) {
+ int i; // expected error{{Reached root without finding the declaration of
VD}}
+ case 0: {
+ for (i = 0; i < 16; i++) {}
+ break;
+ }
+ }
+}
----------------
steakhal wrote:
It took me some time to realize that its not a verify expectation.
BTW in this shape, this test fails.
```suggestion
// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-config
unroll-loops=true -verify %s
// expected-no-diagnostics
void test_escaping_on_var_before_switch_case_no_crash(int c) {
// https://github.com/llvm/llvm-project/issues/68819
switch (c) {
int i; // no-crash: The declaration of `i` is found here.
case 0: {
for (i = 0; i < 16; i++) {}
break;
}
}
}
```
I'd also suggest to rename the test file to highlight that this is only for
loop unrolling. Or maybe even better, just append this to the end of
`clang/test/Analysis/loop-unrolling.cpp`.
https://github.com/llvm/llvm-project/pull/82089
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits