steakhal added a comment.

In D88019#2291953 <https://reviews.llvm.org/D88019#2291953>, @steakhal wrote:

> What are our options mitigating anything similar happening in the future?
>
> This way any change touching the `SymbolicRangeInferrer` and any related 
> parts of the analyzer seems to be way too fragile.
> Especially, since we might want to add support for comparing SymSyms, just 
> like we try to do in D77792 <https://reviews.llvm.org/D77792>.

What about changing the EXPENSIVE_CHECKS 
<https://github.com/llvm/llvm-project/blob/d70ec366c91b2a5fc6334e6f6ca9c4d9a6785c5e/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h#L99-L101>
 in the assume function in the following way:
Convert all range constraints into a Z3 model and check if that is `UNSAT`.
In that case, we would have returned a state with contradictions, so we would 
prevent this particular bug from lurking around to bite us later.

And another possibility could be to create a debug checker, which registers to 
the assume callback and does the same conversion and check.
This is more appealing to me in some way, like decouples the Z3 dependency from 
the `ConstraintManager` header.

Which approach should I prefer? @NoQ @vsavchenko @martong @xazax.hun @Szelethus


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88019

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

Reply via email to