PR libstdc++/87809 avoid invalid expressions in exception specifications
authorJonathan Wakely <jwakely@redhat.com>
Tue, 30 Oct 2018 14:49:43 +0000 (14:49 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 30 Oct 2018 14:49:43 +0000 (14:49 +0000)
commit0321d9fac6eff34ef1cd91610a59070d0e9ff54d
treed7ef8e75bc61515acd3feda3aad3d0beb6ae3d77
parentc397f267f1d0e8ea286904bc5543829b558e154f
PR libstdc++/87809 avoid invalid expressions in exception specifications

If the allocator isn't default constructible then checking if the
default constructor throws in an exception specification makes the
declaration invalid. Use the type trait instead.

PR libstdc++/87809
* include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use
trait in exception-specification instead of possibly invalid
expression.
* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
Likewise.
* include/bits/stl_list.h (_List_impl::_List_impl()): Likewise.
* include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise.
* testsuite/23_containers/forward_list/cons/87809.cc: New test.
* testsuite/23_containers/list/cons/87809.cc: New test.
* testsuite/23_containers/vector/bool/cons/87809.cc: New test.
* testsuite/23_containers/vector/cons/87809.cc: New test.

From-SVN: r265626
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/stl_bvector.h
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/list/cons/87809.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc [new file with mode: 0644]