Definition inttype2init_data (sz: intsize) : (int -> init_data) :=
match sz with
| IBool  =>  Init_int8
| I8  =>  Init_int8
| I16 =>  Init_int16
| I32 =>  Init_int32
end.
Definition notboolsize (sz: intsize) : Prop :=
match sz with IBool => False | _ => True end.

Lemma process_globvar':
forall {cs: compspecs} {Espec: OracleKind} Delta P Q R (i: ident)
gz gv gvs SF c Post (idata : init_data) t,
(var_types Delta) ! i = None ->
(glob_types Delta) ! i = Some t ->
(complete_legal_cosu_type (gvar_info gv) && is_aligned cenv_cs ha_env_cs la_env_cs (gvar_info gv) 0)%bool = true ->
gvar_volatile gv = false ->
gvar_info gv = t ->
gvar_init gv = (idata::nil) ->
init_data_size idata <= sizeof t ->
sizeof t <= Ptrofs.max_unsigned ->
semax Delta (PROPx P (LOCALx (gvars gz::Q) (SEPx R))
* id2pred_star Delta gz
(readonly2share (gvar_readonly gv))
(gz i) (idata ::nil) * globvars2pred gz gvs * SF)
c Post ->
semax Delta (PROPx P (LOCALx (gvars gz::Q) (SEPx R))
* globvars2pred gz ((i,gv)::gvs) * SF)
c Post.