let pop_call kinstr fd args ~old state =
      let call = try Stack.pop call_stack with Stack.Empty -> assert false in
      match kinstr with
      | Kglobal -> state
      | Kstmt s ->
          let diff_subst =
            try
              List.fold_left2
                (fun acc x y -> Subst.add x y acc)
                Subst.empty
                fd.sformals
                args
            with Invalid_argument _ ->
              Subst.empty
          in
          let leaks =
            Leaks.add_from_and_subst
              (Cilutil.get_stmtLoc s.skind)
              (Kernel_function.get_name call.current_fun)
              diff_subst
              ~from:state.leaks
              old.leaks
          in
          { state with leaks = leaks }