martong added a comment.

> I don't really get why we get not simplified symbol to begin with.

This is because of the Environment bindings. I.e.` b1` is bound to `$a0 - $b0 + 
$c` when we evaluate `int b1 = (unsigned)a1 + c;`. This binding is not 
changed/updated, so when we evaluate the division then we query the DeclRefExpr 
for `b1` from the Environment and that gives still `$a0 - $b0 + $c`. We either 
do the simplification in the ConstraintManager (as we do now with this and the 
parent patch) or perhaps we could try to simplify the Environment bindings as 
an alternative solution.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104844

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

Reply via email to