================
@@ -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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to