https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102221

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #1)
> This comes from the construction of a local unique_ptr<int> variable in:
> 
>   template<typename _RandomAccessIterator, typename _Compare>
>     _GLIBCXX20_CONSTEXPR
>     void
>     __unguarded_linear_insert(_RandomAccessIterator __last,
>                             _Compare __comp)

Actually, even if we eliminate the temporary here, there's another in the
__make_heap routine:

      while (true)
        {
          _ValueType __value = _GLIBCXX_MOVE(*(__first + __parent));
          std::__adjust_heap(__first, __parent, __len, _GLIBCXX_MOVE(__value),
                             __comp);
          if (__parent == 0)
            return;
          __parent--;
        }

Reply via email to