let doGuard s e _t =
let ki = Kstmt s in
current_stmt := ki;
let do_it =
let t1 = unrollType (typeOf e) in
if isIntegralType t1 || isPointerType t1
then Cvalue_type.V.contains_non_zero (!Values_To_Use.access_expr ki e)
else true (* TODO: a float condition is true iff != 0.0 *)
in
if do_it
then Dataflow.GDefault
else Dataflow.GUnreachable