Relocation (= move+destroy)

Marc Glisse marc.glisse@inria.fr
Fri Oct 19 05:33:00 GMT 2018


On Thu, 18 Oct 2018, Marc Glisse wrote:

> Uh, why didn't I notice that the function __relocate is unused? I guess I'll 
> resend the same patch without __relocate once retesting has finished :-( 
> Sorry for all the corrections, I guess I didn't check my patch carefully 
> enough before sending it the first time.

2018-10-19  Marc Glisse  <marc.glisse@inria.fr>

         PR libstdc++/87106
         * include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
         destroy): Add noexcept specification.
         * include/bits/allocator.h (construct, destroy): Likewise.
         * include/ext/alloc_traits.h (construct, destroy): Likewise.
         * include/ext/malloc_allocator.h (construct, destroy): Likewise.
         * include/ext/new_allocator.h (construct, destroy): Likewise.
 	* include/bits/stl_uninitialized.h (__relocate_a, __relocate_a_1):
 	New functions.
         (__is_trivially_relocatable): New class.
         * include/bits/stl_vector.h (__use_relocate): New static member.
         * include/bits/vector.tcc (reserve, _M_realloc_insert,
         _M_default_append): Use __relocate_a.
         (reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
         _M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
         after _Destroy.
         * testsuite/23_containers/vector/modifiers/push_back/49836.cc:
         Replace CopyConsOnlyType with DelAnyAssign.

-- 
Marc Glisse
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reloc.patch
Type: text/x-diff
Size: 24902 bytes
Desc: 
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20181019/47bcc636/attachment.bin>


More information about the Libstdc++ mailing list