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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|needs-reduction             |

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
// PR c++/118053

template <typename> struct allocator_traits;
template <typename> struct allocator;
template <typename _Tp> struct allocator_traits<allocator<_Tp>> {
  using pointer = _Tp *;
};
struct __alloc_traits : allocator_traits<allocator<int>> {};
struct _Vector_base {
  __alloc_traits::pointer _M_finish;
  struct _Vector_impl {
    _Vector_impl(_Vector_impl &&);
  } _M_impl;
};
template <typename _Tp> struct vector : _Vector_base {
  vector(_Tp);
  constexpr auto back() { return *_M_finish; }
};
template <typename Funct> void
run(Funct funct) { funct(1); }

vector<int>
runner() try {
  vector vec{1};
  run([&](auto) { vec.back(); });
  return vec;
} catch (...) {
  return 1;
}

Reply via email to