let call caller_env stmt lv kf args ~pre ~post ~pexit ~assigns ~p_post ~p_exit =
    let wp_post =
      if is_empty p_post then p_post
      else call_normal_only caller_env stmt lv kf args ~pre ~post ~assigns ~p_post
    in
    let wp_exit =
      if is_empty p_exit then p_exit
      else call_exit_only caller_env stmt kf args ~pre ~pexit ~assigns ~p_exit
    in
    merge wp_post wp_exit