let add_call_assigns_hyp acc kf_caller s l_post spec_opt =
match spec_opt with
| None ->
let asgn = WpPropId.mk_stmt_any_assigns_info s in
add_assigns_any acc AcallHyp asgn
| Some spec ->
match assigns_upper_bound spec with
| None ->
let asgn = WpPropId.mk_stmt_any_assigns_info s in
add_assigns_any acc AcallHyp asgn
| Some(bhv, assigns) ->
let id = WpPropId.mk_stmt_assigns_id kf_caller s bhv assigns in
match id with
| None ->
let asgn = WpPropId.mk_stmt_any_assigns_info s in
add_assigns_any acc AcallHyp asgn
| Some id ->
let labels = NormAtLabels.labels_stmt_assigns s l_post in
let assigns = NormAtLabels.preproc_assigns labels assigns in
let a_desc = WpPropId.mk_stmt_assigns_desc s assigns in
add_assigns acc AcallHyp id a_desc