[PATCH] D97874: [analyzer] Improve SVal cast from integer to bool using known RangeSet

Balázs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 10 05:47:18 PST 2021


steakhal added a comment.

I would suggest **not** merging this patch.

Circumventing the `assume` machinery could cause potential crashes.
By tracking equivalence classes and whatnot, our solver is becoming more and more capable.

Doing a bifurcation, then realizing that the current path is infeasible had caused some trouble in the past (D88019 <https://reviews.llvm.org/D88019>), and
it still can cause crashes RangeConstraintManager infeasible execution path due to EquivalenceClasses <https://bugs.llvm.org/show_bug.cgi?id=49490>.
Reproducing and debugging these is a real headache. And I think there are more bugs like these lurking inside.

If we want to have a chance to tackle all of these for once and all, we need a common entrypoint for querying assumptions.
Thus, I would suggest not providing an extra API.

@NoQ @vsavchenko What's your take on this?

You could probably put these changes into the assume handler, but that would need **really** careful evaluation.
If you think it's worth the effort, consider taking a few measurements on several projects.


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

https://reviews.llvm.org/D97874



More information about the cfe-commits mailing list