This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/56166] std::string::clear() can throw despite being marked noexcept


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56166

--- Comment #10 from Marc Glisse <glisse at gcc dot gnu.org> ---
Author: glisse
Date: Fri Sep 20 15:50:09 2013
New Revision: 202781

URL: http://gcc.gnu.org/viewcvs?rev=202781&root=gcc&view=rev
Log:
2013-09-20  Marc Glisse  <marc.glisse@inria.fr>

    PR libstdc++/58338
    * include/bits/allocator.h (__alloc_swap::_S_do_it,
    __shrink_to_fit_aux::_S_do_it): Mark as noexcept.
    * include/bits/basic_string.h (basic_string::_Rep) [_S_empty_rep,
    _M_is_leaked, _M_is_shared, _M_set_leaked, _M_set_sharable,
    _M_set_length_and_sharable, _M_dispose]: Likewise.
    (basic_string::_Alloc_hider::_Alloc_hider): Likewise.
    (basic_string) [_M_data, _M_rep, _M_ibegin, _M_iend, _M_limit,
    _M_disjunct, _M_copy, _M_move, _M_assign, _S_copy_chars, _S_compare,
    _S_empty_rep, shrink_to_fit, operator[] const, front const, back const]:
    Likewise.
    [clear]: Link to PR 56166.
    [swap]: Link to PR 58265.
    * include/bits/stl_deque.h (_Deque_iterator) [_S_buffer_size,
    _Deque_iterator, _M_const_cast, operator*, operator->, operator++,
    operator--, operator+=, operator+, operator-=, operator-, operator[],
    _M_set_node]: Mark as noexcept.
    (operator==(const _Deque_iterator&, const _Deque_iterator&),
    operator!=(const _Deque_iterator&, const _Deque_iterator&),
    operator<(const _Deque_iterator&, const _Deque_iterator&),
    operator>(const _Deque_iterator&, const _Deque_iterator&),
    operator<=(const _Deque_iterator&, const _Deque_iterator&),
    operator>=(const _Deque_iterator&, const _Deque_iterator&),
    operator-(const _Deque_iterator&, const _Deque_iterator&),
    operator+(ptrdiff_t, const _Deque_iterator&)): Likewise.
    (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
    _M_initialize_map.
    [~_Deque_base, _M_deallocate_node, _M_deallocate_map, _M_destroy_nodes]:
    Mark as noexcept.
    (_Deque_base::_Deque_impl) [_Deque_impl(const _Tp_alloc_type&),
    _Deque_impl(_Tp_alloc_type&&)]: Likewise.
    (deque) [_S_buffer_size, operator=(deque&&), shrink_to_fit, operator[],
    front, back, pop_front, pop_back, swap]: Likewise.
    [deque(), deque(const allocator_type&)]: Merge.
    * include/debug/deque (deque) [operator=(deque&&), shrink_to_fit,
    operator[], front, back, pop_front, pop_back, swap]: Mark as noexcept.
    * include/profile/deque (deque) [operator=(deque&&), operator[], front,
    back, pop_front, pop_back, swap]: Likewise.
    * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
    Adjust line number.
    * testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
    Likewise.
    * testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
    Likewise.
    * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
    Likewise.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/allocator.h
    trunk/libstdc++-v3/include/bits/basic_string.h
    trunk/libstdc++-v3/include/bits/stl_deque.h
    trunk/libstdc++-v3/include/debug/deque
    trunk/libstdc++-v3/include/profile/deque
   
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
   
trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]