let expr_const mem = function
    | CInt64(k,ik,_) ->
        M.V_int(Ctypes.c_int ik,F.e_icst (My_bigint.to_string k))
    | CChr c ->
        M.V_int(Ctypes.c_char (),F.e_icst (Int64.to_string (Ctypes.char c)))
    | CReal(f,fk,_)  ->
        M.V_float(Ctypes.c_float fk, F.e_float f)
    | CEnum e ->
        !expr_rec mem e.eival
    | CWStr _        ->
        WpLog.not_yet_implemented "wide character string constant"
    | CStr s         ->
        WpLog.not_yet_implemented "character string constant (%S)" s