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