let userdef_signature frame _tused _pused =
let vars =
List.fold_left
(fun xs (_label,(xm,xa)) -> xa::xm::xs)
[] frame.states
in
let closures =
List.fold_left
(fun cs (label,_) ->
let l = match label with
| LabelParam l -> l
| _ ->
Wp_parameters.fatal
"Unexpected statement label in user-defined symbol"
in Alloc l :: Mem l :: cs)
[] frame.states
in
vars , closures