Disable constant folding to not miss checks in constant expressions#1933
Disable constant folding to not miss checks in constant expressions#1933
Conversation
…ants Needed to parse some Linux kernel headers in regression tests which use ternary operator in enum value definition.
ca584ea to
da7ab8c
Compare
|
I was worried this might hurt performance, but sv-benchmarks level01 evaluation even suggests the opposite: OLS regression shows 5% speedup overall. The reason I was worried about performance is related to programs with many or large constant-foldable expressions. In theory, it might be cheaper to fold them directly, instead of using multiple of our int domains to reach the same constant result. |
Re-enabling I think it'd make sense to have |
When CIL folds constant expressions, Goblint never sees the operations, and thus does not appear to perform all the necessary overflow checks. This used to be optional for our first SV-COMP no-overflow implementation in #149.
This reveals new things which probably should be evaluated speculatively.
TODO
lowerConstantscil#215.eval_rv_base.