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 -> (* [VP 2011-02-03] Argl! *)
          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)