let add_normal_assigns env pid label kind assigned wp =
on_context env "add_assigns" wp Keep_opened Clear_assigns
(fun env _noassigns prop ->
try
let label_from = Clabels.c_label label in
let mem1 = L.mem_at env label_from in
let mem2 = L.mem_at env Clabels.Here in
let region = assigned_for_assigns_goal kind label_from env assigned in
let goal = WpModel.assigns_goal mem1 region mem2 in
F.p_and goal prop
with e ->
let (source,reason) = Wp_error.protect e in
Datalib.Collector.add_warning
~severe:true ~source ~reason
"Goal for %a can not be translated"
WpPropId.pretty pid ;
F.p_false)