On 21/06/18 15:00 +0100, Jonathan Wakely wrote:
      virtual void
-      do_deallocate(void* __p, size_t __bytes, size_t __alignment)
+      do_deallocate(void* __p, size_t __bytes, size_t __alignment) noexcept
+      override
      {
-       using _Aligned_alloc = std::__alloc_rebind<_Alloc, char>;
-       size_t __new_size = _S_aligned_size(__bytes,
-                                           _S_supported(__alignment) ?
-                                           __alignment : _S_max_align);
-       using _Ptr = typename allocator_traits<_Aligned_alloc>::pointer;
-       _Aligned_alloc(_M_alloc).deallocate(static_cast<_Ptr>(__p),
-                                           __new_size);
+       auto __ptr = static_cast<char*>(__p);
+       if (__alignment == 1)
+         _M_alloc.deallocate(__ptr, __bytes);

Oops, this is missing a return!

Patch incoming ...

Reply via email to