let case_of_exp m_here e =
match Ctypes.get_int e with
| Some k -> F.e_int64 k
| None ->
match expr m_here e with
| Result( WpModel.V_int(_,term) ) -> term
| Result( _ ) ->
Datalib.Collector.add_warning
~severe:true ~source:"wp"
~reason:"non-integer expression"
"Can not translate switch statement@[@ (%a)@]"
!Ast_printer.d_exp e ;
raise Failed
| Warning(source,reason) ->
Datalib.Collector.add_warning
~severe:true ~source ~reason
"Can not translate switch statement@[@ (%a)@]"
!Ast_printer.d_exp e ;
raise Failed