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
|CastE ((TEnum ({ekind = ik; _ }, _)) ast, e), Intc -> (* Can only meet the t part of an Lval in e with c (unless we meet with all overflow possibilities)! Since there is no good way to do this, we only continue if e has no values outside of t. *)
784
784
(match eval e st with
@@ -791,11 +791,11 @@ struct
791
791
let c' =ID.cast_to ik_e (ID.meet c (ID.cast_to ik (ID.top_of ik_e))) in(* TODO: cast without overflow, is this right for normal invariant? *)
792
792
ifM.tracing thenM.tracel "inv""cast: %a from %a to %a: i = %a; cast c = %a to %a = %a\n" d_exp e d_ikind ik_e d_ikind ik ID.pretty i ID.pretty c d_ikind ik_e ID.pretty c';
793
793
inv_exp (Int c') e st
794
-
|x -> fallback (GobPretty.sprintf"CastE: e did evaluate to Int, but the type did not match %a"CilType.Typ.pretty t) st
794
+
|x -> fallback (fun() -> Pretty.dprintf"CastE: e did evaluate to Int, but the type did not match %a"CilType.Typ.pretty t) st
795
795
else
796
-
fallback (GobPretty.sprintf"CastE: %a evaluates to %a which is bigger than the type it is cast to which is %a" d_plainexp e ID.pretty i CilType.Typ.pretty t) st
797
-
|v -> fallback (GobPretty.sprintf"CastE: e did not evaluate to Int, but %a"VD.pretty v) st)
798
-
|e, _ -> fallback (GobPretty.sprintf"%a not implemented" d_plainexp e) st
796
+
fallback (fun() -> Pretty.dprintf"CastE: %a evaluates to %a which is bigger than the type it is cast to which is %a" d_plainexp e ID.pretty i CilType.Typ.pretty t) st
797
+
|v -> fallback (fun() -> Pretty.dprintf"CastE: e did not evaluate to Int, but %a"VD.pretty v) st)
798
+
|e, _ -> fallback (fun() -> Pretty.dprintf"%a not implemented" d_plainexp e) st
799
799
in
800
800
if eval_bool exp st =Some (not tv) then contra st (* we already know that the branch is dead *)
0 commit comments