gcc/libstdc++-v3/include/bits
Jonathan Wakely 0321d9fac6 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
2018-10-30 14:49:43 +00:00
..
algorithmfwd.h
alloc_traits.h Relocation (= move+destroy) 2018-10-25 13:03:13 +00:00
allocated_ptr.h
allocator.h Relocation (= move+destroy) 2018-10-25 13:03:13 +00:00
atomic_base.h Implement P0558R2 changes to std::atomic 2018-05-24 16:28:26 +01:00
atomic_futex.h Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
basic_ios.h
basic_ios.tcc
basic_string.h PR libstdc++/87749 fix (and optimize) string move construction 2018-10-25 16:34:04 +01:00
basic_string.tcc PR libstdc++/58265 implement LWG 2063 for COW strings 2018-07-05 16:56:06 +01:00
boost_concept_check.h
c++0x_warning.h
c++config Don't unconditionally define feature test macros in <version> 2018-07-31 23:31:14 +01:00
char_traits.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
codecvt.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
concept_check.h
cpp_type_traits.h Add std::__is_byte<std::byte> specialization 2018-06-27 11:30:52 +01:00
deque.tcc PR libstdc++/78448 limit vector::max_size and deque::max_size 2018-08-22 23:22:40 +01:00
enable_special_members.h
forward_list.h PR libstdc++/87809 avoid invalid expressions in exception specifications 2018-10-30 14:49:43 +00:00
forward_list.tcc P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 21:15:01 +01:00
fs_dir.h PR libstdc++/86597 directory_entry observers should clear error_code 2018-08-08 14:09:19 +01:00
fs_fwd.h
fs_ops.h
fs_path.h LWG 2989 hide path iostream operators from normal lookup 2018-06-18 19:59:44 +01:00
fstream.tcc PR libstdc++/85343 overload __throw_ios_failure to take errno 2018-08-14 13:09:57 +01:00
functexcept.h PR libstdc++/85343 overload __throw_ios_failure to take errno 2018-08-14 13:09:57 +01:00
functional_hash.h
gslice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
gslice.h
hashtable_policy.h Avoid undefined shifts in ceil2 operations 2018-08-30 16:07:35 +01:00
hashtable.h
indirect_array.h
invoke.h
ios_base.h Define special members as defaulted 2018-06-08 17:43:14 +01:00
istream.tcc
list.tcc P0646R1 Improving the Return Value of Erase-Like Algorithms I 2018-07-04 21:15:01 +01:00
locale_classes.h
locale_classes.tcc
locale_conv.h P0935R0 Eradicating unnecessarily explicit default constructors 2018-06-14 15:12:24 +01:00
locale_facets_nonio.h
locale_facets_nonio.tcc
locale_facets.h Remove char16_t and char32_t dependency on <stdint.h> 2018-07-26 15:02:01 +01:00
locale_facets.tcc
localefwd.h
mask_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
memoryfwd.h
move.h
node_handle.h PR libstdc++/82966 fix swapping of node handles 2018-05-14 15:27:54 +01:00
ostream_insert.h
ostream.tcc
parse_numbers.h
postypes.h Define std::fpos special members as defaulted 2018-06-04 17:07:55 +01:00
predefined_ops.h
ptr_traits.h
quoted_string.h PR libstdc++/86008 add std::quoted support for string_view 2018-06-06 07:05:07 +01:00
random.h Fix regression in std::random_device default constructor 2018-10-16 23:42:39 +01:00
random.tcc PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
range_access.h
refwrap.h LWG 2993 reference_wrapper<T> conversion from T&& 2018-06-15 15:19:47 +01:00
regex_automaton.h PR libstdc++/85098 add missing definitions for static constants 2018-05-18 17:14:04 +01:00
regex_automaton.tcc Don't use __glibcxx_assert to check class invariants 2018-09-19 12:20:51 +01:00
regex_compiler.h Optimize std::sub_match comparisons using string_view-like type 2018-07-02 21:31:11 +01:00
regex_compiler.tcc PR libstdc++/85098 add missing definitions for static constants 2018-05-18 17:14:04 +01:00
regex_constants.h
regex_error.h
regex_executor.h
regex_executor.tcc Fix compilation error with _GLIBCXX_PARALLEL 2018-10-19 14:46:24 +01:00
regex_scanner.h
regex_scanner.tcc
regex.h Optimize std::sub_match comparisons using string_view-like type 2018-07-02 21:31:11 +01:00
regex.tcc Add missing noexcept on definition to match declaration 2018-06-26 13:24:47 +01:00
shared_ptr_atomic.h
shared_ptr_base.h Use default visibility to work around clang -fvisibility-inlines-hidden bug 2018-07-20 12:24:55 +01:00
shared_ptr.h PR libstdc++/87278 restore support for std::make_shared<volatile T>() 2018-09-11 12:50:39 +01:00
slice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
specfun.h
sstream.tcc
std_abs.h PR libstdc++/85729 add linkage specifications to headers 2018-05-10 13:35:45 +01:00
std_function.h Make std::function tolerate semantically non-CopyConstructible objects 2018-05-09 14:28:11 +01:00
std_mutex.h Move std::unique_lock definition to a separate header 2018-07-25 11:40:12 +01:00
stl_algo.h 2018-08-08 François Dumont <fdumont@gcc.gnu.org> 2018-08-08 20:28:21 +00:00
stl_algobase.h PR libstdc++/86658 fix __niter_wrap to not copy invalid iterators 2018-07-24 21:49:10 +01:00
stl_bvector.h PR libstdc++/87809 avoid invalid expressions in exception specifications 2018-10-30 14:49:43 +00:00
stl_construct.h
stl_deque.h PR libstdc++/78448 limit vector::max_size and deque::max_size 2018-08-22 23:22:40 +01:00
stl_function.h PR libstdc++/85040 fix std::less<void> etc. ambiguities 2018-03-22 14:23:27 +00:00
stl_heap.h
stl_iterator_base_funcs.h
stl_iterator_base_types.h
stl_iterator.h stl_iterator.h: Fix comment. 2018-08-05 15:33:58 +00:00
stl_list.h PR libstdc++/87809 avoid invalid expressions in exception specifications 2018-10-30 14:49:43 +00:00
stl_map.h PR libstdc++/87194 fix range insertion into maps and sets 2018-09-03 15:25:25 +01:00
stl_multimap.h PR libstdc++/87194 fix range insertion into maps and sets 2018-09-03 15:25:25 +01:00
stl_multiset.h PR libstdc++/87194 fix range insertion into maps and sets 2018-09-03 15:25:25 +01:00
stl_numeric.h PR libstdc++/84928 use std::move in <numeric> algorithms 2018-07-06 15:16:13 +01:00
stl_pair.h PR libstdc++/86751 default assignment operators for std::pair 2018-07-31 23:31:20 +01:00
stl_queue.h
stl_raw_storage_iter.h
stl_relops.h
stl_set.h PR libstdc++/87194 fix range insertion into maps and sets 2018-09-03 15:25:25 +01:00
stl_stack.h
stl_tempbuf.h PR libstdc++/86954 use non-placement operator delete 2018-08-14 21:19:20 +01:00
stl_tree.h 2018-10-05 François Dumont <fdumont@gcc.gnu.org> 2018-10-05 16:01:39 +00:00
stl_uninitialized.h Relocation (= move+destroy) 2018-10-25 13:03:13 +00:00
stl_vector.h PR libstdc++/87809 avoid invalid expressions in exception specifications 2018-10-30 14:49:43 +00:00
stream_iterator.h Define special members as defaulted 2018-06-08 17:43:14 +01:00
streambuf_iterator.h Define special members as defaulted 2018-06-08 17:43:14 +01:00
streambuf.tcc
string_view.tcc
stringfwd.h Define std::string and related typedefs outside __cxx11 namespace 2018-10-09 14:06:46 +01:00
uniform_int_dist.h P0935R0 Eradicating unnecessarily explicit default constructors 2018-06-14 14:32:53 +01:00
unique_lock.h Remove <chrono> dependency on _GLIBCXX_USE_C99_STDINT_TR1 2018-07-26 15:01:55 +01:00
unique_ptr.h PR libstdc++/87704 fix unique_ptr(nullptr_t) constructors 2018-10-23 14:10:26 +01:00
unordered_map.h PR libstdc++/78595 implement insertion into maps in terms of emplace 2018-09-03 15:25:12 +01:00
unordered_set.h P0458R2 Checking for Existence of an Element in Associative Containers 2018-07-04 19:16:26 +01:00
uses_allocator.h Refactor uses-allocator construction 2018-08-15 20:20:02 +01:00
valarray_after.h LWG 3074 make scalar types non-deduced in valarray non-member functions 2018-06-14 20:36:54 +01:00
valarray_array.h PR libstdc++/87641 correctly initialize accumulator in valarray::sum() 2018-10-18 16:38:50 +01:00
valarray_array.tcc
valarray_before.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
vector.tcc Relocation (= move+destroy) 2018-10-25 13:03:13 +00:00