let min_value_of_integral_type ?bitsize ty =
let min_of signed size_in_bytes =
let numbits =
match bitsize with Some siz -> siz | None -> size_in_bytes * 8
in
if signed then
Big_int.minus_big_int
(Big_int.power_int_positive_int 2
(numbits - 1))
else Big_int.zero_big_int
in
match unrollType ty with
| TInt(IBool,_attr) -> Big_int.zero_big_int
| TInt(ik,_attr) ->
min_of (isSigned ik) (size_in_bytes ik)
| TEnum _ ->
min_of
theMachine.theMachine.Cil_types.enum_are_signed
theMachine.theMachine.sizeof_enum
| _ -> assert false