balazske added a comment.

The fix is probably OK but I could not find out what causes the problem in this 
case and not in other (similar) ones.
Why is not possible to assume `SVB.evalEQ(State, DynSize, *ArraySizeNL)` to 
true:
DynSize: `extent_$1{e}`
*ArraySizeNL: `8 U64b`
The problem occurs likely not at the first iteration of the loop. Probably 
something is "messed up" in the state.



================
Comment at: clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp:304
+    // See https://bugs.llvm.org/show_bug.cgi?id=47272.
+    if (!State)
+      return;
----------------
If the previous assumption fails the assumptions made before it (about size of 
array dimensions) can be applied. Like at line 284 a transition should be 
added. At least if the current state indicates not a problem that makes this 
unnecessary.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86743/new/

https://reviews.llvm.org/D86743

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to