You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Increasing the alignment of a global variable should be a refinement. Alive2 already proves this is in fact a refinement when the size of the global variable is a multiple of the new alignment. However, when the size of the global is not a multiple of the new alignment, the precondition is false:
****************************************
WARNING: Source function is always UB.
It can be refined by any target function.
Please make sure this is what you wanted.
****************************************
ERROR: Precondition is always false
Note that the only difference between the source and target is changing the align of @global from 4 to 8.
The size of the global variable is rounded up to the next multiple of its alignment here.
As the resulting size is different for source and target, the precondition now contains the axioms (= (_ bv100 8) (blk_size (_ bv0 1))) and (= (blk_size (_ bv0 1)) (_ bv104 8)) making it always false.
Increasing the alignment of a global variable should be a refinement. Alive2 already proves this is in fact a refinement when the size of the global variable is a multiple of the new alignment. However, when the size of the global is not a multiple of the new alignment, the precondition is false:
Source:
Target:
Note that the only difference between the source and target is changing the align of
@global
from 4 to 8.The size of the global variable is rounded up to the next multiple of its alignment here.
As the resulting size is different for source and target, the precondition now contains the axioms
(= (_ bv100 8) (blk_size (_ bv0 1)))
and(= (blk_size (_ bv0 1)) (_ bv104 8))
making it always false.Related: #1028
The text was updated successfully, but these errors were encountered: