The tutorial signs.ml is broken because the following eval code does not handle the negative number properly (caused by the change in CIL).
let eval (d: D.t) (exp: exp): SL.t = match exp with
| Const (CInt (i, _, _)) -> SL.top () (* TODO: Fix me! *)
| Lval (Var x, NoOffset) -> D.find x d
| _ -> SL.top ()
Negative numbers are always evaluated to SL.top() through the last branch.
The tutorial signs.ml is broken because the following
evalcode does not handle the negative number properly (caused by the change in CIL).Negative numbers are always evaluated to
SL.top()through the last branch.