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

--- Comment #9 from Martin Liška <marxin at gcc dot gnu.org> ---
More reduced test-case:

template <int __v> struct integral_constant {
  static constexpr int value = __v;
};
template <bool __v> using __bool_constant = integral_constant<__v>;
template <int> struct __conditional {
  template <typename _Tp, typename> using type = _Tp;
};
template <bool _Cond, typename _If, typename _Else>
using __conditional_t = typename __conditional<_Cond>::type<_If, _Else>;
namespace std {
template <typename _Tp> _Tp &&move(_Tp &&);
struct pair {
  int second;
};
template <int _Constant_iterators> struct _Hashtable_traits {
  using __constant_iterators = __bool_constant<_Constant_iterators>;
};
template <int __constant_iterators> struct _Node_iterator {
  __conditional_t<__constant_iterators, pair *, pair> operator->();
};
using iterator =
    _Node_iterator<_Hashtable_traits<false>::__constant_iterators::value>;
} // namespace std
struct FindResult {
  FindResult(bool, int);
  std::pair result;
};
std::iterator pop_itr;
FindResult pop_ret = std::move(FindResult(true, pop_itr->second));

Reply via email to