fact: Definition f_resume := {| fn_return := tvoid; fn_callconv := cc_default; fn_params := ((_fi, (tptr tuint)) :: (_ti, (tptr (Tstruct _thread_info noattr))) :: nil); fn_vars := nil; fn_temps := ((_h, (tptr (Tstruct _heap noattr))) :: (_lo, (tptr (talignas 2%N (tptr tvoid)))) :: (_hi, (tptr (talignas 2%N (tptr tvoid)))) :: (_num_allocs, tuint) :: nil); fn_body := (Ssequence (Sset _h (Efield (Ederef (Etempvar _ti (tptr (Tstruct _thread_info noattr))) (Tstruct _thread_info noattr)) _heap (tptr (Tstruct _heap noattr)))) (Ssequence (Sset _num_allocs (Ederef (Ebinop Oadd (Etempvar _fi (tptr tuint)) (Econst_int (Int.repr 0) tint) (tptr tuint)) tuint)) (Ssequence (Sifthenelse (Etempvar _h (tptr (Tstruct _heap noattr))) Sskip (Scall None (Evar ___assert_func (Tfunction (Tcons (tptr tschar) (Tcons tint (Tcons (tptr tschar) (Tcons (tptr tschar) Tnil)))) tvoid cc_default)) ((Evar ___stringlit_2 (tarray tschar 13)) :: (Econst_int (Int.repr 343) tint) :: (Ecast (Econst_int (Int.repr 0) tint) (tptr tvoid)) :: (Evar ___stringlit_9 (tarray tschar 2)) :: nil))) (Ssequence (Sset _lo (Efield (Ederef (Ebinop Oadd (Efield (Ederef (Etempvar _h (tptr (Tstruct _heap noattr))) (Tstruct _heap noattr)) _spaces (tarray (Tstruct _space noattr) 12)) (Econst_int (Int.repr 0) tint) (tptr (Tstruct _space noattr))) (Tstruct _space noattr)) _start (tptr (talignas 2%N (tptr tvoid))))) (Ssequence (Sset _hi (Efield (Ederef (Ebinop Oadd (Efield (Ederef (Etempvar _h (tptr (Tstruct _heap noattr))) (Tstruct _heap noattr)) _spaces (tarray (Tstruct _space noattr) 12)) (Econst_int (Int.repr 0) tint) (tptr (Tstruct _space noattr))) (Tstruct _space noattr)) _limit (tptr (talignas 2%N (tptr tvoid))))) (Ssequence (Sifthenelse (Ebinop Olt (Ebinop Osub (Etempvar _hi (tptr (talignas 2%N (tptr tvoid)))) (Etempvar _lo (tptr (talignas 2%N (tptr tvoid)))) tint) (Etempvar _num_allocs tuint) tint) (Scall None (Evar _abort_with (Tfunction (Tcons (tptr tschar) Tnil) tvoid cc_default)) ((Evar ___stringlit_10 (tarray tschar 48)) :: nil)) Sskip) (Ssequence (Sassign (Efield (Ederef (Etempvar _ti (tptr (Tstruct _thread_info noattr))) (Tstruct _thread_info noattr)) _alloc (tptr (talignas 2%N (tptr tvoid)))) (Etempvar _lo (tptr (talignas 2%N (tptr tvoid))))) (Sassign (Efield (Ederef (Etempvar _ti (tptr (Tstruct _thread_info noattr))) (Tstruct _thread_info noattr)) _limit (tptr (talignas 2%N (tptr tvoid)))) (Etempvar _hi (tptr (talignas 2%N (tptr tvoid)))))))))))) |}.
imports: Coq(String List ZArith) compcert(Coqlib Integers Floats AST Ctypes Cop Clight Clightdefs)