xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/ChangeLog-2017 (revision 14f5a3b000ef28b66b4b71b17ead84a8f9febbce)
1*14f5a3b0Smrg2017-12-27  Jonathan Wakely  <jwakely@redhat.com>
2*14f5a3b0Smrg
3*14f5a3b0Smrg	PR libstdc++/83600
4*14f5a3b0Smrg	* include/bits/regex.h (match_results::end()): Return valid iterator
5*14f5a3b0Smrg	when not ready.
6*14f5a3b0Smrg	* testsuite/28_regex/match_results/ctors/char/default.cc: Check that
7*14f5a3b0Smrg	unready objects are empty and have equal begin and end iterators.
8*14f5a3b0Smrg	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
9*14f5a3b0Smrg
10*14f5a3b0Smrg	PR libstdc++/83598
11*14f5a3b0Smrg	* include/bits/regex.h (basic_regex): Don't modify flags passed to
12*14f5a3b0Smrg	constructors.
13*14f5a3b0Smrg	* testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
14*14f5a3b0Smrg
15*14f5a3b0Smrg	PR libstdc++/83538
16*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Document LWG 2306 change.
17*14f5a3b0Smrg	* include/bits/regex.h (match_results::reference): Change to
18*14f5a3b0Smrg	non-const reference.
19*14f5a3b0Smrg	* testsuite/28_regex/match_results/typedefs.cc: Check types are
20*14f5a3b0Smrg	correct.
21*14f5a3b0Smrg
22*14f5a3b0Smrg2017-12-24  Michele Pezzutti <mpezz@tiscali.it>
23*14f5a3b0Smrg
24*14f5a3b0Smrg	PR libstdc++/83237
25*14f5a3b0Smrg	* include/bits/random.tcc (poisson_distribution<>::operator()):
26*14f5a3b0Smrg	Fix __x = 1 case - see updated Errata of Devroye's treatise.
27*14f5a3b0Smrg	* testsuite/26_numerics/random/poisson_distribution/operators/
28*14f5a3b0Smrg	values.cc: Add test.
29*14f5a3b0Smrg	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
30*14f5a3b0Smrg	line number.
31*14f5a3b0Smrg
32*14f5a3b0Smrg2017-12-24  Jonathan Wakely  <jwakely@redhat.com>
33*14f5a3b0Smrg
34*14f5a3b0Smrg	PR libstdc++/83450
35*14f5a3b0Smrg	* testsuite/21_strings/basic_string/pthread18185.cc: Add return
36*14f5a3b0Smrg	statement.
37*14f5a3b0Smrg
38*14f5a3b0Smrg2017-12-20  François Dumont  <fdumont@gcc.gnu.org>
39*14f5a3b0Smrg
40*14f5a3b0Smrg	PR libstdc++/82522
41*14f5a3b0Smrg	* include/debug/map.h (map::insert(value_type&&))
42*14f5a3b0Smrg	(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
43*14f5a3b0Smrg	* include/debug/multimap.h (multimap::insert(value_type&&))
44*14f5a3b0Smrg	(multimap::insert(const_iterator, value_type&&)): Likewise.
45*14f5a3b0Smrg	* include/debug/unordered_map (unordered_map::insert(value_type&&))
46*14f5a3b0Smrg	(unordered_map::insert(const_iterator, value_type&&))
47*14f5a3b0Smrg	(unordered_multimap::insert(value_type&&))
48*14f5a3b0Smrg	(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
49*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
50*14f5a3b0Smrg	* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
51*14f5a3b0Smrg	New.
52*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
53*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
54*14f5a3b0Smrg	New.
55*14f5a3b0Smrg
56*14f5a3b0Smrg2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
57*14f5a3b0Smrg
58*14f5a3b0Smrg	* config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Check
59*14f5a3b0Smrg	__ARM_BIG_ENDIAN instead of __AARCH64EB__.
60*14f5a3b0Smrg
61*14f5a3b0Smrg2017-12-18  François Dumont  <fdumont@gcc.gnu.org>
62*14f5a3b0Smrg
63*14f5a3b0Smrg	PR libstdc++/80761
64*14f5a3b0Smrg	* include/debug/map.h
65*14f5a3b0Smrg	(std::__debug::map<>::insert_return_type): Define using
66*14f5a3b0Smrg	_Node_insert_return.
67*14f5a3b0Smrg	* include/debug/set.h (std::__debug::set<>::insert_return_type):
68*14f5a3b0Smrg	Likewise.
69*14f5a3b0Smrg	* include/debug/unordered_map:
70*14f5a3b0Smrg	(std::__debug::unordered_map<>::insert_return_type): Likewise.
71*14f5a3b0Smrg	* include/debug/unordered_set:
72*14f5a3b0Smrg	(std::__debug::unordered_set<>::insert_return_type): Likewise.
73*14f5a3b0Smrg
74*14f5a3b0Smrg2017-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
75*14f5a3b0Smrg
76*14f5a3b0Smrg	PR libstdc++/68430
77*14f5a3b0Smrg	* testsuite/20_util/is_constructible/68430.cc: New.
78*14f5a3b0Smrg
79*14f5a3b0Smrg2017-12-16  Martin Sebor  <msebor@redhat.com>
80*14f5a3b0Smrg
81*14f5a3b0Smrg	PR tree-optimization/83239
82*14f5a3b0Smrg	* include/bits/vector.tcc (vector::_M_default_append): Assert
83*14f5a3b0Smrg        invariant to generate better code.
84*14f5a3b0Smrg
85*14f5a3b0Smrg2017-12-14  Jonathan Wakely  <jwakely@redhat.com>
86*14f5a3b0Smrg
87*14f5a3b0Smrg	PR libstdc++/83279
88*14f5a3b0Smrg	* src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
89*14f5a3b0Smrg	copying entire file.
90*14f5a3b0Smrg
91*14f5a3b0Smrg	PR libstdc++/68519
92*14f5a3b0Smrg	* include/std/condition_variable (condition_variable::wait_for):
93*14f5a3b0Smrg	Convert duration to native clock's duration before addition.
94*14f5a3b0Smrg	* testsuite/30_threads/condition_variable/members/68519.cc: New test.
95*14f5a3b0Smrg
96*14f5a3b0Smrg	PR libstdc++/83427
97*14f5a3b0Smrg	* include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
98*14f5a3b0Smrg	from <bits/std_function.h>.
99*14f5a3b0Smrg	(_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
100*14f5a3b0Smrg	(_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
101*14f5a3b0Smrg	for function types. Remove partial specializations for member
102*14f5a3b0Smrg	functions.
103*14f5a3b0Smrg	(_Weak_result_type_impl): Remove unused partial specializations for
104*14f5a3b0Smrg	non-referenceable function types and for references to functions.
105*14f5a3b0Smrg	(_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
106*14f5a3b0Smrg	helpers to handle member functions via _Mem_fn_traits.
107*14f5a3b0Smrg	(_Weak_result_type, reference_wrapper): Derive from new helpers.
108*14f5a3b0Smrg	* include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
109*14f5a3b0Smrg	to <bits/refwrap.h>.
110*14f5a3b0Smrg	* include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
111*14f5a3b0Smrg	(_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
112*14f5a3b0Smrg	* testsuite/20_util/bind/83427.cc: New test.
113*14f5a3b0Smrg	* testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
114*14f5a3b0Smrg	check for weak result types.
115*14f5a3b0Smrg	* testsuite/20_util/reference_wrapper/83427.cc: New test.
116*14f5a3b0Smrg
117*14f5a3b0Smrg	* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
118*14f5a3b0Smrg	Add tests using noskipws.
119*14f5a3b0Smrg
120*14f5a3b0Smrg	* testsuite/26_numerics/complex/dr2714.cc: Move to ...
121*14f5a3b0Smrg	* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
122*14f5a3b0Smrg	... Here. Remove duplicate header and dg-options. Check first invalid
123*14f5a3b0Smrg	character gets putback. Remove wchar_t test.
124*14f5a3b0Smrg
125*14f5a3b0Smrg2017-12-13  Jonathan Wakely  <jwakely@redhat.com>
126*14f5a3b0Smrg
127*14f5a3b0Smrg	PR libstdc++/59568
128*14f5a3b0Smrg	* include/std/complex (operator>>): Implement proposed resolution to
129*14f5a3b0Smrg	LWG 2714. Use putback if and only if a character has been successfully
130*14f5a3b0Smrg	extracted but isn't a delimiter. Use ctype::widen and traits::eq when
131*14f5a3b0Smrg	testing if extracted characters match delimiters.
132*14f5a3b0Smrg	* testsuite/26_numerics/complex/dr2714.cc: New test.
133*14f5a3b0Smrg
134*14f5a3b0Smrg2017-12-12  Jonathan Wakely  <jwakely@redhat.com>
135*14f5a3b0Smrg
136*14f5a3b0Smrg	PR libstdc++/83395
137*14f5a3b0Smrg	* include/std/type_traits (__is_invocable_impl): Remove partial
138*14f5a3b0Smrg	specialization for INVOKE<void> and restore is_void<R> check in
139*14f5a3b0Smrg	primary template.
140*14f5a3b0Smrg	(__is_nt_invocable_impl): Likewise.
141*14f5a3b0Smrg	* testsuite/20_util/is_invocable/83395.cc: New test.
142*14f5a3b0Smrg	* testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
143*14f5a3b0Smrg
144*14f5a3b0Smrg2017-12-07  David Edelsohn  <dje.gcc@gmail.com>
145*14f5a3b0Smrg
146*14f5a3b0Smrg	PR libstdc++/83120
147*14f5a3b0Smrg	* testsuite/ext/special_functions/hyperg/check_value.cc: Add
148*14f5a3b0Smrg	-ffp-contract=off. Add -ffloat-store for m68* and ia32.
149*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc: Same.
150*14f5a3b0Smrg
151*14f5a3b0Smrg2017-12-07  Martin Sebor  <msebor@redhat.com>
152*14f5a3b0Smrg
153*14f5a3b0Smrg	PR c/81544
154*14f5a3b0Smrg	* include/ext/mt_allocator.h (_M_destroy_thread_key): Remove
155*14f5a3b0Smrg	attribute const.
156*14f5a3b0Smrg
157*14f5a3b0Smrg2017-12-05  Jason Merrill  <jason@redhat.com>
158*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
159*14f5a3b0Smrg
160*14f5a3b0Smrg	* include/bits/fs_fwd.h (copy, copy_file): Remove noexcept.
161*14f5a3b0Smrg	(permissions): Add noexcept.
162*14f5a3b0Smrg	* include/bits/fs_ops.h (permissions): Add noexcept.
163*14f5a3b0Smrg	* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Add
164*14f5a3b0Smrg	_GLIBCXX_NOTHROW.
165*14f5a3b0Smrg
166*14f5a3b0Smrg2017-12-04  Jonathan Wakely  <jwakely@redhat.com>
167*14f5a3b0Smrg
168*14f5a3b0Smrg	* include/bits/regex_compiler.tcc: Use C-style comment to work around
169*14f5a3b0Smrg	PR preprocessor/61638.
170*14f5a3b0Smrg	(__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.
171*14f5a3b0Smrg
172*14f5a3b0Smrg	* config/io/basic_file_stdio.h (__basic_file): Remove name of unused
173*14f5a3b0Smrg	parameter.
174*14f5a3b0Smrg	* include/bits/boost_concept_check.h: Add pragmas to disable
175*14f5a3b0Smrg	-Wunused-local-typedef warnings.
176*14f5a3b0Smrg	* include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
177*14f5a3b0Smrg	(codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
178*14f5a3b0Smrg	parameter.
179*14f5a3b0Smrg	* include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
180*14f5a3b0Smrg	(time_get::do_get_monthname, time_get::do_get_year): Remove unused
181*14f5a3b0Smrg	variables.
182*14f5a3b0Smrg	* include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
183*14f5a3b0Smrg	unused parameter.
184*14f5a3b0Smrg	* include/std/streambuf (_IsUnused): Define.
185*14f5a3b0Smrg	(basic_streambuf::imbue, basic_streambuf::pbackfail)
186*14f5a3b0Smrg	(basic_streambuf::overflow): Add macro to unused parameters.
187*14f5a3b0Smrg	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.
188*14f5a3b0Smrg
189*14f5a3b0Smrg2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
190*14f5a3b0Smrg
191*14f5a3b0Smrg	* include/experimental/string_view (basic_string_view::_S_compare):
192*14f5a3b0Smrg	Use value-init so narrowing conversions are not ill-formed.
193*14f5a3b0Smrg	* include/std/string_view (basic_string_view::_S_compare): Likewise.
194*14f5a3b0Smrg
195*14f5a3b0Smrg	* include/bits/basic_string.h (operator""s): Add pragmas to disable
196*14f5a3b0Smrg	-Wliteral-suffix warnings.
197*14f5a3b0Smrg	* include/experimental/string_view (operator""sv): Likewise.
198*14f5a3b0Smrg	* include/std/chrono (operator""h, operator""min, operator""s)
199*14f5a3b0Smrg	(operator""ms, operator""us, operator""ns): Likewise.
200*14f5a3b0Smrg	* include/std/complex (operator""if, operator""i, operator""il):
201*14f5a3b0Smrg	Likewise.
202*14f5a3b0Smrg	* include/std/string_view (operator""sv): Likewise.
203*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
204*14f5a3b0Smrg
205*14f5a3b0Smrg	* include/bits/locale_facets_nonio.tcc (money_get::_M_extract): Add
206*14f5a3b0Smrg	fallthrough comment.
207*14f5a3b0Smrg
208*14f5a3b0Smrg	* include/bits/node_handle.h (_Node_handle_common::operator=)
209*14f5a3b0Smrg	(_Node_handle_common::_M_swap): Add braces around debug assertions.
210*14f5a3b0Smrg
211*14f5a3b0Smrg	* include/ext/ropeimpl.h (rope::_S_dump): Use const char*.
212*14f5a3b0Smrg
213*14f5a3b0Smrg	* libsupc++/nested_exception.h (__throw_with_nested_impl): Add
214*14f5a3b0Smrg	noreturn attribute.
215*14f5a3b0Smrg
216*14f5a3b0Smrg	* include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
217*14f5a3b0Smrg	Remove semi-colon after function body.
218*14f5a3b0Smrg	* include/bits/uniform_int_dist.h (_Power_of_2): Likewise.
219*14f5a3b0Smrg
220*14f5a3b0Smrg	* include/tr1/modified_bessel_func.tcc (__airy): Use value-init not
221*14f5a3b0Smrg	list-init.
222*14f5a3b0Smrg
223*14f5a3b0Smrg	* include/std/type_traits (integral_constant): Make member functions
224*14f5a3b0Smrg	noexcept (LWG 2346).
225*14f5a3b0Smrg	* include/std/utility (integer_sequence): Likewise.
226*14f5a3b0Smrg
227*14f5a3b0Smrg2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
228*14f5a3b0Smrg
229*14f5a3b0Smrg	PR libstdc++/65927
230*14f5a3b0Smrg	* include/bits/locale_facets_nonio.h (__timepunct::_M_am_pm_format):
231*14f5a3b0Smrg	Remove statement with no effect.
232*14f5a3b0Smrg
233*14f5a3b0Smrg2017-11-30  Glen Joseph Fernandes  <glenjofe@gmail.com>
234*14f5a3b0Smrg
235*14f5a3b0Smrg	* include/bits/ptr_traits.h (__to_address, to_address): Move static
236*14f5a3b0Smrg	assertion.
237*14f5a3b0Smrg	* testsuite/20_util/to_address/1_neg.cc: New test.
238*14f5a3b0Smrg
239*14f5a3b0Smrg2017-11-30  Jonathan Wakely  <jwakely@redhat.com>
240*14f5a3b0Smrg
241*14f5a3b0Smrg	PR libstdc++/83226
242*14f5a3b0Smrg	* include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
243*14f5a3b0Smrg	pointer-to-reference types.
244*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
245*14f5a3b0Smrg
246*14f5a3b0Smrg2017-11-29  John David Anglin  <danglin@gcc.gnu.org>
247*14f5a3b0Smrg
248*14f5a3b0Smrg	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
249*14f5a3b0Smrg
250*14f5a3b0Smrg2017-11-29  David Malcolm  <dmalcolm@redhat.com>
251*14f5a3b0Smrg
252*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Update expected
253*14f5a3b0Smrg	line of a static_assert failure.
254*14f5a3b0Smrg
255*14f5a3b0Smrg2017-11-28  Glen Joseph Fernandes  <glenjofe@gmail.com>
256*14f5a3b0Smrg
257*14f5a3b0Smrg	* include/bits/ptr_traits.h (to_address): Implement to_address.
258*14f5a3b0Smrg	* testsuite/20_util/to_address/1.cc: New test.
259*14f5a3b0Smrg
260*14f5a3b0Smrg2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
261*14f5a3b0Smrg
262*14f5a3b0Smrg	* include/std/string_view (basic_string_view::find_first_of): Add
263*14f5a3b0Smrg	missing noexcept.
264*14f5a3b0Smrg
265*14f5a3b0Smrg	* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
266*14f5a3b0Smrg	* include/debug/unordered_map (unordered_map): Likewise.
267*14f5a3b0Smrg
268*14f5a3b0Smrg2017-11-23  Jonathan Wakely  <jwakely@redhat.com>
269*14f5a3b0Smrg
270*14f5a3b0Smrg	* libsupc++/new (launder): Add nodiscard attribute.
271*14f5a3b0Smrg	* testsuite/18_support/launder/nodiscard.cc: New test.
272*14f5a3b0Smrg
273*14f5a3b0Smrg	* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
274*14f5a3b0Smrg	* include/bits/range_access.h (empty): Likewise.
275*14f5a3b0Smrg	* include/std/string_view (basic_string_view::empty): Likewise.
276*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
277*14f5a3b0Smrg	test.
278*14f5a3b0Smrg	* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
279*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
280*14f5a3b0Smrg
281*14f5a3b0Smrg	PR libstdc++/83134
282*14f5a3b0Smrg	* include/std/type_traits (__not_): Explicitly convert to bool.
283*14f5a3b0Smrg	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
284*14f5a3b0Smrg	* testsuite/20_util/logical_traits/83134.cc: New test.
285*14f5a3b0Smrg	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
286*14f5a3b0Smrg	dg-error.
287*14f5a3b0Smrg	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
288*14f5a3b0Smrg	Likewise.
289*14f5a3b0Smrg
290*14f5a3b0Smrg2017-11-22  Jonathan Wakely  <jwakely@redhat.com>
291*14f5a3b0Smrg
292*14f5a3b0Smrg	PR go/83102
293*14f5a3b0Smrg	* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
294*14f5a3b0Smrg	comparison object pre-C++17.
295*14f5a3b0Smrg
296*14f5a3b0Smrg2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
297*14f5a3b0Smrg
298*14f5a3b0Smrg	PR libstdc++/48101
299*14f5a3b0Smrg	* include/bits/allocator.h (allocator<const _Tp>)
300*14f5a3b0Smrg	(allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial
301*14f5a3b0Smrg	specializations.
302*14f5a3b0Smrg	* include/bits/forward_list.h (forward_list): Add static assertions.
303*14f5a3b0Smrg	* include/bits/hashtable.h (__cache_default): Use
304*14f5a3b0Smrg	__is_nothrow_invocable instead of __is_noexcept_hash.
305*14f5a3b0Smrg	(_Hashtable): Add static assertions.
306*14f5a3b0Smrg	* include/bits/hashtable_policy.h (__is_noexcept_hash): Remove.
307*14f5a3b0Smrg	* include/bits/stl_deque.h (deque): Add static assertions.
308*14f5a3b0Smrg	* include/bits/stl_function.h (_Identity<const _Tp>): Add partial
309*14f5a3b0Smrg	specialization.
310*14f5a3b0Smrg	* include/bits/stl_list.h (list): Add static assertions.
311*14f5a3b0Smrg	* include/bits/stl_map.h (map): Likewise.
312*14f5a3b0Smrg	* include/bits/stl_multimap.h (multimap): Likewise.
313*14f5a3b0Smrg	* include/bits/stl_multiset.h (multiset): Likewise.
314*14f5a3b0Smrg	* include/bits/stl_set.h (set): Likewise.
315*14f5a3b0Smrg	* include/bits/stl_tree.h (_Rb_tree): Likewise.
316*14f5a3b0Smrg	* include/bits/stl_vector.h (vector): Likewise.
317*14f5a3b0Smrg	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
318*14f5a3b0Smrg	Use typename instead of class in template-parameter-list and remove
319*14f5a3b0Smrg	spaces.
320*14f5a3b0Smrg	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
321*14f5a3b0Smrg	Likewise.
322*14f5a3b0Smrg	* testsuite/23_containers/deque/48101-2_neg.cc: New test.
323*14f5a3b0Smrg	* testsuite/23_containers/deque/48101_neg.cc: New test.
324*14f5a3b0Smrg	* testsuite/23_containers/forward_list/48101-2_neg.cc: New test.
325*14f5a3b0Smrg	* testsuite/23_containers/forward_list/48101_neg.cc: New test.
326*14f5a3b0Smrg	* testsuite/23_containers/list/48101-2_neg.cc: New test.
327*14f5a3b0Smrg	* testsuite/23_containers/list/48101_neg.cc: New test.
328*14f5a3b0Smrg	* testsuite/23_containers/map/48101-2_neg.cc: New test.
329*14f5a3b0Smrg	* testsuite/23_containers/map/48101_neg.cc: New test.
330*14f5a3b0Smrg	* testsuite/23_containers/map/operations/31440.cc: Fix comparison
331*14f5a3b0Smrg	object to have const-qualified call operator.
332*14f5a3b0Smrg	* testsuite/23_containers/multimap/48101-2_neg.cc: New test.
333*14f5a3b0Smrg	* testsuite/23_containers/multimap/48101_neg.cc: New test.
334*14f5a3b0Smrg	* testsuite/23_containers/multiset/48101-2_neg.cc: New test.
335*14f5a3b0Smrg	* testsuite/23_containers/multiset/48101_neg.cc: New test.
336*14f5a3b0Smrg	* testsuite/23_containers/set/48101-2_neg.cc: New test.
337*14f5a3b0Smrg	* testsuite/23_containers/set/48101_neg.cc: New test.
338*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/48101-2_neg.cc: New test.
339*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/48101_neg.cc: New test.
340*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test.
341*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/48101_neg.cc: New test.
342*14f5a3b0Smrg	* testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test.
343*14f5a3b0Smrg	* testsuite/23_containers/unordered_multiset/48101_neg.cc: New test.
344*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/48101-2_neg.cc: New test.
345*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/48101_neg.cc: New test.
346*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
347*14f5a3b0Smrg	dg-error line number.
348*14f5a3b0Smrg	* testsuite/23_containers/vector/48101-2_neg.cc: New test.
349*14f5a3b0Smrg	* testsuite/23_containers/vector/48101_neg.cc: New test.
350*14f5a3b0Smrg
351*14f5a3b0Smrg2017-11-21  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
352*14f5a3b0Smrg
353*14f5a3b0Smrg	* doc/xml/manual/using.xml (manual.intro.using.macros): Move
354*14f5a3b0Smrg	variablelist element at the end of its list.
355*14f5a3b0Smrg
356*14f5a3b0Smrg2017-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
357*14f5a3b0Smrg
358*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add rtems*.
359*14f5a3b0Smrg	(GLIBCXX_ENABLE_FILESYSTEM_TS): Likewise.
360*14f5a3b0Smrg	* configure: Regenerate.
361*14f5a3b0Smrg
362*14f5a3b0Smrg2017-11-20  François Dumont  <fdumont@gcc.gnu.org>
363*14f5a3b0Smrg
364*14f5a3b0Smrg	* include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
365*14f5a3b0Smrg	std::advance for istreambuf_iterator of char types to be friend.
366*14f5a3b0Smrg	(std::advance(istreambuf_iterator&, _Distance)): New overload.
367*14f5a3b0Smrg	* include/std/streambuf (basic_streambuf<>): Declare std::advance for
368*14f5a3b0Smrg	istreambuf_iterator of char types to be friend.
369*14f5a3b0Smrg	* testsuite/22_locale/money_get/get/char/9.cc: Have
370*14f5a3b0Smrg	istreambuf_iterator created on the fly when calling money_get<>::get.
371*14f5a3b0Smrg	* testsuite/22_locale/money_get/get/wchar_t/9.cc: Likewise.
372*14f5a3b0Smrg	* testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc: New.
373*14f5a3b0Smrg	* testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc: New.
374*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc: New.
375*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc:
376*14f5a3b0Smrg	New.
377*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc: New.
378*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc:
379*14f5a3b0Smrg	New.
380*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc:
381*14f5a3b0Smrg	New.
382*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc:
383*14f5a3b0Smrg	New.
384*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc:
385*14f5a3b0Smrg	New.
386*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
387*14f5a3b0Smrg	New.
388*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc:
389*14f5a3b0Smrg	New.
390*14f5a3b0Smrg	* testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc:
391*14f5a3b0Smrg	New.
392*14f5a3b0Smrg	* testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc: Leverage
393*14f5a3b0Smrg	on std::advance overload.
394*14f5a3b0Smrg	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
395*14f5a3b0Smrg	Likewise.
396*14f5a3b0Smrg
397*14f5a3b0Smrg2017-11-20  Jonathan Wakely  <jwakely@redhat.com>
398*14f5a3b0Smrg
399*14f5a3b0Smrg	* testsuite/special_functions/18_riemann_zeta/check_value.cc: Fix
400*14f5a3b0Smrg	duplicate dg-options directive.
401*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
402*14f5a3b0Smrg	20_riemann_zeta/check_value_neg.cc: Likewise.
403*14f5a3b0Smrg
404*14f5a3b0Smrg2017-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
405*14f5a3b0Smrg
406*14f5a3b0Smrg	Implement LWG 2353
407*14f5a3b0Smrg	* include/bits/stl_iterator_base_funcs.h (next):
408*14f5a3b0Smrg	Use InputIterator instead of ForwardIterator.
409*14f5a3b0Smrg	* testsuite/24_iterators/operations/lwg2353.cc: New.
410*14f5a3b0Smrg	* testsuite/24_iterators/operations/next_neg.cc: Remove.
411*14f5a3b0Smrg
412*14f5a3b0Smrg2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
413*14f5a3b0Smrg
414*14f5a3b0Smrg	PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
415*14f5a3b0Smrg	* include/tr1/ell_integral.tcc: Correct the nu sign convention
416*14f5a3b0Smrg	in ellint_3 and comp_ellint_3.
417*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
418*14f5a3b0Smrg	06_comp_ellint_3/check_value.cc: Regen with correct values.
419*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
420*14f5a3b0Smrg	14_ellint_3/check_value.cc: Ditto.
421*14f5a3b0Smrg	* testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
422*14f5a3b0Smrg	* testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
423*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
424*14f5a3b0Smrg	01_assoc_laguerre/check_value.cc: Regen.
425*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
426*14f5a3b0Smrg	02_assoc_legendre/check_value.cc: Regen.
427*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
428*14f5a3b0Smrg	03_beta/check_value.cc: Regen.
429*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
430*14f5a3b0Smrg	04_comp_ellint_1/check_value.cc: Regen.
431*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
432*14f5a3b0Smrg	05_comp_ellint_2/check_value.cc: Regen.
433*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
434*14f5a3b0Smrg	07_conf_hyperg/check_value.cc: Regen.
435*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
436*14f5a3b0Smrg	08_cyl_bessel_i/check_value.cc: Regen.
437*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
438*14f5a3b0Smrg	09_cyl_bessel_j/check_value.cc: Regen.
439*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
440*14f5a3b0Smrg	10_cyl_bessel_k/check_value.cc: Regen.
441*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
442*14f5a3b0Smrg	11_cyl_neumann/check_value.cc: Regen.
443*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
444*14f5a3b0Smrg	12_ellint_1/check_value.cc: Regen.
445*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
446*14f5a3b0Smrg	13_ellint_2/check_value.cc: Regen.
447*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
448*14f5a3b0Smrg	15_expint/check_value_neg.cc: Regen.
449*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
450*14f5a3b0Smrg	16_hermite/check_value.cc: Regen.
451*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
452*14f5a3b0Smrg	17_hyperg/check_value.cc: Regen.
453*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
454*14f5a3b0Smrg	18_laguerre/check_value.cc: Regen.
455*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
456*14f5a3b0Smrg	19_legendre/check_value.cc: Regen.
457*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
458*14f5a3b0Smrg	20_riemann_zeta/check_value_neg.cc: Regen.
459*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
460*14f5a3b0Smrg	21_sph_bessel/check_value.cc: Regen.
461*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
462*14f5a3b0Smrg	22_sph_legendre/check_value.cc: Regen.
463*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
464*14f5a3b0Smrg	23_sph_neumann/check_value.cc: Regen.
465*14f5a3b0Smrg	* testsuite/ext/special_functions/conf_hyperg/check_value.cc: Regen.
466*14f5a3b0Smrg	* testsuite/ext/special_functions/hyperg/check_value.cc: Regen.
467*14f5a3b0Smrg	* testsuite/special_functions/01_assoc_laguerre/check_value.cc: Regen.
468*14f5a3b0Smrg	* testsuite/special_functions/02_assoc_legendre/check_value.cc: Regen.
469*14f5a3b0Smrg	* testsuite/special_functions/03_beta/check_value.cc: Regen.
470*14f5a3b0Smrg	* testsuite/special_functions/04_comp_ellint_1/check_value.cc: Regen.
471*14f5a3b0Smrg	* testsuite/special_functions/05_comp_ellint_2/check_value.cc: Regen.
472*14f5a3b0Smrg	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Regen.
473*14f5a3b0Smrg	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Regen.
474*14f5a3b0Smrg	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Regen.
475*14f5a3b0Smrg 	* testsuite/special_functions/10_cyl_neumann/check_value.cc: Regen.
476*14f5a3b0Smrg	* testsuite/special_functions/11_ellint_1/check_value.cc: Regen.
477*14f5a3b0Smrg	* testsuite/special_functions/12_ellint_2/check_value.cc: Regen.
478*14f5a3b0Smrg	* testsuite/special_functions/14_expint/check_value.cc: Regen.
479*14f5a3b0Smrg	* testsuite/special_functions/15_hermite/check_value.cc: Regen.
480*14f5a3b0Smrg	* testsuite/special_functions/16_laguerre/check_value.cc: Regen.
481*14f5a3b0Smrg	* testsuite/special_functions/17_legendre/check_value.cc: Regen.
482*14f5a3b0Smrg	* testsuite/special_functions/18_riemann_zeta/check_value.cc: Regen.
483*14f5a3b0Smrg	* testsuite/special_functions/19_sph_bessel/check_value.cc: Regen.
484*14f5a3b0Smrg	* testsuite/special_functions/20_sph_legendre/check_value.cc: Regen.
485*14f5a3b0Smrg	* testsuite/special_functions/21_sph_neumann/check_value.cc: Regen.
486*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
487*14f5a3b0Smrg	06_comp_ellint_3/pr66689.cc: New.
488*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/
489*14f5a3b0Smrg	14_ellint_3/pr66689.cc: New.
490*14f5a3b0Smrg	* testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
491*14f5a3b0Smrg	* testsuite/special_functions/13_ellint_3/pr66689.cc: New.
492*14f5a3b0Smrg
493*14f5a3b0Smrg2017-11-18  Edward Smith-Rowland  <3dw4rd@verizon.net>
494*14f5a3b0Smrg	Expose Airy functions as an extenaion.
495*14f5a3b0Smrg	* include/bits/specfun.h: Expose airy_ai and airy_bi.
496*14f5a3b0Smrg	* include/tr1/modified_bessel_func.tcc: Treat NaN and inf arg, return.
497*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_ai/check_nan.cc: New.
498*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_ai/check_value.cc: New.
499*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_ai/compile.cc: New.
500*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_bi/check_nan.cc: New.
501*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_bi/check_value.cc: New.
502*14f5a3b0Smrg	* testsuite/ext/special_functions/airy_bi/compile.cc: New.
503*14f5a3b0Smrg
504*14f5a3b0Smrg2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
505*14f5a3b0Smrg
506*14f5a3b0Smrg	* acinclude.m4: Add cet.m4.
507*14f5a3b0Smrg	* configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
508*14f5a3b0Smrg	EXTRA_CXX_FLAGS.
509*14f5a3b0Smrg	* libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
510*14f5a3b0Smrg	* Makefile.in: Regenerate.
511*14f5a3b0Smrg	* configure: Likewise.
512*14f5a3b0Smrg	* doc/Makefile.in: Likewise.
513*14f5a3b0Smrg	* include/Makefile.in: Likewise.
514*14f5a3b0Smrg	* libsupc++/Makefile.in: Likewise.
515*14f5a3b0Smrg	* po/Makefile.in: Likewise.
516*14f5a3b0Smrg	* python/Makefile.in: Likewise.
517*14f5a3b0Smrg	* src/Makefile.in: Likewise.
518*14f5a3b0Smrg	* src/c++11/Makefile.in: Likewise.
519*14f5a3b0Smrg	* src/c++98/Makefile.in: Likewise.
520*14f5a3b0Smrg	* src/filesystem/Makefile.in: Likewise.
521*14f5a3b0Smrg	* testsuite/Makefile.in: Likewise.
522*14f5a3b0Smrg
523*14f5a3b0Smrg2017-11-17  Jonathan Wakely  <jwakely@redhat.com>
524*14f5a3b0Smrg
525*14f5a3b0Smrg	PR libstdc++/83025
526*14f5a3b0Smrg	* include/std/fstream (basic_filebuf::_If_path): Move to
527*14f5a3b0Smrg	namespace-scope and rename to _If_fs_path.
528*14f5a3b0Smrg	(basic_filebuf::open): Use new name.
529*14f5a3b0Smrg	(basic_ifstream(_Path, ios::openmode))
530*14f5a3b0Smrg	(basic_ifstream::open(_Path, ios::openmode))
531*14f5a3b0Smrg	(basic_ofstream(_Path, ios::openmode))
532*14f5a3b0Smrg	(basic_ofstream::open(_Path, ios::openmode))
533*14f5a3b0Smrg	(basic_fstream(_Path, ios::openmode))
534*14f5a3b0Smrg	(basic_fstream::open(_Path, ios::openmode)): Use _If_fs_path.
535*14f5a3b0Smrg	* testsuite/27_io/basic_filebuf/open/char/path.cc: Test with filename
536*14f5a3b0Smrg	as non-const char*.
537*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
538*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
539*14f5a3b0Smrg	* testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
540*14f5a3b0Smrg	* testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
541*14f5a3b0Smrg	* testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
542*14f5a3b0Smrg	* testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
543*14f5a3b0Smrg
544*14f5a3b0Smrg
545*14f5a3b0Smrg2017-11-17  Marc Glisse  <marc.glisse@inria.fr>
546*14f5a3b0Smrg
547*14f5a3b0Smrg	* include/bits/vector.tcc (vector::_M_realloc_insert): Cache old
548*14f5a3b0Smrg	values before the allocation.
549*14f5a3b0Smrg
550*14f5a3b0Smrg2017-11-16  Jonathan Wakely  <jwakely@redhat.com>
551*14f5a3b0Smrg
552*14f5a3b0Smrg	* include/std/future (shared_future): Add noexcept to copy constructor
553*14f5a3b0Smrg	and copy-assignment operator (LWG 2799).
554*14f5a3b0Smrg
555*14f5a3b0Smrg2017-11-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
556*14f5a3b0Smrg
557*14f5a3b0Smrg	Fix gcd breakage.
558*14f5a3b0Smrg	* include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
559*14f5a3b0Smrg
560*14f5a3b0Smrg2017-11-15  Jonathan Wakely  <jwakely@redhat.com>
561*14f5a3b0Smrg
562*14f5a3b0Smrg	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
563*14f5a3b0Smrg	error_code unset.
564*14f5a3b0Smrg	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
565*14f5a3b0Smrg	Check for past-the-end before dereferencing.
566*14f5a3b0Smrg	* testsuite/experimental/filesystem/iterators/
567*14f5a3b0Smrg	recursive_directory_iterator.cc: Likewise.
568*14f5a3b0Smrg
569*14f5a3b0Smrg	* include/bits/range_access.h (size, empty, data): Add conditional
570*14f5a3b0Smrg	noexcept to generic overloads.
571*14f5a3b0Smrg
572*14f5a3b0Smrg2017-11-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
573*14f5a3b0Smrg
574*14f5a3b0Smrg	Implement LWG 2733 and LWG 2759
575*14f5a3b0Smrg	* include/experimental/numeric (gcd): Reject cv-qualified bool.
576*14f5a3b0Smrg	(lcm): Likewise.
577*14f5a3b0Smrg	* include/std/numeric (gcd): Likewise.
578*14f5a3b0Smrg	(lcm): Likewise.
579*14f5a3b0Smrg	* testsuite/26_numerics/gcd/gcd_neg.cc: Add tests and adjust.
580*14f5a3b0Smrg	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
581*14f5a3b0Smrg
582*14f5a3b0Smrg2017-11-14  Jonathan Wakely  <jwakely@redhat.com>
583*14f5a3b0Smrg
584*14f5a3b0Smrg	* include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
585*14f5a3b0Smrg	* testsuite/22_locale/conversions/buffer/3.cc: New test.
586*14f5a3b0Smrg
587*14f5a3b0Smrg2017-11-10  Jonathan Wakely  <jwakely@redhat.com>
588*14f5a3b0Smrg
589*14f5a3b0Smrg	* testsuite/util/testsuite_tr1.h (ThrowMoveConsClass): Use noexcept.
590*14f5a3b0Smrg
591*14f5a3b0Smrg	PR libstdc++/82917
592*14f5a3b0Smrg	* include/std/fstream (basic_ifstream::open, basic_ofstream::open)
593*14f5a3b0Smrg	(basic_fstream::open): Fix missing return.
594*14f5a3b0Smrg
595*14f5a3b0Smrg2017-11-07  Jonathan Wakely  <jwakely@redhat.com>
596*14f5a3b0Smrg
597*14f5a3b0Smrg	* src/filesystem/ops-common.h (make_file_type) [S_ISSOCK]: Only use
598*14f5a3b0Smrg	S_ISSOCK when defined.
599*14f5a3b0Smrg
600*14f5a3b0Smrg2017-11-06  François Dumont  <fdumont@gcc.gnu.org>
601*14f5a3b0Smrg
602*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/tr1.cc:  Compile with -O0.
603*14f5a3b0Smrg
604*14f5a3b0Smrg2017-11-06  Martin Liska  <mliska@suse.cz>
605*14f5a3b0Smrg
606*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/cons/char/path.cc (main):
607*14f5a3b0Smrg	  Return a value for functions with non-void return type,
608*14f5a3b0Smrg	  or change type to void, or add -Wno-return-type for test.
609*14f5a3b0Smrg	* testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
610*14f5a3b0Smrg	Likewise.
611*14f5a3b0Smrg	* testsuite/27_io/basic_ofstream/open/char/path.cc (main):
612*14f5a3b0Smrg	Likewise.
613*14f5a3b0Smrg
614*14f5a3b0Smrg2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
615*14f5a3b0Smrg
616*14f5a3b0Smrg	* testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
617*14f5a3b0Smrg	warnings.
618*14f5a3b0Smrg	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
619*14f5a3b0Smrg	* testsuite/20_util/pair/traits.cc: Likewise.
620*14f5a3b0Smrg	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
621*14f5a3b0Smrg	* testsuite/20_util/variant/compile.cc: Likewise.
622*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
623*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
624*14f5a3b0Smrg	Likewise.
625*14f5a3b0Smrg
626*14f5a3b0Smrg2017-11-05  Gerald Pfeifer  <gerald@pfeifer.com>
627*14f5a3b0Smrg
628*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
629*14f5a3b0Smrg
630*14f5a3b0Smrg2017-11-03  Jonathan Wakely  <jwakely@redhat.com>
631*14f5a3b0Smrg
632*14f5a3b0Smrg	* include/std/type_traits (endian): Define new enumeration type.
633*14f5a3b0Smrg	* testsuite/20_util/endian/1.cc: New test.
634*14f5a3b0Smrg
635*14f5a3b0Smrg	* include/bits/node_handle.h (_Node_insert_return::get): Remove, as
636*14f5a3b0Smrg	per P0508R0.
637*14f5a3b0Smrg
638*14f5a3b0Smrg2017-11-01  François Dumont  <fdumont@gcc.gnu.org>
639*14f5a3b0Smrg
640*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py (StdExpAnyPrinter.__init__): Strip
641*14f5a3b0Smrg	typename versioned namespace before the substitution.
642*14f5a3b0Smrg	(StdExpOptionalPrinter.__init__): Likewise.
643*14f5a3b0Smrg	(StdVariantPrinter.__init__): Likewise.
644*14f5a3b0Smrg	(Printer.add_version): Inject versioned namespace after std or
645*14f5a3b0Smrg	__gnu_cxx.
646*14f5a3b0Smrg	(build_libstdcxx_dictionary): Adapt add_version usages, always pass
647*14f5a3b0Smrg	namespace first and symbol second.
648*14f5a3b0Smrg
649*14f5a3b0Smrg2017-11-01  Jonathan Wakely  <jwakely@redhat.com>
650*14f5a3b0Smrg
651*14f5a3b0Smrg	PR libstdc++/82777
652*14f5a3b0Smrg	* src/filesystem/std-path.cc (path::lexically_normal): Remove dot-dot
653*14f5a3b0Smrg	elements correctly.
654*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/normal.cc: Add testcase.
655*14f5a3b0Smrg	* testsuite/util/testsuite_fs.h (compare_paths): Improve exception
656*14f5a3b0Smrg	text.
657*14f5a3b0Smrg
658*14f5a3b0Smrg2017-10-30  Jonathan Wakely  <jwakely@redhat.com>
659*14f5a3b0Smrg
660*14f5a3b0Smrg	* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
661*14f5a3b0Smrg	to stamp-bits.
662*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
663*14f5a3b0Smrg
664*14f5a3b0Smrg	* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
665*14f5a3b0Smrg	Remove outdated comments about calling c_str() to create a file stream
666*14f5a3b0Smrg	from a std::string.
667*14f5a3b0Smrg	(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
668*14f5a3b0Smrg	redundant ios_mode::trunc bits from default arguments and comments.
669*14f5a3b0Smrg
670*14f5a3b0Smrg	* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.
671*14f5a3b0Smrg
672*14f5a3b0Smrg	* include/bits/hashtable_policy.h: Include <tuple>.
673*14f5a3b0Smrg	* include/std/unordered_map: Only include <bits/stl_pair.h> instead
674*14f5a3b0Smrg	of <utility> and <tuple>.
675*14f5a3b0Smrg	* include/std/unordered_set: Likewise.
676*14f5a3b0Smrg
677*14f5a3b0Smrg2017-10-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
678*14f5a3b0Smrg
679*14f5a3b0Smrg	Implement LWG 2485
680*14f5a3b0Smrg	* include/debug/array (get(const array<_Tp, _Nm>&&)): New.
681*14f5a3b0Smrg	* include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
682*14f5a3b0Smrg	* include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
683*14f5a3b0Smrg	(get(const tuple<_Types...>&&)): Likewise.
684*14f5a3b0Smrg	* include/std/utility
685*14f5a3b0Smrg	(__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
686*14f5a3b0Smrg	Likewise.
687*14f5a3b0Smrg	(get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
688*14f5a3b0Smrg	(get(const pair<_Tp, _Up>&&)): Likewise.
689*14f5a3b0Smrg	(get(const pair<_Up, _Tp>&&)): Likewise.
690*14f5a3b0Smrg	* testsuite/20_util/pair/astuple/get.cc: Add tests for
691*14f5a3b0Smrg	new overloads.
692*14f5a3b0Smrg	* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
693*14f5a3b0Smrg	* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
694*14f5a3b0Smrg	* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
695*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
696*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
697*14f5a3b0Smrg	Adjust.
698*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
699*14f5a3b0Smrg	Likewise.
700*14f5a3b0Smrg
701*14f5a3b0Smrg2017-10-27  Jonathan Wakely  <jwakely@redhat.com>
702*14f5a3b0Smrg
703*14f5a3b0Smrg	* include/bits/node_handle.h (_Node_insert_return::get): Avoid
704*14f5a3b0Smrg	use of std::tie and std::get.
705*14f5a3b0Smrg
706*14f5a3b0Smrg	* include/Makefile.am: Put headers in alphabetical order.
707*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
708*14f5a3b0Smrg
709*14f5a3b0Smrg	* include/bits/fs_dir.h (directory_iterator): Remove noexcept from
710*14f5a3b0Smrg	constructors and increment member (LWG 3013).
711*14f5a3b0Smrg	(recursive_directory_iterator): Likewise.
712*14f5a3b0Smrg	* include/bits/fs_ops.h (copy, copy_file, create_directories)
713*14f5a3b0Smrg	(is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
714*14f5a3b0Smrg	* src/filesystem/std-dir.cc (directory_iterator::increment)
715*14f5a3b0Smrg	(recursive_directory_iterator::increment): Remove noexcept.
716*14f5a3b0Smrg	* src/filesystem/std-ops.cc (copy, copy_file, create_directories)
717*14f5a3b0Smrg	(is_empty, remove_all): Remove noexcept
718*14f5a3b0Smrg
719*14f5a3b0Smrg	* include/bits/fs_dir.h (file_status): Make default constructor
720*14f5a3b0Smrg	non-explicit (LWG 2787).
721*14f5a3b0Smrg	* testsuite/27_io/filesystem/file_status/1.cc: New test.
722*14f5a3b0Smrg	* testsuite/experimental/filesystem/file_status/1.cc: New test.
723*14f5a3b0Smrg
724*14f5a3b0Smrg	* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
725*14f5a3b0Smrg	(basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
726*14f5a3b0Smrg	(basic_ifstream<Path>(const Path&, const ios_base::openmode&))
727*14f5a3b0Smrg	(basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
728*14f5a3b0Smrg	(basic_ofstream<Path>(const Path&, const ios_base::openmode&))
729*14f5a3b0Smrg	(basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
730*14f5a3b0Smrg	(basic_fstream<Path>(const Path&, const ios_base::openmode&))
731*14f5a3b0Smrg	(basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
732*14f5a3b0Smrg	New constructors and member functions.
733*14f5a3b0Smrg	* testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
734*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
735*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/open/char/path.cc: New test.
736*14f5a3b0Smrg	* testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
737*14f5a3b0Smrg	* testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
738*14f5a3b0Smrg	* testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
739*14f5a3b0Smrg	* testsuite/27_io/basic_ofstream/open/char/path.cc: New test.
740*14f5a3b0Smrg
741*14f5a3b0Smrg	* include/bits/fs_path.h (path::format): Define new enumeration type.
742*14f5a3b0Smrg	(path(string_type&&), path<Source>(const Source&))
743*14f5a3b0Smrg	(path<InputIterator>(InputIterator, InputIterator))
744*14f5a3b0Smrg	(path<Source>(const Source&, const locale&))
745*14f5a3b0Smrg	(path<InputIterator>(InputIterator, InputIterator, const locale&)):
746*14f5a3b0Smrg	Add format parameter.
747*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/format.cc: New test.
748*14f5a3b0Smrg
749*14f5a3b0Smrg	* include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
750*14f5a3b0Smrg	to ensure overloaded comma not used.
751*14f5a3b0Smrg	* include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
752*14f5a3b0Smrg	* include/bits/stl_uninitialized.h (__uninitialized_fill_n)
753*14f5a3b0Smrg	(__uninitialized_fill_n_a, __uninitialized_default_n_1)
754*14f5a3b0Smrg	(__uninitialized_default_n_a, __uninitialized_copy_n)
755*14f5a3b0Smrg	(__uninitialized_copy_n_pair): Likewise
756*14f5a3b0Smrg	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
757*14f5a3b0Smrg	Use test iterator wrappers with overloaded comma operator.
758*14f5a3b0Smrg	* testsuite/25_algorithms/fill_n/1.cc: Likewise.
759*14f5a3b0Smrg	* testsuite/25_algorithms/generate_n/1.cc: New test.
760*14f5a3b0Smrg	* testsuite/25_algorithms/stable_partition/1.cc: New test.
761*14f5a3b0Smrg	* testsuite/util/testsuite_iterators.h (operator,): Add deleted
762*14f5a3b0Smrg	non-member comma operator with iterator wrappers as right operand.
763*14f5a3b0Smrg
764*14f5a3b0Smrg2017-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>
765*14f5a3b0Smrg
766*14f5a3b0Smrg	Deduction guides for associative containers, debug mode deduction
767*14f5a3b0Smrg	guide fixes.
768*14f5a3b0Smrg	* include/bits/stl_iterator.h (__iter_key_t)
769*14f5a3b0Smrg	(__iter_val_t, __iter_to_alloc_t): New.
770*14f5a3b0Smrg	* include/bits/stl_map.h: Add deduction guides.
771*14f5a3b0Smrg	* include/bits/stl_multimap.h: Likewise.
772*14f5a3b0Smrg	* include/bits/stl_multiset.h: Likewise.
773*14f5a3b0Smrg	* include/bits/stl_set.h: Likewise.
774*14f5a3b0Smrg	* include/bits/unordered_map.h: Likewise.
775*14f5a3b0Smrg	* include/bits/unordered_set.h: Likewise.
776*14f5a3b0Smrg	* include/debug/deque: Likewise.
777*14f5a3b0Smrg	* include/debug/forward_list: Likewise.
778*14f5a3b0Smrg	* include/debug/list: Likewise.
779*14f5a3b0Smrg	* include/debug/map.h: Likewise.
780*14f5a3b0Smrg	* include/debug/multimap.h: Likewise.
781*14f5a3b0Smrg	* include/debug/multiset.h: Likewise.
782*14f5a3b0Smrg	* include/debug/set.h: Likewise.
783*14f5a3b0Smrg	* include/debug/unordered_map: Likewise.
784*14f5a3b0Smrg	* include/debug/unordered_set: Likewise.
785*14f5a3b0Smrg	* include/debug/vector: Likewise.
786*14f5a3b0Smrg	* testsuite/23_containers/map/cons/deduction.cc: New.
787*14f5a3b0Smrg	* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
788*14f5a3b0Smrg	* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
789*14f5a3b0Smrg	* testsuite/23_containers/set/cons/deduction.cc: Likewise.
790*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
791*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
792*14f5a3b0Smrg	Likewise.
793*14f5a3b0Smrg	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
794*14f5a3b0Smrg	Likewise.
795*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
796*14f5a3b0Smrg
797*14f5a3b0Smrg2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
798*14f5a3b0Smrg
799*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
800*14f5a3b0Smrg	information on feature-test macros.
801*14f5a3b0Smrg	* doc/html/*: Regenerate.
802*14f5a3b0Smrg
803*14f5a3b0Smrg	PR libstdc++/82716
804*14f5a3b0Smrg	* include/std/array (tuple_size, tuple_element): Change class-key
805*14f5a3b0Smrg	from class to struct, to avoid annoying Clang warnings.
806*14f5a3b0Smrg
807*14f5a3b0Smrg	PR libstdc++/79283
808*14f5a3b0Smrg	* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
809*14f5a3b0Smrg	* src/filesystem/std-ops.cc (read_symlink): Likewise.
810*14f5a3b0Smrg	(do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.
811*14f5a3b0Smrg
812*14f5a3b0Smrg	* src/filesystem/std-path.cc (path::lexically_normal): Add missing
813*14f5a3b0Smrg	step to algorithm, for removing dot-dot elements after root-directory.
814*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/canonical.cc: Use
815*14f5a3b0Smrg	compare_paths for more exhaustive checks.
816*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
817*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
818*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
819*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
820*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
821*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
822*14f5a3b0Smrg	Likewise.
823*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/normal.cc: Use
824*14f5a3b0Smrg	compare_paths for more exhaustive checks. Add extra testcases.
825*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
826*14f5a3b0Smrg	compare_paths for more exhaustive checks.
827*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
828*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
829*14f5a3b0Smrg	unused header.
830*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
831*14f5a3b0Smrg	comment.
832*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
833*14f5a3b0Smrg	compare_paths for more exhaustive checks.
834*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
835*14f5a3b0Smrg	Likewise.
836*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
837*14f5a3b0Smrg	Likewise.
838*14f5a3b0Smrg	* testsuite/util/testsuite_fs.h (compare_paths): Also compare native
839*14f5a3b0Smrg	strings.
840*14f5a3b0Smrg
841*14f5a3b0Smrg	PR libstdc++/82706
842*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/permissions.cc: Fix test.
843*14f5a3b0Smrg
844*14f5a3b0Smrg2017-10-24  François Dumont  <fdumont@gcc.gnu.org>
845*14f5a3b0Smrg
846*14f5a3b0Smrg	* testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
847*14f5a3b0Smrg	c++config.h include.
848*14f5a3b0Smrg	(check_v3_target_normal_namespace): New.
849*14f5a3b0Smrg	* testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
850*14f5a3b0Smrg	* testsuite/18_support/headers/limits/synopsis.cc: Add latter.
851*14f5a3b0Smrg	* testsuite/20_util/from_chars/requirements.cc: Likewise.
852*14f5a3b0Smrg	* testsuite/20_util/headers/functional/synopsis.cc: Likewise.
853*14f5a3b0Smrg	* testsuite/20_util/headers/memory/synopsis.cc: Likewise.
854*14f5a3b0Smrg	* testsuite/20_util/headers/utility/synopsis.cc: Likewise.
855*14f5a3b0Smrg	* testsuite/20_util/to_chars/requirements.cc: Likewise.
856*14f5a3b0Smrg	* testsuite/21_strings/headers/string/synopsis.cc: Likewise.
857*14f5a3b0Smrg	* testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
858*14f5a3b0Smrg	* testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
859*14f5a3b0Smrg	* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
860*14f5a3b0Smrg	* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
861*14f5a3b0Smrg	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
862*14f5a3b0Smrg	* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
863*14f5a3b0Smrg	* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
864*14f5a3b0Smrg	* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
865*14f5a3b0Smrg	* testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
866*14f5a3b0Smrg	* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
867*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
868*14f5a3b0Smrg	* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
869*14f5a3b0Smrg	* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
870*14f5a3b0Smrg	* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
871*14f5a3b0Smrg	* testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
872*14f5a3b0Smrg	* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
873*14f5a3b0Smrg	* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
874*14f5a3b0Smrg	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
875*14f5a3b0Smrg	* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
876*14f5a3b0Smrg	* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
877*14f5a3b0Smrg	* testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
878*14f5a3b0Smrg	* testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
879*14f5a3b0Smrg	* testsuite/27_io/headers/ios/synopsis.cc: Likewise.
880*14f5a3b0Smrg	* testsuite/27_io/headers/istream/synopsis.cc: Likewise.
881*14f5a3b0Smrg	* testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
882*14f5a3b0Smrg	* testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
883*14f5a3b0Smrg	* testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.
884*14f5a3b0Smrg
885*14f5a3b0Smrg2017-10-24  Jonathan Wakely  <jwakely@redhat.com>
886*14f5a3b0Smrg
887*14f5a3b0Smrg	* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
888*14f5a3b0Smrg	-Wattribute-alias warnings.
889*14f5a3b0Smrg	* src/c++11/istream-inst.cc: Likewise.
890*14f5a3b0Smrg	* src/c++11/locale-inst.cc: Likewise.
891*14f5a3b0Smrg	* src/c++11/ostream-inst.cc: Likewise.
892*14f5a3b0Smrg	* src/c++11/wlocale-inst.cc: Likewise.
893*14f5a3b0Smrg	* src/c++98/hash-long-double-tr1-aux.cc: Likewise.
894*14f5a3b0Smrg
895*14f5a3b0Smrg	* include/bits/string_view.tcc (find_first_of, find_last_of)
896*14f5a3b0Smrg	(find_first_not_of, find_last_not_of): Add noexcept.
897*14f5a3b0Smrg	* include/std/string_view (basic_string_view(const _CharT*))
898*14f5a3b0Smrg	(basic_string_view(const _CharT*, size_type))
899*14f5a3b0Smrg	(front, back, remove_prefix, remove_suffix, find, rfind)
900*14f5a3b0Smrg	(find_first_of, find_first_not_of): Add noexcept.
901*14f5a3b0Smrg	(at(size_type), _S_compare(size_type, size_type)): Replace conditional
902*14f5a3b0Smrg	expressions with if statements.
903*14f5a3b0Smrg	(copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
904*14f5a3b0Smrg	Use _M_check for length checks.
905*14f5a3b0Smrg	(compare(basic_string_view)): Reformat.
906*14f5a3b0Smrg	(_M_check(size_type, const char)): Add noexcept(false).
907*14f5a3b0Smrg	(_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.
908*14f5a3b0Smrg
909*14f5a3b0Smrg	PR libstdc++/82685
910*14f5a3b0Smrg	* include/experimental/string_view (operator""sv): Add noexcept.
911*14f5a3b0Smrg	* include/std/string_view (operator""sv): Likewise.
912*14f5a3b0Smrg
913*14f5a3b0Smrg2017-10-23  Jonathan Wakely  <jwakely@redhat.com>
914*14f5a3b0Smrg
915*14f5a3b0Smrg	* include/Makefile.am: Add new headers for C++17 filesystem library.
916*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
917*14f5a3b0Smrg	* include/bits/fs_dir.h: New header, based on Filesystem TS code in
918*14f5a3b0Smrg	include/experimental/bits directory.
919*14f5a3b0Smrg	* include/bits/fs_fwd.h: Likewise.
920*14f5a3b0Smrg	* include/bits/fs_ops.h: Likewise.
921*14f5a3b0Smrg	* include/bits/fs_path.h: Likewise.
922*14f5a3b0Smrg	* include/experimental/bits/fs_dir.h: Rename Doxygen group.
923*14f5a3b0Smrg	* include/experimental/bits/fs_fwd.h: Likewise.
924*14f5a3b0Smrg	* include/experimental/bits/fs_ops.h: Likewise.
925*14f5a3b0Smrg	* include/experimental/bits/fs_path.h: Likewise.
926*14f5a3b0Smrg	* include/experimental/filesystem (filesystem_error::_M_gen_what):
927*14f5a3b0Smrg	Remove inline definition.
928*14f5a3b0Smrg	* include/precompiled/stdc++.h: Add <filesystem> to precompiled
929*14f5a3b0Smrg	header.
930*14f5a3b0Smrg	* include/std/filesystem: New header.
931*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py: Enable printer for std::filesystem
932*14f5a3b0Smrg	paths.
933*14f5a3b0Smrg	* src/filesystem/Makefile.am: Add new files. Compile as C++17.
934*14f5a3b0Smrg	* src/filesystem/Makefile.in: Regenerate.
935*14f5a3b0Smrg	* src/filesystem/cow-dir.cc: Update comment.
936*14f5a3b0Smrg	* src/filesystem/cow-ops.cc: Likewise.
937*14f5a3b0Smrg	* src/filesystem/cow-path.cc: Likewise.
938*14f5a3b0Smrg	* src/filesystem/cow-std-dir.cc: New file.
939*14f5a3b0Smrg	* src/filesystem/cow-std-ops.cc: New file.
940*14f5a3b0Smrg	* src/filesystem/cow-std-path.cc: New file.
941*14f5a3b0Smrg	* src/filesystem/dir-common.h (_Dir_base, get_file_type): New header
942*14f5a3b0Smrg	for common code.
943*14f5a3b0Smrg	* src/filesystem/dir.cc (_Dir): Derive from _Dir_base.
944*14f5a3b0Smrg	(open_dir): Move to _Dir_base constructor.
945*14f5a3b0Smrg	(get_file_type): Move to dir-common.h.
946*14f5a3b0Smrg	(recurse): Move to _Dir_base::should_recurse.
947*14f5a3b0Smrg	* src/filesystem/ops-common.h: New header for common code.
948*14f5a3b0Smrg	* src/filesystem/ops.cc (is_set, make_file_type, make_file_status)
949*14f5a3b0Smrg	(is_not_found_errno, file_time, do_copy_file): Move to ops-common.h.
950*14f5a3b0Smrg	* src/filesystem/path.cc (filesystem_error::_M_gen_what): Define.
951*14f5a3b0Smrg	* src/filesystem/std-dir.cc: New file, based on Filesystem TS code.
952*14f5a3b0Smrg	* src/filesystem/std-ops.cc: Likewise.
953*14f5a3b0Smrg	* src/filesystem/std-dir.cc: Likewise.
954*14f5a3b0Smrg	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: New
955*14f5a3b0Smrg	test.
956*14f5a3b0Smrg	* testsuite/27_io/filesystem/iterators/pop.cc: New test.
957*14f5a3b0Smrg	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
958*14f5a3b0Smrg	New test.
959*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/absolute.cc: New test.
960*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/canonical.cc: New test.
961*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/copy.cc: New test.
962*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/copy_file.cc: New test.
963*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/create_directories.cc: New
964*14f5a3b0Smrg	test.
965*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/create_directory.cc: New test.
966*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/create_symlink.cc: New test.
967*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/current_path.cc: New test.
968*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/equivalent.cc: New test.
969*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/exists.cc: New test.
970*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/file_size.cc: New test.
971*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/is_empty.cc: New test.
972*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/last_write_time.cc: New test.
973*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/permissions.cc: New test.
974*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/proximate.cc: New test.
975*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/read_symlink.cc: New test.
976*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/relative.cc: New test.
977*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/remove_all.cc: New test.
978*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/space.cc: New test.
979*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/status.cc: New test.
980*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/symlink_status.cc: New test.
981*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/temp_directory_path.cc: New
982*14f5a3b0Smrg	test.
983*14f5a3b0Smrg	* testsuite/27_io/filesystem/operations/weakly_canonical.cc: New test.
984*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/append/path.cc: New test.
985*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/assign/assign.cc: New test.
986*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/assign/copy.cc: New test.
987*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/compare/compare.cc: New test.
988*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/compare/path.cc: New test.
989*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/compare/strings.cc: New test.
990*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/concat/path.cc: New test.
991*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/concat/strings.cc: New test.
992*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/copy.cc: New test.
993*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/default.cc: New test.
994*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/locale.cc: New test.
995*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/range.cc: New test.
996*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/construct/string_view.cc: New test.
997*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/extension.cc: New test.
998*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/filename.cc: New test.
999*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/parent_path.cc: New test.
1000*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/relative_path.cc: New
1001*14f5a3b0Smrg	test.
1002*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: New
1003*14f5a3b0Smrg	test.
1004*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/root_name.cc: New test.
1005*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/root_path.cc: New test.
1006*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/decompose/stem.cc: New test.
1007*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/normal.cc: New test.
1008*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/proximate.cc: New test.
1009*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generation/relative.cc: New test.
1010*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/generic/generic_string.cc: New test.
1011*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/itr/traversal.cc: New test.
1012*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/clear.cc: New test.
1013*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: New
1014*14f5a3b0Smrg	test.
1015*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: New
1016*14f5a3b0Smrg	test.
1017*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: New
1018*14f5a3b0Smrg	test.
1019*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: New
1020*14f5a3b0Smrg	test.
1021*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/modifiers/swap.cc: New test.
1022*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/native/string.cc: New test.
1023*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: New test.
1024*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/empty.cc: New test.
1025*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_extension.cc: New test.
1026*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_filename.cc: New test.
1027*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: New test.
1028*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_relative_path.cc: New
1029*14f5a3b0Smrg	test.
1030*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_root_directory.cc: New
1031*14f5a3b0Smrg	test.
1032*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_root_name.cc: New test.
1033*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_root_path.cc: New test.
1034*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/has_stem.cc: New test.
1035*14f5a3b0Smrg	* testsuite/27_io/filesystem/path/query/is_relative.cc: New test.
1036*14f5a3b0Smrg	* testsuite/experimental/filesystem/path/construct/string_view.cc:
1037*14f5a3b0Smrg	Define USE_FILESYSTEM_TS.
1038*14f5a3b0Smrg	* testsuite/util/testsuite_fs.h: Allow use with C++17 paths as well
1039*14f5a3b0Smrg	as Filesystem TS.
1040*14f5a3b0Smrg
1041*14f5a3b0Smrg	PR libstdc++/82644
1042*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Include new section.
1043*14f5a3b0Smrg	* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
1044*14f5a3b0Smrg	status.
1045*14f5a3b0Smrg	* include/bits/specfun.h [__STRICT_ANSI__] (hyperg, hypergf, hypergl)
1046*14f5a3b0Smrg	(conf_hyperg, conf_hypergf, conf_hypergl): Don't declare.
1047*14f5a3b0Smrg	* include/c_compatibility/math.h: Import special functions into
1048*14f5a3b0Smrg	global namespace for C++17.
1049*14f5a3b0Smrg	* testsuite/26_numerics/headers/cmath/82644.cc: New test.
1050*14f5a3b0Smrg	* testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: New
1051*14f5a3b0Smrg	test.
1052*14f5a3b0Smrg
1053*14f5a3b0Smrg2017-10-21  Jonathan Wakely  <jwakely@redhat.com>
1054*14f5a3b0Smrg
1055*14f5a3b0Smrg	* testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
1056*14f5a3b0Smrg	increment past-the-end iterators.
1057*14f5a3b0Smrg
1058*14f5a3b0Smrg2017-10-20  Jonathan Wakely  <jwakely@redhat.com>
1059*14f5a3b0Smrg
1060*14f5a3b0Smrg	* include/std/chrono (__cpp_lib_chrono): Update macro value to
1061*14f5a3b0Smrg	indicate support for P0505R0.
1062*14f5a3b0Smrg	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
1063*14f5a3b0Smrg	for updated macro.
1064*14f5a3b0Smrg
1065*14f5a3b0Smrg	* include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
1066*14f5a3b0Smrg	* testsuite/18_support/byte/requirements.cc: Check macro.
1067*14f5a3b0Smrg
1068*14f5a3b0Smrg2017-10-19  Jonathan Wakely  <jwakely@redhat.com>
1069*14f5a3b0Smrg
1070*14f5a3b0Smrg	* testsuite/experimental/filesystem/iterators/
1071*14f5a3b0Smrg	recursive_directory_iterator.cc: Ensure that error_code arguments are
1072*14f5a3b0Smrg	cleared when required.
1073*14f5a3b0Smrg	* testsuite/experimental/filesystem/operations/create_directory.cc:
1074*14f5a3b0Smrg	Remove redundant check.
1075*14f5a3b0Smrg	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1076*14f5a3b0Smrg	Ensure that error_code argument is cleared when required.
1077*14f5a3b0Smrg
1078*14f5a3b0Smrg	* include/experimental/bits/fs_path.h (path::iterator++(int))
1079*14f5a3b0Smrg	(path::iterator--(int)): Fix for paths with only one component.
1080*14f5a3b0Smrg	* testsuite/experimental/filesystem/path/itr/traversal.cc: Test
1081*14f5a3b0Smrg	post-increment and post-decrement.
1082*14f5a3b0Smrg
1083*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update references to C++17
1084*14f5a3b0Smrg	section numbers.
1085*14f5a3b0Smrg
1086*14f5a3b0Smrg	* testsuite/decimal/conversion-to-integral.cc: Use predefined macro
1087*14f5a3b0Smrg	instead of non-standard glibc one.
1088*14f5a3b0Smrg
1089*14f5a3b0Smrg2017-10-16  François Dumont  <fdumont@gcc.gnu.org>
1090*14f5a3b0Smrg
1091*14f5a3b0Smrg	PR libstdc++/82558
1092*14f5a3b0Smrg	* include/bits/stl_bvector.h (fill): Add iterator offset check.
1093*14f5a3b0Smrg	* testsuite/23_containers/vector/bool/82558.cc: New.
1094*14f5a3b0Smrg
1095*14f5a3b0Smrg2017-10-13  Jonathan Wakely  <jwakely@redhat.com>
1096*14f5a3b0Smrg
1097*14f5a3b0Smrg	PR libstdc++/82522
1098*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Document LWG 2354 changes.
1099*14f5a3b0Smrg	* include/bits/stl_map.h (map::insert(value_type&&))
1100*14f5a3b0Smrg	(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1101*14f5a3b0Smrg	* include/bits/stl_multimap.h (multimap::insert(value_type&&))
1102*14f5a3b0Smrg	(multimap::insert(const_iterator, value_type&&)): Likewise.
1103*14f5a3b0Smrg	* include/bits/unordered_map.h (unordered_map::insert(value_type&&))
1104*14f5a3b0Smrg	(unordered_map::insert(const_iterator, value_type&&))
1105*14f5a3b0Smrg	(unordered_multimap::insert(value_type&&))
1106*14f5a3b0Smrg	(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1107*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
1108*14f5a3b0Smrg	* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
1109*14f5a3b0Smrg	test.
1110*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
1111*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
1112*14f5a3b0Smrg	test.
1113*14f5a3b0Smrg
1114*14f5a3b0Smrg	PR libstdc++/82481
1115*14f5a3b0Smrg	* include/std/mutex (call_once): Suppress clang-tidy warnings about
1116*14f5a3b0Smrg	dangling references.
1117*14f5a3b0Smrg
1118*14f5a3b0Smrg2017-10-10  Jonathan Wakely  <jwakely@redhat.com>
1119*14f5a3b0Smrg
1120*14f5a3b0Smrg	* include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
1121*14f5a3b0Smrg	Update comment about NAD issue.
1122*14f5a3b0Smrg
1123*14f5a3b0Smrg	PR libstdc++/59087
1124*14f5a3b0Smrg	PR libstdc++/82417
1125*14f5a3b0Smrg	* include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
1126*14f5a3b0Smrg	not include C library's <complex.h>.
1127*14f5a3b0Smrg	* testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
1128*14f5a3b0Smrg	* testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
1129*14f5a3b0Smrg	* testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
1130*14f5a3b0Smrg	* testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
1131*14f5a3b0Smrg
1132*14f5a3b0Smrg2017-10-05  Jonathan Wakely  <jwakely@redhat.com>
1133*14f5a3b0Smrg
1134*14f5a3b0Smrg	* testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
1135*14f5a3b0Smrg
1136*14f5a3b0Smrg2017-10-04  Petr Ovtchenkov  <ptr@void-ptr.info>
1137*14f5a3b0Smrg	    François Dumont  <fdumont@gcc.gnu.org>
1138*14f5a3b0Smrg
1139*14f5a3b0Smrg	* include/bits/streambuf_iterator.h
1140*14f5a3b0Smrg	(istreambuf_iterator<>::operator*()): Do not capture iterator state
1141*14f5a3b0Smrg	in Debug assertion.
1142*14f5a3b0Smrg	(istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
1143*14f5a3b0Smrg	(istreambuf_iterator<>::operator++(int)): Likewise.
1144*14f5a3b0Smrg	(istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
1145*14f5a3b0Smrg	(istreambuf_iterator<>::_S_is_eof()): New.
1146*14f5a3b0Smrg	(istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
1147*14f5a3b0Smrg	(find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
1148*14f5a3b0Smrg	Return an iterator with _M_c set to eof to capture streambuf state
1149*14f5a3b0Smrg	on evaluation.
1150*14f5a3b0Smrg	(testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
1151*14f5a3b0Smrg
1152*14f5a3b0Smrg2017-10-03  Jakub Jelinek  <jakub@redhat.com>
1153*14f5a3b0Smrg
1154*14f5a3b0Smrg	* include/std/charconv (__unsigned_least_t): Fix number of closing >s for
1155*14f5a3b0Smrg	!_GLIBCXX_USE_INT128.
1156*14f5a3b0Smrg
1157*14f5a3b0Smrg2017-10-02  Jonathan Wakely  <jwakely@redhat.com>
1158*14f5a3b0Smrg
1159*14f5a3b0Smrg	* include/Makefile.am: Add new <charconv> header.
1160*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
1161*14f5a3b0Smrg	* include/precompiled/stdc++.h: Include <charconv>.
1162*14f5a3b0Smrg	* include/std/charconv: New file.
1163*14f5a3b0Smrg	(to_chars_result, to_chars, from_chars_result, from_chars): Define.
1164*14f5a3b0Smrg	* testsuite/20_util/from_chars/1.cc: New test.
1165*14f5a3b0Smrg	* testsuite/20_util/from_chars/1_neg.cc: New test.
1166*14f5a3b0Smrg	* testsuite/20_util/from_chars/2.cc: New test.
1167*14f5a3b0Smrg	* testsuite/20_util/from_chars/requirements.cc: New test.
1168*14f5a3b0Smrg	* testsuite/20_util/to_chars/1.cc: New test.
1169*14f5a3b0Smrg	* testsuite/20_util/to_chars/1_neg.cc: New test.
1170*14f5a3b0Smrg	* testsuite/20_util/to_chars/2.cc: New test.
1171*14f5a3b0Smrg	* testsuite/20_util/to_chars/requirements.cc: New test.
1172*14f5a3b0Smrg
1173*14f5a3b0Smrg2017-09-27  François Dumont  <fdumont@gcc.gnu.org>
1174*14f5a3b0Smrg
1175*14f5a3b0Smrg	* testsuite/22_locale/money_get/get/char/22131.cc: Make test less
1176*14f5a3b0Smrg	istreambuf_iterator implementation dependent.
1177*14f5a3b0Smrg	* testsuite/22_locale/money_get/get/wchar_t/22131.cc: Likewise.
1178*14f5a3b0Smrg
1179*14f5a3b0Smrg2017-09-25  Uros Bizjak  <ubizjak@gmail.com>
1180*14f5a3b0Smrg
1181*14f5a3b0Smrg	PR c/81854
1182*14f5a3b0Smrg	* src/c++98/complex_io.cc (_GLIBCXX_LDBL_COMPAT): Declare alias
1183*14f5a3b0Smrg	target as a C++ function with no prototype.
1184*14f5a3b0Smrg
1185*14f5a3b0Smrg2017-09-21  Jonathan Wakely  <jwakely@redhat.com>
1186*14f5a3b0Smrg
1187*14f5a3b0Smrg	* testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
1188*14f5a3b0Smrg	expected results when using predicate defining reverse order.
1189*14f5a3b0Smrg	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1190*14f5a3b0Smrg
1191*14f5a3b0Smrg2017-09-20  Jonathan Wakely  <jwakely@redhat.com>
1192*14f5a3b0Smrg
1193*14f5a3b0Smrg	PR libstdc++/79162
1194*14f5a3b0Smrg	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1195*14f5a3b0Smrg	(basic_string::_If_sv): Remove from the overload set when the
1196*14f5a3b0Smrg	argument is derived from basic_string.
1197*14f5a3b0Smrg
1198*14f5a3b0Smrg	PR libstdc++/79162
1199*14f5a3b0Smrg	* include/bits/basic_string.h (basic_string::_If_sv): Remove from the
1200*14f5a3b0Smrg	overload set when the argument is derived from basic_string.
1201*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
1202*14f5a3b0Smrg	test.
1203*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1204*14f5a3b0Smrg	New test.
1205*14f5a3b0Smrg
1206*14f5a3b0Smrg	* testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1207*14f5a3b0Smrg	and dg-options directives. Fix invalid test.
1208*14f5a3b0Smrg
1209*14f5a3b0Smrg	PR libstdc++/81469
1210*14f5a3b0Smrg	* libsupc++/exception (uncaught_exception): Deprecate for C++17.
1211*14f5a3b0Smrg	* testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
1212*14f5a3b0Smrg	* testsuite/18_support/uncaught_exception/14026.cc: Likewise.
1213*14f5a3b0Smrg
1214*14f5a3b0Smrg	* include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
1215*14f5a3b0Smrg	* include/bits/functional_hash.h (__hash_base::result_type)
1216*14f5a3b0Smrg	(__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
1217*14f5a3b0Smrg	* include/std/optional (hash<optional<T>>::result_type)
1218*14f5a3b0Smrg	(hash<optional<T>>::argument_type): Add deprecated attribute.
1219*14f5a3b0Smrg	(__is_fast_hash<hash<optional<T>>>): Add partial specialization.
1220*14f5a3b0Smrg	* include/std/variant (hash<variant<Types...>>::result_type)
1221*14f5a3b0Smrg	(hash<variant<Types...>>::argument_type): Add deprecated attribute.
1222*14f5a3b0Smrg	(__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.
1223*14f5a3b0Smrg
1224*14f5a3b0Smrg	* libsupc++/exception_ptr.h (copy_exception): Remove deprecated
1225*14f5a3b0Smrg	non-standard function.
1226*14f5a3b0Smrg
1227*14f5a3b0Smrg	PR libstdc++/82262
1228*14f5a3b0Smrg	* include/std/optional (__optional_hash_call_base): Add template
1229*14f5a3b0Smrg	parameter for remove_const_t<_Tp> and use it consistently.
1230*14f5a3b0Smrg	* testsuite/20_util/optional/hash.cc: Test optional<const T>.
1231*14f5a3b0Smrg
1232*14f5a3b0Smrg2017-09-19  Jonathan Wakely  <jwakely@redhat.com>
1233*14f5a3b0Smrg
1234*14f5a3b0Smrg	PR libstdc++/71500
1235*14f5a3b0Smrg	* include/bits/regex_executor.tcc
1236*14f5a3b0Smrg	(_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
1237*14f5a3b0Smrg	std::__equal4 instead of C++14 4-iterator overloads of std::equal.
1238*14f5a3b0Smrg	* include/bits/stl_algobase.h (__equal4): New functions implementing
1239*14f5a3b0Smrg	4-iterator overloads of std::equal for use in C++11.
1240*14f5a3b0Smrg	(equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
1241*14f5a3b0Smrg	Move function bodies to new __equal4 functions.
1242*14f5a3b0Smrg	* testsuite/28_regex/simple_c++11.cc: New.
1243*14f5a3b0Smrg
1244*14f5a3b0Smrg	PR libstdc++/82254
1245*14f5a3b0Smrg	* include/std/type_traits (__is_invocable): Add partial specialization
1246*14f5a3b0Smrg	for INVOKE<void> case and remove is_void<R> check from partial
1247*14f5a3b0Smrg	specialization for INVOKE<R> case.
1248*14f5a3b0Smrg	(__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1249*14f5a3b0Smrg	(is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1250*14f5a3b0Smrg	* testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1251*14f5a3b0Smrg	conversions that can throw or fail to convert. Use static assert
1252*14f5a3b0Smrg	strings to explain negative results.
1253*14f5a3b0Smrg	* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1254*14f5a3b0Smrg	is_nothrow_constructible in is_nt_invocable_conv.
1255*14f5a3b0Smrg
1256*14f5a3b0Smrg2017-09-18  Jonathan Wakely  <jwakely@redhat.com>
1257*14f5a3b0Smrg
1258*14f5a3b0Smrg	PR libstdc++/81468
1259*14f5a3b0Smrg	* testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
1260*14f5a3b0Smrg	improve static assertion messages.
1261*14f5a3b0Smrg
1262*14f5a3b0Smrg	* include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
1263*14f5a3b0Smrg	(_Build_index_tuple, make_integer_sequence): Use built-in to generate
1264*14f5a3b0Smrg	pack expansion.
1265*14f5a3b0Smrg
1266*14f5a3b0Smrg	PR libstdc++/71187
1267*14f5a3b0Smrg	* include/std/type_traits (__declval): New function to deduce return
1268*14f5a3b0Smrg	type of declval.
1269*14f5a3b0Smrg	(__declval_protector::_delegate): Remove.
1270*14f5a3b0Smrg	(declval): Use __declval instead of add_rvalue_reference and
1271*14f5a3b0Smrg	__declval_protector::__delegate.
1272*14f5a3b0Smrg	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1273*14f5a3b0Smrg	lineno.
1274*14f5a3b0Smrg	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
1275*14f5a3b0Smrg	Likewise.
1276*14f5a3b0Smrg	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1277*14f5a3b0Smrg	Likewise.
1278*14f5a3b0Smrg
1279*14f5a3b0Smrg2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1280*14f5a3b0Smrg
1281*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or
1282*14f5a3b0Smrg	-std=gnu++17 instead of -std=c++1z or -std=gnu++1z.  Use c++17 instead
1283*14f5a3b0Smrg	of c++1z and c++17_only instead of c++1z_only.  Adjust expected
1284*14f5a3b0Smrg	diagnostics and comments refering to 1z to 17.
1285*14f5a3b0Smrg	* testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1286*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1287*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1288*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1289*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1290*14f5a3b0Smrg	Likewise.
1291*14f5a3b0Smrg	* testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1292*14f5a3b0Smrg	* testsuite/18_support/launder/1.cc (test02): Likewise.
1293*14f5a3b0Smrg	* testsuite/18_support/launder/requirements_neg.cc: Likewise.
1294*14f5a3b0Smrg	* testsuite/18_support/launder/requirements.cc: Likewise.
1295*14f5a3b0Smrg	* testsuite/18_support/byte/requirements.cc: Likewise.
1296*14f5a3b0Smrg	* testsuite/18_support/byte/ops.cc: Likewise.
1297*14f5a3b0Smrg	* testsuite/18_support/byte/global_neg.cc: Likewise.
1298*14f5a3b0Smrg	* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1299*14f5a3b0Smrg	Likewise.
1300*14f5a3b0Smrg	* testsuite/27_io/types/4.cc: Likewise.
1301*14f5a3b0Smrg	* testsuite/25_algorithms/sample/81221.cc: Likewise.
1302*14f5a3b0Smrg	* testsuite/25_algorithms/sample/1.cc: Likewise.
1303*14f5a3b0Smrg	* testsuite/25_algorithms/sample/2.cc: Likewise.
1304*14f5a3b0Smrg	* testsuite/25_algorithms/search/searcher.cc: Likewise.
1305*14f5a3b0Smrg	* testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1306*14f5a3b0Smrg	* testsuite/experimental/filesystem/path/construct/string_view.cc:
1307*14f5a3b0Smrg	Likewise.
1308*14f5a3b0Smrg	* testsuite/24_iterators/range_access_cpp17.cc: Likewise.
1309*14f5a3b0Smrg	* testsuite/24_iterators/container_access.cc: Likewise.
1310*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1311*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1312*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1313*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1314*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1315*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1316*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1317*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1318*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1319*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1320*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1321*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
1322*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise.
1323*14f5a3b0Smrg	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
1324*14f5a3b0Smrg	* testsuite/20_util/variant/deduction.cc: Likewise.
1325*14f5a3b0Smrg	* testsuite/20_util/tuple/78939.cc: Likewise.
1326*14f5a3b0Smrg	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1327*14f5a3b0Smrg	* testsuite/20_util/void_t/1.cc: Likewise.
1328*14f5a3b0Smrg	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise.
1329*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1330*14f5a3b0Smrg	* testsuite/20_util/addressof/requirements/constexpr.cc: Likewise.
1331*14f5a3b0Smrg	* testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1332*14f5a3b0Smrg	* testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1333*14f5a3b0Smrg	Likewise.
1334*14f5a3b0Smrg	* testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1335*14f5a3b0Smrg	Likewise.
1336*14f5a3b0Smrg	* testsuite/20_util/has_unique_object_representations/value.cc:
1337*14f5a3b0Smrg	Likewise.
1338*14f5a3b0Smrg	* testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise.
1339*14f5a3b0Smrg	* testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1340*14f5a3b0Smrg	* testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1341*14f5a3b0Smrg	* testsuite/20_util/function/cons/deduction.cc: Likewise.
1342*14f5a3b0Smrg	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1343*14f5a3b0Smrg	Likewise.
1344*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
1345*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1346*14f5a3b0Smrg	Likewise.
1347*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/value.cc: Likewise.
1348*14f5a3b0Smrg	* testsuite/26_numerics/lcm/1.cc: Likewise.
1349*14f5a3b0Smrg	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1350*14f5a3b0Smrg	* testsuite/26_numerics/gcd/1.cc: Likewise.
1351*14f5a3b0Smrg	* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1352*14f5a3b0Smrg	* testsuite/26_numerics/valarray/deduction.cc: Likewise.
1353*14f5a3b0Smrg	* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise.
1354*14f5a3b0Smrg	* testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1355*14f5a3b0Smrg	* testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1356*14f5a3b0Smrg	Likewise.
1357*14f5a3b0Smrg	* testsuite/23_containers/array/cons/deduction.cc: Likewise.
1358*14f5a3b0Smrg	* testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1359*14f5a3b0Smrg	* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1360*14f5a3b0Smrg	Likewise.
1361*14f5a3b0Smrg	* testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1362*14f5a3b0Smrg	* testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1363*14f5a3b0Smrg	Likewise.
1364*14f5a3b0Smrg	* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1365*14f5a3b0Smrg	Likewise.
1366*14f5a3b0Smrg	* testsuite/23_containers/list/cons/deduction.cc: Likewise.
1367*14f5a3b0Smrg	* testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1368*14f5a3b0Smrg	Likewise.
1369*14f5a3b0Smrg	* testsuite/23_containers/forward_list/cons/deduction.cc: Likewise.
1370*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise.
1371*14f5a3b0Smrg	* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1372*14f5a3b0Smrg	Likewise.
1373*14f5a3b0Smrg	* testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1374*14f5a3b0Smrg	* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1375*14f5a3b0Smrg	Likewise.
1376*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1377*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise.
1378*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise.
1379*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1380*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1381*14f5a3b0Smrg	Likewise.
1382*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise.
1383*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1384*14f5a3b0Smrg	Likewise.
1385*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1386*14f5a3b0Smrg	Likewise.
1387*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1388*14f5a3b0Smrg	Likewise.
1389*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1390*14f5a3b0Smrg	Likewise.
1391*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1392*14f5a3b0Smrg	Likewise.
1393*14f5a3b0Smrg	* testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1394*14f5a3b0Smrg	Likewise.
1395*14f5a3b0Smrg
1396*14f5a3b0Smrg2017-09-13  Jonathan Wakely  <jwakely@redhat.com>
1397*14f5a3b0Smrg
1398*14f5a3b0Smrg	PR libstdc++/81468
1399*14f5a3b0Smrg	* include/std/chrono (__enable_if_is_duration)
1400*14f5a3b0Smrg	(__disable_if_is_duration): New alias templates to simplify SFINAE.
1401*14f5a3b0Smrg	(duration_cast, floor, ceil): Use __enable_if_is_duration.
1402*14f5a3b0Smrg	(duration::__is_float, duration::__is_harmonic): New alias templates
1403*14f5a3b0Smrg	to simplify SFINAE.
1404*14f5a3b0Smrg	(duration::duration(const _Rep2&)): Use _Require, __is_float and
1405*14f5a3b0Smrg	__is_harmonic.
1406*14f5a3b0Smrg	(duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
1407*14f5a3b0Smrg	(__common_rep_type): Remove, replace with ...
1408*14f5a3b0Smrg	(__common_rep_t): New alias template.
1409*14f5a3b0Smrg	(operator*, operator/, operator%): Use __common_rep_t and
1410*14f5a3b0Smrg	__disable_if_is_duration.
1411*14f5a3b0Smrg	(time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
1412*14f5a3b0Smrg	constraint from LWG DR 1177.
1413*14f5a3b0Smrg	* testsuite/20_util/duration/cons/dr1177.cc: New.
1414*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1415*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1416*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1417*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1418*14f5a3b0Smrg	* testsuite/20_util/time_point/cons/81468.cc: New.
1419*14f5a3b0Smrg
1420*14f5a3b0Smrg	* doc/doxygen/mainpage.html: Fix broken URLs.
1421*14f5a3b0Smrg
1422*14f5a3b0Smrg	PR libstdc++/81835
1423*14f5a3b0Smrg	* doc/xml/manual/extensions.xml: Replace unstable URL.
1424*14f5a3b0Smrg	* doc/html/manual/ext_demangling.html: Regenerate.
1425*14f5a3b0Smrg	* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1426*14f5a3b0Smrg
1427*14f5a3b0Smrg	* include/bits/allocated_ptr.h (__allocated_ptr::get): Use
1428*14f5a3b0Smrg	__to_address.
1429*14f5a3b0Smrg	(__allocated_ptr::_S_raw_ptr): Remove.
1430*14f5a3b0Smrg	* include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
1431*14f5a3b0Smrg	__to_address.
1432*14f5a3b0Smrg	* include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
1433*14f5a3b0Smrg	* include/bits/ptr_traits.h (__to_address): Define new function
1434*14f5a3b0Smrg	template.
1435*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
1436*14f5a3b0Smrg	(__shared_ptr::_S_raw_ptr): Remove.
1437*14f5a3b0Smrg	* include/bits/stl_vector.h [__cplusplus >= 201103L]
1438*14f5a3b0Smrg	(vector::_M_data_ptr): Use __to_address.
1439*14f5a3b0Smrg	[__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
1440*14f5a3b0Smrg	possibly invalid pointers.
1441*14f5a3b0Smrg	* include/ext/alloc_traits.h (__alloc_traits::construct)
1442*14f5a3b0Smrg	(__alloc_traits::destroy): Use __to_address.
1443*14f5a3b0Smrg
1444*14f5a3b0Smrg2017-09-12  Jonathan Wakely  <jwakely@redhat.com>
1445*14f5a3b0Smrg
1446*14f5a3b0Smrg	PR libstdc++/79433
1447*14f5a3b0Smrg	* include/Makefile.am: Remove <bits/c++14_warning.h>.
1448*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
1449*14f5a3b0Smrg	* include/bits/c++14_warning.h: Remove.
1450*14f5a3b0Smrg	* include/experimental/algorithm: Do not include <c++14_warning.h>.
1451*14f5a3b0Smrg	* include/experimental/any: Likewise.
1452*14f5a3b0Smrg	* include/experimental/array: Likewise.
1453*14f5a3b0Smrg	* include/experimental/bits/erase_if.h: Likewise.
1454*14f5a3b0Smrg	* include/experimental/bits/lfts_config.h: Likewise.
1455*14f5a3b0Smrg	* include/experimental/bits/shared_ptr.h: Likewise.
1456*14f5a3b0Smrg	* include/experimental/bits/string_view.tcc: Likewise.
1457*14f5a3b0Smrg	* include/experimental/chrono: Likewise.
1458*14f5a3b0Smrg	* include/experimental/deque: Likewise.
1459*14f5a3b0Smrg	* include/experimental/filesystem: Do not include <c++0x_warning.h>.
1460*14f5a3b0Smrg	* include/experimental/forward_list: Do not include <c++14_warning.h>.
1461*14f5a3b0Smrg	* include/experimental/functional: Likewise.
1462*14f5a3b0Smrg	* include/experimental/iterator: Likewise.
1463*14f5a3b0Smrg	* include/experimental/list: Likewise.
1464*14f5a3b0Smrg	* include/experimental/map: Likewise.
1465*14f5a3b0Smrg	* include/experimental/memory: Likewise.
1466*14f5a3b0Smrg	* include/experimental/numeric: Likewise.
1467*14f5a3b0Smrg	* include/experimental/optional: Likewise.
1468*14f5a3b0Smrg	* include/experimental/propagate_const: Likewise.
1469*14f5a3b0Smrg	* include/experimental/ratio: Likewise.
1470*14f5a3b0Smrg	* include/experimental/regex: Likewise.
1471*14f5a3b0Smrg	* include/experimental/set: Likewise.
1472*14f5a3b0Smrg	* include/experimental/string: Likewise.
1473*14f5a3b0Smrg	* include/experimental/string_view: Likewise.
1474*14f5a3b0Smrg	* include/experimental/system_error: Likewise.
1475*14f5a3b0Smrg	* include/experimental/tuple: Likewise.
1476*14f5a3b0Smrg	* include/experimental/type_traits: Likewise.
1477*14f5a3b0Smrg	* include/experimental/unordered_map: Likewise.
1478*14f5a3b0Smrg	* include/experimental/unordered_set: Likewise.
1479*14f5a3b0Smrg	* include/experimental/vector: Likewise.
1480*14f5a3b0Smrg	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
1481*14f5a3b0Smrg	line number.
1482*14f5a3b0Smrg	* testsuite/experimental/array/neg.cc: Likewise.
1483*14f5a3b0Smrg	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
1484*14f5a3b0Smrg	Likewise.
1485*14f5a3b0Smrg	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
1486*14f5a3b0Smrg	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
1487*14f5a3b0Smrg	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
1488*14f5a3b0Smrg	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
1489*14f5a3b0Smrg	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
1490*14f5a3b0Smrg
1491*14f5a3b0Smrg	PR libstdc++/79433
1492*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1493*14f5a3b0Smrg	* doc/html/*: Regenerate.
1494*14f5a3b0Smrg	* include/Makefile.am: Remove <bits/c++17_warning.h>.
1495*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
1496*14f5a3b0Smrg	* include/bits/c++17_warning.h: Remove.
1497*14f5a3b0Smrg	* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1498*14f5a3b0Smrg	for pre-C++17 modes.
1499*14f5a3b0Smrg	* include/std/any: Likewise.
1500*14f5a3b0Smrg	(__cpp_lib_any): Define.
1501*14f5a3b0Smrg	* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1502*14f5a3b0Smrg	SD-6 draft.
1503*14f5a3b0Smrg	* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1504*14f5a3b0Smrg	draft.
1505*14f5a3b0Smrg	* include/std/optional: Do not include <bits/c++17_warning.h>.
1506*14f5a3b0Smrg	(__cpp_lib_optional): Define.
1507*14f5a3b0Smrg	* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1508*14f5a3b0Smrg	* include/std/string_view: Do not include <bits/c++17_warning.h>.
1509*14f5a3b0Smrg	(__cpp_lib_string_view): Define.
1510*14f5a3b0Smrg	* include/std/variant: Do not include <bits/c++17_warning.h>.
1511*14f5a3b0Smrg	(__cpp_lib_variant): Define.
1512*14f5a3b0Smrg	* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1513*14f5a3b0Smrg	numbers.
1514*14f5a3b0Smrg	* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1515*14f5a3b0Smrg	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1516*14f5a3b0Smrg	numbers.
1517*14f5a3b0Smrg	* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1518*14f5a3b0Smrg	* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1519*14f5a3b0Smrg	numbers.
1520*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1521*14f5a3b0Smrg	expected value of __cpp_lib_scoped_lock.
1522*14f5a3b0Smrg
1523*14f5a3b0Smrg	PR libstdc++/70483
1524*14f5a3b0Smrg	* include/experimental/bits/string_view.tcc (basic_string_view::find)
1525*14f5a3b0Smrg	(basic_string_view::rfind, basic_string_view::find_first_of)
1526*14f5a3b0Smrg	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1527*14f5a3b0Smrg	(basic_string_view::find_last_not_of): Add constexpr specifier.
1528*14f5a3b0Smrg	* include/experimental/string_view (basic_string_view::remove_prefix)
1529*14f5a3b0Smrg	(basic_string_view::remove_suffix, basic_string_view::swap)
1530*14f5a3b0Smrg	(basic_string_view::compare, basic_string_view::find)
1531*14f5a3b0Smrg	(basic_string_view::rfind, basic_string_view::find_first_of)
1532*14f5a3b0Smrg	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1533*14f5a3b0Smrg	(basic_string_view::find_last_not_of, operator==, operator!=)
1534*14f5a3b0Smrg	(operator<, operator>, operator<=, operator>=): Likewise.
1535*14f5a3b0Smrg	* testsuite/experimental/string_view/operations/compare/char/70483.cc:
1536*14f5a3b0Smrg	New.
1537*14f5a3b0Smrg
1538*14f5a3b0Smrg2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1539*14f5a3b0Smrg
1540*14f5a3b0Smrg	PR libstdc++/70483
1541*14f5a3b0Smrg	* include/bits/string_view.tcc (basic_string_view::find)
1542*14f5a3b0Smrg	(basic_string_view::rfind, basic_string_view::find_first_of)
1543*14f5a3b0Smrg	(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1544*14f5a3b0Smrg	(basic_string_view::find_last_not_of): Add constexpr specifier.
1545*14f5a3b0Smrg	* include/std/string_view (basic_string_view::operator=)
1546*14f5a3b0Smrg	(basic_string_view::rbegin, basic_string_view::rend)
1547*14f5a3b0Smrg	(basic_string_view::crbegin, basic_string_view::crend)
1548*14f5a3b0Smrg	(basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1549*14f5a3b0Smrg	(basic_string_view::swap, basic_string_view::compare)
1550*14f5a3b0Smrg	(basic_string_view::find, basic_string_view::rfind)
1551*14f5a3b0Smrg	(basic_string_view::find_first_of, basic_string_view::find_last_of)
1552*14f5a3b0Smrg	(basic_string_view::find_first_not_of)
1553*14f5a3b0Smrg	(basic_string_view::find_last_not_of, basic_string_view::_M_check)
1554*14f5a3b0Smrg	(basic_string_view::_M_limit, operator==, operator!=, operator<)
1555*14f5a3b0Smrg	(operator>, operator<=, operator>=): Likewise.
1556*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1557*14f5a3b0Smrg	char/1.cc: Repeat tests in constexpr context.
1558*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1559*14f5a3b0Smrg	wchar_t/1.cc: Likewise.
1560*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1561*14f5a3b0Smrg	char/1.cc: Likewise.
1562*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1563*14f5a3b0Smrg	wchar_t/1.cc: Likewise.
1564*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1565*14f5a3b0Smrg	Likewise.
1566*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1567*14f5a3b0Smrg	Likewise.
1568*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1569*14f5a3b0Smrg	Likewise.
1570*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1571*14f5a3b0Smrg	Likewise.
1572*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1573*14f5a3b0Smrg	Likewise.
1574*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1575*14f5a3b0Smrg	Likewise.
1576*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
1577*14f5a3b0Smrg	Likewise.
1578*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1579*14f5a3b0Smrg	Likewise.
1580*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1581*14f5a3b0Smrg	cbegin, cend, rbegin, rend, crbegin and crend.
1582*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1583*14f5a3b0Smrg	Likewise.
1584*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1585*14f5a3b0Smrg	Remove trailing whitespace.
1586*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1587*14f5a3b0Smrg	1.cc: Likewise.
1588*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1589*14f5a3b0Smrg	New.
1590*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1591*14f5a3b0Smrg	New.
1592*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1593*14f5a3b0Smrg	New.
1594*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1595*14f5a3b0Smrg	2.cc: New.
1596*14f5a3b0Smrg
1597*14f5a3b0Smrg2017-09-11  Tim Shen  <timshen@google.com>
1598*14f5a3b0Smrg
1599*14f5a3b0Smrg	PR libstdc++/71500
1600*14f5a3b0Smrg	* include/bits/regex_executor.tcc: Support icase in regex_traits<...>
1601*14f5a3b0Smrg	for back reference matches.
1602*14f5a3b0Smrg	* testsuite/28_regex/regression.cc: Test case.
1603*14f5a3b0Smrg
1604*14f5a3b0Smrg2017-09-11  Jonathan Wakely  <jwakely@redhat.com>
1605*14f5a3b0Smrg
1606*14f5a3b0Smrg	* testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
1607*14f5a3b0Smrg	compatibility with old COW std::string.
1608*14f5a3b0Smrg
1609*14f5a3b0Smrg2017-09-09  Gerald Pfeifer  <gerald@pfeifer.com>
1610*14f5a3b0Smrg
1611*14f5a3b0Smrg	* doc/xml/manual/allocator.xml: Adjust link for Hoard.
1612*14f5a3b0Smrg	* doc/html/manual/memory.html: Regenerate.
1613*14f5a3b0Smrg
1614*14f5a3b0Smrg2017-09-04  Daniel Kruegler  <daniel.kruegler@gmail.com>
1615*14f5a3b0Smrg
1616*14f5a3b0Smrg	PR libstdc++/79162
1617*14f5a3b0Smrg	Implement LWG 2946, LWG 2758's resolution missed further corrections
1618*14f5a3b0Smrg	* include/bits/basic_string.h (basic_string::compare): Add missing
1619*14f5a3b0Smrg	required noexcept specifications.
1620*14f5a3b0Smrg	(basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1621*14f5a3b0Smrg	for implicit string_view conversion.
1622*14f5a3b0Smrg	(basic_string::basic_string): Fix explicit string_view conversion by
1623*14f5a3b0Smrg	implicit conversion using _S_to_string_view and __sv_wrapper.
1624*14f5a3b0Smrg	(basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1625*14f5a3b0Smrg	constructor.
1626*14f5a3b0Smrg	(basic_string): Fix operator=(T) template by operator=(const T&)
1627*14f5a3b0Smrg	template for uncopyable types (PR 79162).
1628*14f5a3b0Smrg	(basic_string::operator+=, basic_string::append, basic_string::assign)
1629*14f5a3b0Smrg	(basic_string::insert, basic_string::replace, basic_string::find)
1630*14f5a3b0Smrg	(basic_string::rfind, basic_string::find_first_of)
1631*14f5a3b0Smrg	(basic_string::find_last_of, basic_string::find_first_not_of)
1632*14f5a3b0Smrg	(basic_string::find_last_not_of, basic_string::compare): Replace
1633*14f5a3b0Smrg	__sv_type argument by template const T& (LWG 2946) and correct
1634*14f5a3b0Smrg	documentation describing __sv_type argument.
1635*14f5a3b0Smrg	(basic_string::find, basic_string::rfind, basic_string::find_first_of)
1636*14f5a3b0Smrg	(basic_string::find_last_of, basic_string::find_first_not_of)
1637*14f5a3b0Smrg	(basic_string::find_last_not_of, basic_string::compare): Replace
1638*14f5a3b0Smrg	unconditional noexcept specification by conditional noexcept
1639*14f5a3b0Smrg	specification to partially balance the removal of noexcept by LWG 2946.
1640*14f5a3b0Smrg	* testsuite/21_strings/basic_string/79162.cc: New.
1641*14f5a3b0Smrg	* testsuite/21_strings/basic_string/lwg2946.cc: New.
1642*14f5a3b0Smrg
1643*14f5a3b0Smrg2017-08-31  Jonathan Wakely  <jwakely@redhat.com>
1644*14f5a3b0Smrg
1645*14f5a3b0Smrg	PR c++/82039
1646*14f5a3b0Smrg	* include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1647*14f5a3b0Smrg	Adjust null pointer constant to avoid warning.
1648*14f5a3b0Smrg
1649*14f5a3b0Smrg2017-08-24  François Dumont  <fdumont@gcc.gnu.org>
1650*14f5a3b0Smrg
1651*14f5a3b0Smrg	* include/bits/stl_list.h
1652*14f5a3b0Smrg	[!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
1653*14f5a3b0Smrg	(_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
1654*14f5a3b0Smrg	(_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
1655*14f5a3b0Smrg	[!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
1656*14f5a3b0Smrg	Remove.
1657*14f5a3b0Smrg	(_List_base(_Node_alloc_type&&)): New.
1658*14f5a3b0Smrg	[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
1659*14f5a3b0Smrg	[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
1660*14f5a3b0Smrg	(list<>::_M_node_count): New.
1661*14f5a3b0Smrg	(list<>::size()): Adapt to call latter.
1662*14f5a3b0Smrg	(list<>::_S_distance(const_iterator, const_iterator)): New.
1663*14f5a3b0Smrg	(list<>::splice(iterator, list&, const_iterator, const_iterator)):
1664*14f5a3b0Smrg	Adapt to call latter.
1665*14f5a3b0Smrg	(list(list&&, const allocator_type&, true_type)): New.
1666*14f5a3b0Smrg	(list(list&&, const allocator_type&, false_type)): New.
1667*14f5a3b0Smrg	(list(list&&, const allocator_type&)): Adapt to call latters.
1668*14f5a3b0Smrg
1669*14f5a3b0Smrg2017-08-21  Jonathan Wakely  <jwakely@redhat.com>
1670*14f5a3b0Smrg
1671*14f5a3b0Smrg	PR libstdc++/81912
1672*14f5a3b0Smrg	* include/bits/stl_iterator_base_types.h (__iterator_category): Add
1673*14f5a3b0Smrg	constexpr for C++11 and later.
1674*14f5a3b0Smrg	* testsuite/24_iterators/container_access.cc: Add target selector.
1675*14f5a3b0Smrg	* testsuite/24_iterators/range_access.cc: Fix clause number in
1676*14f5a3b0Smrg	comment.
1677*14f5a3b0Smrg	* testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1678*14f5a3b0Smrg	* testsuite/24_iterators/range_access_cpp17.cc: New.
1679*14f5a3b0Smrg
1680*14f5a3b0Smrg2017-08-21  Richard Biener  <rguenther@suse.de>
1681*14f5a3b0Smrg
1682*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Run all
1683*14f5a3b0Smrg	tests with -flto as well if supported.
1684*14f5a3b0Smrg
1685*14f5a3b0Smrg2017-08-20  Martin Sebor  <msebor@redhat.com>
1686*14f5a3b0Smrg
1687*14f5a3b0Smrg	PR c/81854
1688*14f5a3b0Smrg	* src/c++98/compatibility.cc (_GLIBCXX_3_4_SYMVER): Declare alias
1689*14f5a3b0Smrg	target as a C++ function with no prototype.
1690*14f5a3b0Smrg	(_GLIBCXX_3_4_5_SYMVER): Ditto.
1691*14f5a3b0Smrg
1692*14f5a3b0Smrg2017-08-20  John David Anglin  <danglin@gcc.gnu.org>
1693*14f5a3b0Smrg
1694*14f5a3b0Smrg	PR testsuite/81056
1695*14f5a3b0Smrg	* testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1696*14f5a3b0Smrg
1697*14f5a3b0Smrg2017-08-18  Jonathan Wakely  <jwakely@redhat.com>
1698*14f5a3b0Smrg
1699*14f5a3b0Smrg	* include/bits/hashtable_policy.h (_ReuseOrAllocNode): Remove
1700*14f5a3b0Smrg	__value_alloc_type and __value_alloc_traits typedefs.
1701*14f5a3b0Smrg	(_ReuseOrAllocNode::operator()): Call construct and destroy on the
1702*14f5a3b0Smrg	node allocator.
1703*14f5a3b0Smrg	(_Hashtable_alloc): Simplify __value_alloc_traits typedef.
1704*14f5a3b0Smrg	(_Hashtable_alloc<_NodeAlloc>::_M_allocate_node(_Args&&...)): Call
1705*14f5a3b0Smrg	construct on the node allocator.
1706*14f5a3b0Smrg	(_Hashtable_alloc<_NodeAlloc>::_M_deallocate_node(__node_type*)): Call
1707*14f5a3b0Smrg	destroy on the node allocator.
1708*14f5a3b0Smrg
1709*14f5a3b0Smrg	PR libstdc++/81891
1710*14f5a3b0Smrg	* include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1711*14f5a3b0Smrg	size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1712*14f5a3b0Smrg	const _ExtractKey&, const allocator_type&)): Let destructor do clean
1713*14f5a3b0Smrg	up if an exception is thrown.
1714*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/cons/81891.cc: New.
1715*14f5a3b0Smrg
1716*14f5a3b0Smrg2017-08-11  Jonathan Wakely  <jwakely@redhat.com>
1717*14f5a3b0Smrg
1718*14f5a3b0Smrg	PR libstdc++/81808
1719*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
1720*14f5a3b0Smrg	that allow opening a directory as a FILE and reading from it.
1721*14f5a3b0Smrg
1722*14f5a3b0Smrg2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1723*14f5a3b0Smrg
1724*14f5a3b0Smrg	* include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1725*14f5a3b0Smrg	Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1726*14f5a3b0Smrg	__is_identifier to set it.
1727*14f5a3b0Smrg
1728*14f5a3b0Smrg2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>
1729*14f5a3b0Smrg
1730*14f5a3b0Smrg	* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1731*14f5a3b0Smrg	__is_identifier instead of __has_builtin.
1732*14f5a3b0Smrg
1733*14f5a3b0Smrg2017-08-09  Jonathan Wakely  <jwakely@redhat.com>
1734*14f5a3b0Smrg
1735*14f5a3b0Smrg	PR libstdc++/79820
1736*14f5a3b0Smrg	PR libstdc++/81751
1737*14f5a3b0Smrg	* config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1738*14f5a3b0Smrg	Call fflush on the stream instead of calling sync() while _M_cfile is
1739*14f5a3b0Smrg	null. Restore original value of errno.
1740*14f5a3b0Smrg	* testsuite/ext/stdio_filebuf/char/79820.cc: New.
1741*14f5a3b0Smrg	* testsuite/ext/stdio_filebuf/char/81751.cc: New.
1742*14f5a3b0Smrg
1743*14f5a3b0Smrg2017-07-31  Marek Polacek  <polacek@redhat.com>
1744*14f5a3b0Smrg
1745*14f5a3b0Smrg	PR libstdc++/81599
1746*14f5a3b0Smrg	* include/bits/stl_stack.h: Fix typo.
1747*14f5a3b0Smrg
1748*14f5a3b0Smrg2017-07-26  Jonathan Wakely  <jwakely@redhat.com>
1749*14f5a3b0Smrg
1750*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/53984.cc: Fix test.
1751*14f5a3b0Smrg
1752*14f5a3b0Smrg2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>
1753*14f5a3b0Smrg
1754*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
1755*14f5a3b0Smrg	directive.
1756*14f5a3b0Smrg
1757*14f5a3b0Smrg2017-07-25  Jonathan Wakely  <jwakely@redhat.com>
1758*14f5a3b0Smrg
1759*14f5a3b0Smrg	PR libstdc++/53984
1760*14f5a3b0Smrg	* include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1761*14f5a3b0Smrg	* include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1762*14f5a3b0Smrg	during construction.
1763*14f5a3b0Smrg	* include/std/istream: Adjust comments for formatted input functions
1764*14f5a3b0Smrg	and unformatted input functions.
1765*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/53984.cc: New.
1766*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1767*14f5a3b0Smrg
1768*14f5a3b0Smrg	* include/bits/ios_base.h (ios_base::io_state, ios_base::open_mode)
1769*14f5a3b0Smrg	(ios_base::seek_dir): Remove for C++17.
1770*14f5a3b0Smrg	* include/std/streambuf (basic_streambuf::stossc): Remove for C++17.
1771*14f5a3b0Smrg	Add deprecated attribute for C++11 and C++14.
1772*14f5a3b0Smrg	* testsuite/27_io/types/1.cc: Don't run for C++17 and later.
1773*14f5a3b0Smrg	* testsuite/27_io/types/4.cc: New.
1774*14f5a3b0Smrg
1775*14f5a3b0Smrg2017-07-23  Michael Collison  <michael.collison@arm.com>
1776*14f5a3b0Smrg
1777*14f5a3b0Smrg	Add optimized implementation of mersenne twister for aarch64
1778*14f5a3b0Smrg	* config/cpu/aarch64/opt/ext/opt_random.h: New file.
1779*14f5a3b0Smrg	(__arch64_recursion): New function.
1780*14f5a3b0Smrg	(__aarch64_lsr_128): New function.
1781*14f5a3b0Smrg	(__aarch64_lsl_128): New function.
1782*14f5a3b0Smrg	(operator==): New function.
1783*14f5a3b0Smrg	(simd_fast_mersenne_twister_engine): Implement
1784*14f5a3b0Smrg	method _M_gen_rand.
1785*14f5a3b0Smrg	* config/cpu/aarch64/opt/bits/opt_random.h: New file.
1786*14f5a3b0Smrg	* include/ext/random: (simd_fast_mersenne_twister_engine):
1787*14f5a3b0Smrg	add _M_state private array.
1788*14f5a3b0Smrg
1789*14f5a3b0Smrg2017-07-23  François Dumont  <fdumont@gcc.gnu.org>
1790*14f5a3b0Smrg
1791*14f5a3b0Smrg	PR libstdc++/81064
1792*14f5a3b0Smrg	* include/bits/algorithmfwd.h: Reorganize versioned namespace.
1793*14f5a3b0Smrg	* include/bits/basic_string.h: Likewise.
1794*14f5a3b0Smrg	* include/bits/c++config: Likewise.
1795*14f5a3b0Smrg	* include/bits/deque.tcc: Likewise.
1796*14f5a3b0Smrg	* include/bits/forward_list.h: Likewise.
1797*14f5a3b0Smrg	* include/bits/forward_list.tcc: Likewise.
1798*14f5a3b0Smrg	* include/bits/hashtable_policy.h: Likewise.
1799*14f5a3b0Smrg	* include/bits/list.tcc: Likewise.
1800*14f5a3b0Smrg	* include/bits/move.h: Likewise.
1801*14f5a3b0Smrg	* include/bits/quoted_string.h: Likewise.
1802*14f5a3b0Smrg	* include/bits/random.h: Likewise.
1803*14f5a3b0Smrg	* include/bits/random.tcc: Likewise.
1804*14f5a3b0Smrg	* include/bits/regex.h: Likewise.
1805*14f5a3b0Smrg	* include/bits/regex.tcc: Likewise.
1806*14f5a3b0Smrg	* include/bits/regex_automaton.h: Likewise.
1807*14f5a3b0Smrg	* include/bits/regex_automaton.tcc: Likewise.
1808*14f5a3b0Smrg	* include/bits/regex_compiler.h: Likewise.
1809*14f5a3b0Smrg	* include/bits/regex_compiler.tcc: Likewise.
1810*14f5a3b0Smrg	* include/bits/regex_constants.h: Likewise.
1811*14f5a3b0Smrg	* include/bits/regex_error.h: Likewise.
1812*14f5a3b0Smrg	* include/bits/regex_executor.h: Likewise.
1813*14f5a3b0Smrg	* include/bits/regex_executor.tcc: Likewise.
1814*14f5a3b0Smrg	* include/bits/regex_scanner.h: Likewise.
1815*14f5a3b0Smrg	* include/bits/regex_scanner.tcc: Likewise.
1816*14f5a3b0Smrg	* include/bits/specfun.h: Likewise.
1817*14f5a3b0Smrg	* include/bits/stl_algo.h: Likewise.
1818*14f5a3b0Smrg	* include/bits/stl_algobase.h: Likewise.
1819*14f5a3b0Smrg	* include/bits/stl_bvector.h: Likewise.
1820*14f5a3b0Smrg	* include/bits/stl_deque.h: Likewise.
1821*14f5a3b0Smrg	* include/bits/stl_iterator.h: Likewise.
1822*14f5a3b0Smrg	* include/bits/stl_iterator_base_funcs.h: Likewise.
1823*14f5a3b0Smrg	* include/bits/stl_list.h: Likewise.
1824*14f5a3b0Smrg	* include/bits/stl_map.h: Likewise.
1825*14f5a3b0Smrg	* include/bits/stl_multimap.h: Likewise.
1826*14f5a3b0Smrg	* include/bits/stl_multiset.h: Likewise.
1827*14f5a3b0Smrg	* include/bits/stl_relops.h: Likewise.
1828*14f5a3b0Smrg	* include/bits/stl_set.h: Likewise.
1829*14f5a3b0Smrg	* include/bits/stl_vector.h: Likewise.
1830*14f5a3b0Smrg	* include/bits/uniform_int_dist.h: Likewise.
1831*14f5a3b0Smrg	* include/bits/unordered_map.h: Likewise.
1832*14f5a3b0Smrg	* include/bits/unordered_set.h: Likewise.
1833*14f5a3b0Smrg	* include/bits/vector.tcc: Likewise.
1834*14f5a3b0Smrg	* include/c_global/cmath: Likewise.
1835*14f5a3b0Smrg	* include/c_std/cmath: Likewise.
1836*14f5a3b0Smrg	* include/decimal/decimal: Likewise.
1837*14f5a3b0Smrg	* include/decimal/decimal.h: Likewise.
1838*14f5a3b0Smrg	* include/experimental/algorithm: Likewise.
1839*14f5a3b0Smrg	* include/experimental/any: Likewise.
1840*14f5a3b0Smrg	* include/experimental/array: Likewise.
1841*14f5a3b0Smrg	* include/experimental/bits/erase_if.h: Likewise.
1842*14f5a3b0Smrg	* include/experimental/bits/fs_dir.h: Likewise.
1843*14f5a3b0Smrg	* include/experimental/bits/fs_fwd.h: Likewise.
1844*14f5a3b0Smrg	* include/experimental/bits/fs_ops.h: Likewise.
1845*14f5a3b0Smrg	* include/experimental/bits/fs_path.h: Likewise.
1846*14f5a3b0Smrg	* include/experimental/bits/lfts_config.h: Likewise.
1847*14f5a3b0Smrg	* include/experimental/bits/shared_ptr.h: Likewise.
1848*14f5a3b0Smrg	* include/experimental/bits/string_view.tcc: Likewise.
1849*14f5a3b0Smrg	* include/experimental/chrono: Likewise.
1850*14f5a3b0Smrg	* include/experimental/deque: Likewise.
1851*14f5a3b0Smrg	* include/experimental/filesystem: Likewise.
1852*14f5a3b0Smrg	* include/experimental/forward_list: Likewise.
1853*14f5a3b0Smrg	* include/experimental/functional: Likewise.
1854*14f5a3b0Smrg	* include/experimental/iterator: Likewise.
1855*14f5a3b0Smrg	* include/experimental/list: Likewise.
1856*14f5a3b0Smrg	* include/experimental/map: Likewise.
1857*14f5a3b0Smrg	* include/experimental/memory: Likewise.
1858*14f5a3b0Smrg	* include/experimental/memory_resource: Likewise.
1859*14f5a3b0Smrg	* include/experimental/numeric: Likewise.
1860*14f5a3b0Smrg	* include/experimental/optional: Likewise.
1861*14f5a3b0Smrg	* include/experimental/propagate_const: Likewise.
1862*14f5a3b0Smrg	* include/experimental/random: Likewise.
1863*14f5a3b0Smrg	* include/experimental/ratio: Likewise.
1864*14f5a3b0Smrg	* include/experimental/regex: Likewise.
1865*14f5a3b0Smrg	* include/experimental/set: Likewise.
1866*14f5a3b0Smrg	* include/experimental/source_location: Likewise.
1867*14f5a3b0Smrg	* include/experimental/string: Likewise.
1868*14f5a3b0Smrg	* include/experimental/string_view: Likewise.
1869*14f5a3b0Smrg	* include/experimental/system_error: Likewise.
1870*14f5a3b0Smrg	* include/experimental/tuple: Likewise.
1871*14f5a3b0Smrg	* include/experimental/type_traits: Likewise.
1872*14f5a3b0Smrg	* include/experimental/unordered_map: Likewise.
1873*14f5a3b0Smrg	* include/experimental/unordered_set: Likewise.
1874*14f5a3b0Smrg	* include/experimental/utility: Likewise.
1875*14f5a3b0Smrg	* include/experimental/vector: Likewise.
1876*14f5a3b0Smrg	* include/ext/bitmap_allocator.h: Likewise.
1877*14f5a3b0Smrg	* include/ext/codecvt_specializations.h: Likewise.
1878*14f5a3b0Smrg	* include/ext/rope: Likewise.
1879*14f5a3b0Smrg	* include/ext/typelist.h: Likewise.
1880*14f5a3b0Smrg	* include/std/chrono: Likewise.
1881*14f5a3b0Smrg	* include/std/complex: Likewise.
1882*14f5a3b0Smrg	* include/std/functional: Likewise.
1883*14f5a3b0Smrg	* include/std/numeric: Likewise.
1884*14f5a3b0Smrg	* include/std/string_view: Likewise.
1885*14f5a3b0Smrg	* include/std/thread: Likewise.
1886*14f5a3b0Smrg	* include/std/variant: Likewise.
1887*14f5a3b0Smrg	* include/tr1/array: Likewise.
1888*14f5a3b0Smrg	* include/tr1/bessel_function.tcc: Likewise.
1889*14f5a3b0Smrg	* include/tr1/beta_function.tcc: Likewise.
1890*14f5a3b0Smrg	* include/tr1/cmath: Likewise.
1891*14f5a3b0Smrg	* include/tr1/complex: Likewise.
1892*14f5a3b0Smrg	* include/tr1/ell_integral.tcc: Likewise.
1893*14f5a3b0Smrg	* include/tr1/exp_integral.tcc: Likewise.
1894*14f5a3b0Smrg	* include/tr1/functional: Likewise.
1895*14f5a3b0Smrg	* include/tr1/functional_hash.h: Likewise.
1896*14f5a3b0Smrg	* include/tr1/gamma.tcc: Likewise.
1897*14f5a3b0Smrg	* include/tr1/hashtable.h: Likewise.
1898*14f5a3b0Smrg	* include/tr1/hashtable_policy.h: Likewise.
1899*14f5a3b0Smrg	* include/tr1/hypergeometric.tcc: Likewise.
1900*14f5a3b0Smrg	* include/tr1/legendre_function.tcc: Likewise.
1901*14f5a3b0Smrg	* include/tr1/modified_bessel_func.tcc: Likewise.
1902*14f5a3b0Smrg	* include/tr1/poly_hermite.tcc: Likewise.
1903*14f5a3b0Smrg	* include/tr1/poly_laguerre.tcc: Likewise.
1904*14f5a3b0Smrg	* include/tr1/random.h: Likewise.
1905*14f5a3b0Smrg	* include/tr1/random.tcc: Likewise.
1906*14f5a3b0Smrg	* include/tr1/regex: Likewise.
1907*14f5a3b0Smrg	* include/tr1/riemann_zeta.tcc: Likewise.
1908*14f5a3b0Smrg	* include/tr1/shared_ptr.h: Likewise.
1909*14f5a3b0Smrg	* include/tr1/special_function_util.h: Likewise.
1910*14f5a3b0Smrg	* include/tr1/tuple: Likewise.
1911*14f5a3b0Smrg	* include/tr1/type_traits: Likewise.
1912*14f5a3b0Smrg	* include/tr1/unordered_map.h: Likewise.
1913*14f5a3b0Smrg	* include/tr1/unordered_set.h: Likewise.
1914*14f5a3b0Smrg	* include/tr1/utility: Likewise.
1915*14f5a3b0Smrg	* include/tr2/bool_set: Likewise.
1916*14f5a3b0Smrg	* include/tr2/bool_set.tcc: Likewise.
1917*14f5a3b0Smrg	* include/tr2/dynamic_bitset: Likewise.
1918*14f5a3b0Smrg	* include/tr2/dynamic_bitset.tcc: Likewise.
1919*14f5a3b0Smrg	* include/tr2/ratio: Likewise.
1920*14f5a3b0Smrg	* include/tr2/type_traits: Likewise.
1921*14f5a3b0Smrg	* src/c++11/chrono.cc: Likewise.
1922*14f5a3b0Smrg	* src/c++11/compatibility-c++0x.cc: Likewise.
1923*14f5a3b0Smrg	* src/c++11/compatibility-chrono.cc: Likewise.
1924*14f5a3b0Smrg	* src/c++11/cxx11-shim_facets.cc: Likewise.
1925*14f5a3b0Smrg	* src/c++11/hashtable_c++0x.cc: Likewise.
1926*14f5a3b0Smrg	* src/c++11/placeholders.cc: Likewise.
1927*14f5a3b0Smrg	* src/c++11/thread.cc: Likewise.
1928*14f5a3b0Smrg	* src/c++98/bitmap_allocator.cc: Likewise.
1929*14f5a3b0Smrg	* src/c++98/hashtable_tr1.cc: Likewise.
1930*14f5a3b0Smrg	* src/c++98/list.cc: Likewise.
1931*14f5a3b0Smrg	* src/shared/hashtable-aux.cc: Likewise.
1932*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Adapt line number.
1933*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1934*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1935*14f5a3b0Smrg	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1936*14f5a3b0Smrg	* testsuite/20_util/forward/c_neg.cc: Likewise.
1937*14f5a3b0Smrg	* testsuite/20_util/forward/f_neg.cc: Likewise.
1938*14f5a3b0Smrg	* testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1939*14f5a3b0Smrg	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1940*14f5a3b0Smrg	* testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1941*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py: Adapt.
1942*14f5a3b0Smrg
1943*14f5a3b0Smrg2017-07-20  Jonathan Wakely  <jwakely@redhat.com>
1944*14f5a3b0Smrg
1945*14f5a3b0Smrg	* config/allocator/malloc_allocator_base.h [__SANITIZE_ADDRESS__]
1946*14f5a3b0Smrg	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1947*14f5a3b0Smrg	* config/allocator/new_allocator_base.h [__SANITIZE_ADDRESS__]
1948*14f5a3b0Smrg	(_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define.
1949*14f5a3b0Smrg	* doc/xml/manual/using.xml (_GLIBCXX_SANITIZE_VECTOR): Document macro.
1950*14f5a3b0Smrg	* include/bits/stl_vector.h [_GLIBCXX_SANITIZE_VECTOR]
1951*14f5a3b0Smrg	(_Vector_impl::_Asan, _Vector_impl::_Asan::_Reinit)
1952*14f5a3b0Smrg	(_Vector_impl::_Asan::_Grow, _GLIBCXX_ASAN_ANNOTATE_REINIT)
1953*14f5a3b0Smrg	(_GLIBCXX_ASAN_ANNOTATE_GROW, _GLIBCXX_ASAN_ANNOTATE_GREW)
1954*14f5a3b0Smrg	(_GLIBCXX_ASAN_ANNOTATE_SHRINK, _GLIBCXX_ASAN_ANNOTATE_BEFORE_DEALLOC):
1955*14f5a3b0Smrg	Define annotation helper types and macros.
1956*14f5a3b0Smrg	(vector::~vector, vector::push_back, vector::pop_back)
1957*14f5a3b0Smrg	(vector::_M_erase_at_end): Add annotations.
1958*14f5a3b0Smrg	* include/bits/vector.tcc (vector::reserve, vector::emplace_back)
1959*14f5a3b0Smrg	(vector::insert, vector::_M_erase, vector::operator=)
1960*14f5a3b0Smrg	(vector::_M_fill_assign, vector::_M_assign_aux)
1961*14f5a3b0Smrg	(vector::_M_insert_rval, vector::_M_emplace_aux)
1962*14f5a3b0Smrg	(vector::_M_insert_aux, vector::_M_realloc_insert)
1963*14f5a3b0Smrg	(vector::_M_fill_insert, vector::_M_default_append)
1964*14f5a3b0Smrg	(vector::_M_shrink_to_fit, vector::_M_range_insert): Annotate.
1965*14f5a3b0Smrg
1966*14f5a3b0Smrg2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1967*14f5a3b0Smrg
1968*14f5a3b0Smrg	PR libstdc++/81476
1969*14f5a3b0Smrg	* include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>):
1970*14f5a3b0Smrg	Only insert elements one-by-one when inserting at the end.
1971*14f5a3b0Smrg	* testsuite/performance/23_containers/insert/81476.cc: New.
1972*14f5a3b0Smrg
1973*14f5a3b0Smrg2017-07-19  Volker Reichelt  <v.reichelt@netcologne.de>
1974*14f5a3b0Smrg
1975*14f5a3b0Smrg	* libsupc++/new (bad_array_new_length): Remove redundant
1976*14f5a3b0Smrg	semicolon after in-class member function definition.
1977*14f5a3b0Smrg	* include/bits/locale_facets.h (ctype_byname, num_put): Likewise.
1978*14f5a3b0Smrg	* include/bits/locale_facets_nonio.h (time_put_byname): Likewise.
1979*14f5a3b0Smrg	* include/bits/random.h (mersenne_twister_engine): Likewise.
1980*14f5a3b0Smrg	* include/tr1/random.h (mersenne_twister): Likewise
1981*14f5a3b0Smrg	* include/ext/random (simd_fast_mersenne_twister_engine): Likewise.
1982*14f5a3b0Smrg	* include/ext/rope (char_producer, _Rope_char_consumer,
1983*14f5a3b0Smrg	_Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator):
1984*14f5a3b0Smrg	Likewise.
1985*14f5a3b0Smrg	* include/ext/ropeimpl.h (_Rope_flatten_char_consumer,
1986*14f5a3b0Smrg	_Rope_insert_char_consumer): Likewise.
1987*14f5a3b0Smrg
1988*14f5a3b0Smrg2017-07-19  Jonathan Wakely  <jwakely@redhat.com>
1989*14f5a3b0Smrg
1990*14f5a3b0Smrg	* include/bits/fstream.tcc (basic_filebuf::xsgetn)
1991*14f5a3b0Smrg	(basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation.
1992*14f5a3b0Smrg
1993*14f5a3b0Smrg	* testsuite/util/testsuite_iterators.h: Fix indentation.
1994*14f5a3b0Smrg
1995*14f5a3b0Smrg	* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require.
1996*14f5a3b0Smrg
1997*14f5a3b0Smrg2017-07-18  Jonathan Wakely  <jwakely@redhat.com>
1998*14f5a3b0Smrg
1999*14f5a3b0Smrg	PR libstdc++/81395
2000*14f5a3b0Smrg	* include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
2001*14f5a3b0Smrg	pointers for write mode after reading.
2002*14f5a3b0Smrg	* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
2003*14f5a3b0Smrg
2004*14f5a3b0Smrg2017-07-18  François Dumont  <fdumont@gcc.gnu.org>
2005*14f5a3b0Smrg
2006*14f5a3b0Smrg	* include/bits/stl_list.h
2007*14f5a3b0Smrg	(struct _List_node_header): New.
2008*14f5a3b0Smrg	(_List_impl()): Fix noexcept qualification.
2009*14f5a3b0Smrg	(_List_impl(_List_impl&&)): New, default.
2010*14f5a3b0Smrg	(_List_base()): Default.
2011*14f5a3b0Smrg	(_List_base(_List_base&&)): Default.
2012*14f5a3b0Smrg	(_List_base::_M_move_nodes): Adapt to use
2013*14f5a3b0Smrg	_List_node_header._M_move_nodes.
2014*14f5a3b0Smrg	(_List_base::_M_init): Likewise.
2015*14f5a3b0Smrg	(list<>()): Default.
2016*14f5a3b0Smrg	(list<>(list&&)): Default.
2017*14f5a3b0Smrg	(list<>::_M_move_assign(list&&, true_type)): Use _M_move_nodes.
2018*14f5a3b0Smrg	(__distance(_List_const_iterator<>, _List_const_iterator<>,
2019*14f5a3b0Smrg	input_iterator_tag)): Adapt.
2020*14f5a3b0Smrg	* testsuite/23_containers/list/allocator/default_init.cc: New.
2021*14f5a3b0Smrg
2022*14f5a3b0Smrg2017-07-15  Jonathan Wakely  <jwakely@redhat.com>
2023*14f5a3b0Smrg
2024*14f5a3b0Smrg	* include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
2025*14f5a3b0Smrg	as per P0739R0.
2026*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
2027*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
2028*14f5a3b0Smrg	with std::adopt_lock_t.
2029*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
2030*14f5a3b0Smrg	feature-test macro.
2031*14f5a3b0Smrg
2032*14f5a3b0Smrg2017-07-14  Jason Merrill  <jason@redhat.com>
2033*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
2034*14f5a3b0Smrg
2035*14f5a3b0Smrg	* include/std/variant (variant::variant(_Tp&&)): Constrain to remove
2036*14f5a3b0Smrg	the constructor for empty variants from the candidate functions
2037*14f5a3b0Smrg	during class template argument deduction.
2038*14f5a3b0Smrg	* testsuite/20_util/variant/deduction.cc: New.
2039*14f5a3b0Smrg
2040*14f5a3b0Smrg2017-07-11  Jonathan Wakely  <jwakely@redhat.com>
2041*14f5a3b0Smrg
2042*14f5a3b0Smrg	* doc/xml/faq.xml: Update several old entries. Improve
2043*14f5a3b0Smrg	cross-references.
2044*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Add anchors to each DR.
2045*14f5a3b0Smrg	* doc/html/*: Regenerate.
2046*14f5a3b0Smrg
2047*14f5a3b0Smrg2017-07-10  Jonathan Wakely  <jwakely@redhat.com>
2048*14f5a3b0Smrg
2049*14f5a3b0Smrg	* testsuite/abi/pr42230.cc: Add header for std::free.
2050*14f5a3b0Smrg
2051*14f5a3b0Smrg	PR libstdc++/81381
2052*14f5a3b0Smrg	* include/bits/sstream.tcc (basic_stringbuf::overflow)
2053*14f5a3b0Smrg	(basic_stringbuf::basic_stringbuf(const __string_type&, ios::mode))
2054*14f5a3b0Smrg	(basic_stringbuf::str()): Construct new strings with an allocator.
2055*14f5a3b0Smrg	* testsuite/27_io/basic_stringbuf/cons/81381.cc: New.
2056*14f5a3b0Smrg
2057*14f5a3b0Smrg	PR libstdc++/81338
2058*14f5a3b0Smrg	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
2059*14f5a3b0Smrg	Declare basic_stringbuf to be a friend.
2060*14f5a3b0Smrg	* include/bits/sstream.tcc (basic_stringbuf::overflow)
2061*14f5a3b0Smrg	[_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
2062*14f5a3b0Smrg	* include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
2063*14f5a3b0Smrg	length to buffer length.
2064*14f5a3b0Smrg	* testsuite/27_io/basic_stringstream/assign/81338.cc: New.
2065*14f5a3b0Smrg
2066*14f5a3b0Smrg2017-07-06  Jonathan Wakely  <jwakely@redhat.com>
2067*14f5a3b0Smrg
2068*14f5a3b0Smrg	* testsuite/20_util/specialized_algorithms/memory_management_tools/
2069*14f5a3b0Smrg	1.cc: Free memory.
2070*14f5a3b0Smrg	* testsuite/22_locale/locale/cons/5.cc: Remove redundant restoration
2071*14f5a3b0Smrg	of original environment and free memory.
2072*14f5a3b0Smrg
2073*14f5a3b0Smrg	* testsuite/abi/pr42230.cc: Free memory.
2074*14f5a3b0Smrg	* testsuite/util/testsuite_abi.cc (demangle): Return std::string
2075*14f5a3b0Smrg	instead of pointer that might need freeing.
2076*14f5a3b0Smrg	* testsuite/util/testsuite_abi.h (demangle): Likewise.
2077*14f5a3b0Smrg	* testsuite/util/testsuite_hooks.cc (verify_demangle): Free memory.
2078*14f5a3b0Smrg
2079*14f5a3b0Smrg	* include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
2080*14f5a3b0Smrg	deleted overload to prevent dangling references to rvalues.
2081*14f5a3b0Smrg	* include/experimental/memory_resource
2082*14f5a3b0Smrg	(polymorphic_allocator::construct): Do not call __use_alloc with
2083*14f5a3b0Smrg	rvalue arguments.
2084*14f5a3b0Smrg
2085*14f5a3b0Smrg2017-06-27  Tim Shen  <timshen@google.com>
2086*14f5a3b0Smrg
2087*14f5a3b0Smrg	PR libstdc++/80187
2088*14f5a3b0Smrg	* include/std/variant (variant::variant, variant::~variant,
2089*14f5a3b0Smrg	variant::operator=): Implement triviality forwarding for four
2090*14f5a3b0Smrg	special member functions.
2091*14f5a3b0Smrg	* testsuite/20_util/variant/compile.cc: Tests.
2092*14f5a3b0Smrg
2093*14f5a3b0Smrg2017-06-27  Jonathan Wakely  <jwakely@redhat.com>
2094*14f5a3b0Smrg
2095*14f5a3b0Smrg	PR libstdc++/81221
2096*14f5a3b0Smrg	* testsuite/25_algorithms/sample/81221.cc: Disable except for
2097*14f5a3b0Smrg	check-parallel.
2098*14f5a3b0Smrg
2099*14f5a3b0Smrg	PR libstdc++/81221
2100*14f5a3b0Smrg	* include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
2101*14f5a3b0Smrg	std.
2102*14f5a3b0Smrg	* testsuite/25_algorithms/sample/81221.cc: New.
2103*14f5a3b0Smrg
2104*14f5a3b0Smrg2017-06-22  Jonathan Wakely  <jwakely@redhat.com>
2105*14f5a3b0Smrg
2106*14f5a3b0Smrg	PR libstdc++/81173
2107*14f5a3b0Smrg	* include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
2108*14f5a3b0Smrg	Do not pass null pointer to memset.
2109*14f5a3b0Smrg
2110*14f5a3b0Smrg2017-06-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
2111*14f5a3b0Smrg
2112*14f5a3b0Smrg	PR libstdc++/80675
2113*14f5a3b0Smrg	PR libstdc++/80940
2114*14f5a3b0Smrg	* include/std/istream:
2115*14f5a3b0Smrg	(__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
2116*14f5a3b0Smrg	(__do_is_convertible_to_basic_istream_impl): Likewise.
2117*14f5a3b0Smrg	(__is_convertible_to_basic_istream_impl): Likewise.
2118*14f5a3b0Smrg	(__is_convertible_to_basic_istream): Use the new base.
2119*14f5a3b0Smrg	(__rvalue_istream_type): New.
2120*14f5a3b0Smrg	(operator>>(_Istream&&, _Tp&&)): Use the new helper alias
2121*14f5a3b0Smrg	for the SFINAE check, convert to the helper alias type before
2122*14f5a3b0Smrg	doing the actual extraction.
2123*14f5a3b0Smrg	* include/std/ostream:
2124*14f5a3b0Smrg	(__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
2125*14f5a3b0Smrg	(__do_is_convertible_to_basic_ostream_impl): Likewise.
2126*14f5a3b0Smrg	(__is_convertible_to_basic_ostream_impl): Likewise.
2127*14f5a3b0Smrg	(__is_convertible_to_basic_ostream): Use the new base.
2128*14f5a3b0Smrg	(__rvalue_ostream_type): New.
2129*14f5a3b0Smrg	(operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
2130*14f5a3b0Smrg	for the SFINAE check, convert to the helper alias type before
2131*14f5a3b0Smrg	doing the actual insertion.
2132*14f5a3b0Smrg	* testsuite/27_io/rvalue_streams-2.cc: Add new tests.
2133*14f5a3b0Smrg
2134*14f5a3b0Smrg2017-06-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2135*14f5a3b0Smrg
2136*14f5a3b0Smrg	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2137*14f5a3b0Smrg
2138*14f5a3b0Smrg2017-06-21  Jonathan Wakely  <jwakely@redhat.com>
2139*14f5a3b0Smrg
2140*14f5a3b0Smrg	PR libstdc++/81092
2141*14f5a3b0Smrg	* configure: Regenerate.
2142*14f5a3b0Smrg
2143*14f5a3b0Smrg2017-06-20  Uros Bizjak  <ubizjak@gmail.com>
2144*14f5a3b0Smrg
2145*14f5a3b0Smrg	* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2146*14f5a3b0Smrg
2147*14f5a3b0Smrg2017-06-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2148*14f5a3b0Smrg
2149*14f5a3b0Smrg	* testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
2150*14f5a3b0Smrg	lp64 targets.
2151*14f5a3b0Smrg
2152*14f5a3b0Smrg2017-06-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2153*14f5a3b0Smrg
2154*14f5a3b0Smrg	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
2155*14f5a3b0Smrg	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
2156*14f5a3b0Smrg	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
2157*14f5a3b0Smrg	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
2158*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
2159*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2160*14f5a3b0Smrg	Likewise.
2161*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
2162*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2163*14f5a3b0Smrg	Likewise.
2164*14f5a3b0Smrg
2165*14f5a3b0Smrg2017-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2166*14f5a3b0Smrg
2167*14f5a3b0Smrg	PR libstdc++/81092
2168*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2169*14f5a3b0Smrg
2170*14f5a3b0Smrg2017-06-18  Andreas Schwab  <schwab@linux-m68k.org>
2171*14f5a3b0Smrg
2172*14f5a3b0Smrg	PR libstdc++/81092
2173*14f5a3b0Smrg	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2174*14f5a3b0Smrg
2175*14f5a3b0Smrg2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2176*14f5a3b0Smrg
2177*14f5a3b0Smrg	* testsuite: Remove dg-skip-if, dg-xfail-if, dg-xfail-run-if
2178*14f5a3b0Smrg	default args.
2179*14f5a3b0Smrg
2180*14f5a3b0Smrg2017-06-17  Jonathan Wakely  <jwakely@redhat.com>
2181*14f5a3b0Smrg
2182*14f5a3b0Smrg	PR libstdc++/80893
2183*14f5a3b0Smrg	* testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
2184*14f5a3b0Smrg
2185*14f5a3b0Smrg2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2186*14f5a3b0Smrg
2187*14f5a3b0Smrg	* include/bits/shared_ptr.h (get_deleter): Add overload matching
2188*14f5a3b0Smrg	standard signature.
2189*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__shared_ptr): Declare new
2190*14f5a3b0Smrg	get_deleter overload as a friend.
2191*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
2192*14f5a3b0Smrg
2193*14f5a3b0Smrg2017-06-16  Jakub Jelinek  <jakub@redhat.com>
2194*14f5a3b0Smrg
2195*14f5a3b0Smrg	PR libstdc++/81092
2196*14f5a3b0Smrg	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2197*14f5a3b0Smrg	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2198*14f5a3b0Smrg	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2199*14f5a3b0Smrg
2200*14f5a3b0Smrg2017-06-16  Jonathan Wakely  <jwakely@redhat.com>
2201*14f5a3b0Smrg
2202*14f5a3b0Smrg	* include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
2203*14f5a3b0Smrg	* testsuite/22_locale/conversions/buffer/2.cc: New.
2204*14f5a3b0Smrg
2205*14f5a3b0Smrg	PR libstdc++/81092
2206*14f5a3b0Smrg	* acinclude.m4: Bump libtool_VERSION.
2207*14f5a3b0Smrg	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2208*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2209*14f5a3b0Smrg	* config/abi/pre/gnu.ver: Add wstring constructor symbols to
2210*14f5a3b0Smrg	GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
2211*14f5a3b0Smrg	to new GLIBCXX_3.4.25 version.
2212*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Document new versions.
2213*14f5a3b0Smrg	* doc/html/*: Regenerate.
2214*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
2215*14f5a3b0Smrg	constructors to ensure required symbols are exported.
2216*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
2217*14f5a3b0Smrg	* testsuite/util/testsuite_abi.cc: Add new version.
2218*14f5a3b0Smrg
2219*14f5a3b0Smrg	* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
2220*14f5a3b0Smrg	return statement.
2221*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2222*14f5a3b0Smrg	Return void.
2223*14f5a3b0Smrg	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2224*14f5a3b0Smrg	Likewise.
2225*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
2226*14f5a3b0Smrg	missing return statements.
2227*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2228*14f5a3b0Smrg	Likewise.
2229*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2230*14f5a3b0Smrg	Return void.
2231*14f5a3b0Smrg	* testsuite/special_functions/14_expint/pr68397.cc: Likewise.
2232*14f5a3b0Smrg
2233*14f5a3b0Smrg2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
2234*14f5a3b0Smrg
2235*14f5a3b0Smrg	* include/bits/stl_bvector.h
2236*14f5a3b0Smrg	(__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
2237*14f5a3b0Smrg	Change signature.
2238*14f5a3b0Smrg	(std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
2239*14f5a3b0Smrg	(_Bvector_impl_data): New.
2240*14f5a3b0Smrg	(_Bvector_impl): Inherits from latter.
2241*14f5a3b0Smrg	(_Bvector_impl(_Bit_alloc_type&&)): Delete.
2242*14f5a3b0Smrg	(_Bvector_impl(_Bvector_impl&&)): New, default.
2243*14f5a3b0Smrg	(_Bvector_base()): Default.
2244*14f5a3b0Smrg	(_Bvector_base(_Bvector_base&&)): Default.
2245*14f5a3b0Smrg	(_Bvector_base::_M_move_data(_Bvector_base&&)): New.
2246*14f5a3b0Smrg	(vector(vector&&, const allocator_type&)): Use latter.
2247*14f5a3b0Smrg	(vector<bool>::operator=(vector&&)): Likewise.
2248*14f5a3b0Smrg	(vector<bool>::vector()): Default.
2249*14f5a3b0Smrg	(vector<bool>::vector(vector&&)): Default.
2250*14f5a3b0Smrg	(vector<bool>::assign(_InputIterator, _InputIterator)): Use
2251*14f5a3b0Smrg	_M_assign_aux.
2252*14f5a3b0Smrg	(vector<bool>::assign(initializer_list<bool>)): Likewise.
2253*14f5a3b0Smrg	(vector<bool>::_M_initialize_value(bool)): New.
2254*14f5a3b0Smrg	(vector<bool>(size_type, const bool&, const allocator_type&)): Use
2255*14f5a3b0Smrg	latter.
2256*14f5a3b0Smrg	(vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
2257*14f5a3b0Smrg	Likewise.
2258*14f5a3b0Smrg	(vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
2259*14f5a3b0Smrg
2260*14f5a3b0Smrg2017-06-15  François Dumont  <fdumont@gcc.gnu.org>
2261*14f5a3b0Smrg
2262*14f5a3b0Smrg	* src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
2263*14f5a3b0Smrg	(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
2264*14f5a3b0Smrg
2265*14f5a3b0Smrg2017-06-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2266*14f5a3b0Smrg
2267*14f5a3b0Smrg	* testsuite: Add dg-require-effective-target pthread to -pthread
2268*14f5a3b0Smrg	tests.
2269*14f5a3b0Smrg	Remove explicit target lists from dg-do and dg-options.
2270*14f5a3b0Smrg
2271*14f5a3b0Smrg	* testsuite/30_threads/async/forced_unwind.cc: Remove explit
2272*14f5a3b0Smrg	target list from dg-options.
2273*14f5a3b0Smrg	* testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
2274*14f5a3b0Smrg
2275*14f5a3b0Smrg	* 30_threads/shared_mutex/cons/1.cc: Likewise.
2276*14f5a3b0Smrg	Pass -pthread for all targets.
2277*14f5a3b0Smrg	* 30_threads/shared_mutex/try_lock/1.cc: Likewise.
2278*14f5a3b0Smrg	* 30_threads/shared_mutex/try_lock/2.cc: Likewise.
2279*14f5a3b0Smrg	* 30_threads/shared_mutex/unlock/1.cc: Likewise.
2280*14f5a3b0Smrg
2281*14f5a3b0Smrg	* testsuite/30_threads/this_thread/57060.cc: Require c++11 via
2282*14f5a3b0Smrg	dg-require-effective-target.
2283*14f5a3b0Smrg
2284*14f5a3b0Smrg2017-06-14  Jonathan Wakely  <jwakely@redhat.com>
2285*14f5a3b0Smrg
2286*14f5a3b0Smrg	* doc/xml/manual/test.xml: Correct instructions on running tests.
2287*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
2288*14f5a3b0Smrg	pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
2289*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2290*14f5a3b0Smrg	Likewise.
2291*14f5a3b0Smrg	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
2292*14f5a3b0Smrg	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2293*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
2294*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
2295*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2296*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
2297*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/char/
2298*14f5a3b0Smrg	exceptions_null.cc: Likewise.
2299*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
2300*14f5a3b0Smrg	exceptions_null.cc: Likewise.
2301*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2302*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2303*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/char/
2304*14f5a3b0Smrg	exceptions_null.cc: Likewise.
2305*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2306*14f5a3b0Smrg	exceptions_null.cc: Likewise.
2307*14f5a3b0Smrg	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
2308*14f5a3b0Smrg
2309*14f5a3b0Smrg2017-06-12  Pedro Alves  <palves@redhat.com>
2310*14f5a3b0Smrg
2311*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
2312*14f5a3b0Smrg	char_traits status.
2313*14f5a3b0Smrg	* doc/html/*: Regenerate.
2314*14f5a3b0Smrg
2315*14f5a3b0Smrg	* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
2316*14f5a3b0Smrg	not already defined.
2317*14f5a3b0Smrg	(__cpp_lib_constexpr_char_traits): Uncomment.
2318*14f5a3b0Smrg	(__constant_string_p, __constant_char_array_p): New.
2319*14f5a3b0Smrg	(std::char_traits<char>, std::char_traits<wchar_t>): Add
2320*14f5a3b0Smrg	_GLIBCXX17_CONSTEXPR on compare, length and find and use
2321*14f5a3b0Smrg	__constant_string_p, __constant_char_array_p and
2322*14f5a3b0Smrg	__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
2323*14f5a3b0Smrg	time.
2324*14f5a3b0Smrg
2325*14f5a3b0Smrg	* testsuite/21_strings/char_traits/requirements/
2326*14f5a3b0Smrg	constexpr_functions_c++17.cc: Uncomment
2327*14f5a3b0Smrg	__cpp_lib_constexpr_char_traits tests.  Uncomment
2328*14f5a3b0Smrg	test_compare<char>, test_length<char>, test_find<char>,
2329*14f5a3b0Smrg	test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
2330*14f5a3b0Smrg	static_assert tests.
2331*14f5a3b0Smrg
2332*14f5a3b0Smrg2017-06-12  François Dumont  <fdumont@gcc.gnu.org>
2333*14f5a3b0Smrg
2334*14f5a3b0Smrg	* include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
2335*14f5a3b0Smrg	default init.
2336*14f5a3b0Smrg	* testsuite/util/testsuite_allocator.h
2337*14f5a3b0Smrg	(__gnu_test::default_init_allocator<>) New.
2338*14f5a3b0Smrg	* testsuite/23_containers/set/allocator/default_init.cc: New.
2339*14f5a3b0Smrg	* testsuite/23_containers/map/allocator/default_init.cc: New.
2340*14f5a3b0Smrg
2341*14f5a3b0Smrg2017-06-12  Jonathan Wakely  <jwakely@redhat.com>
2342*14f5a3b0Smrg
2343*14f5a3b0Smrg	PR libstdc++/55917
2344*14f5a3b0Smrg	* src/c++11/thread.cc (execute_native_thread_routine): Remove
2345*14f5a3b0Smrg	try-block so that exceptions propagate out of the thread and terminate
2346*14f5a3b0Smrg	is called by the exception-handling runtime.
2347*14f5a3b0Smrg	(execute_native_thread_routine_compat): Likewise.
2348*14f5a3b0Smrg	* testsuite/30_threads/thread/cons/terminate.cc: New.
2349*14f5a3b0Smrg
2350*14f5a3b0Smrg2017-06-09  Jonathan Wakely  <jwakely@redhat.com>
2351*14f5a3b0Smrg
2352*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
2353*14f5a3b0Smrg	* include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
2354*14f5a3b0Smrg	(LWG 2802).
2355*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
2356*14f5a3b0Smrg	(_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
2357*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
2358*14f5a3b0Smrg
2359*14f5a3b0Smrg	* include/bits/forward_list.h (forward_list): Add deduction guide.
2360*14f5a3b0Smrg	* include/bits/stl_deque.h (deque): Likewise.
2361*14f5a3b0Smrg	* include/bits/stl_list.h (list): Likewise.
2362*14f5a3b0Smrg	* include/bits/stl_vector.h (vector): Likewise.
2363*14f5a3b0Smrg	* testsuite/23_containers/deque/cons/deduction.cc: New.
2364*14f5a3b0Smrg	* testsuite/23_containers/forward_list/cons/deduction.cc: New.
2365*14f5a3b0Smrg	* testsuite/23_containers/list/cons/deduction.cc: New.
2366*14f5a3b0Smrg	* testsuite/23_containers/vector/cons/deduction.cc: New.
2367*14f5a3b0Smrg
2368*14f5a3b0Smrg2017-06-08  Jonathan Wakely  <jwakely@redhat.com>
2369*14f5a3b0Smrg
2370*14f5a3b0Smrg	PR libstdc++/81017
2371*14f5a3b0Smrg	* include/bits/std_function.h (function::function(function&&))
2372*14f5a3b0Smrg	(function::operator=(funtion&&)): Add noexcept.
2373*14f5a3b0Smrg	* testsuite/20_util/function/assign/move.cc: Check for noexcept.
2374*14f5a3b0Smrg	* testsuite/20_util/function/cons/move.cc: Likewise.
2375*14f5a3b0Smrg
2376*14f5a3b0Smrg2017-06-07  Jonathan Wakely  <jwakely@redhat.com>
2377*14f5a3b0Smrg
2378*14f5a3b0Smrg	* include/bits/regex.h (basic_regex): Add deduction guide from P0433.
2379*14f5a3b0Smrg	* testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
2380*14f5a3b0Smrg
2381*14f5a3b0Smrg	PR libstdc++/81002
2382*14f5a3b0Smrg	* include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
2383*14f5a3b0Smrg	so iterator type is deduced.
2384*14f5a3b0Smrg	* include/bits/regex_compiler.h (__compile_nfa): Reorder template
2385*14f5a3b0Smrg	parameters to allow iterator type to be deduced.
2386*14f5a3b0Smrg	* testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2387*14f5a3b0Smrg
2388*14f5a3b0Smrg	* include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
2389*14f5a3b0Smrg	New trait and alias for detecting Allocator-like types.
2390*14f5a3b0Smrg	* include/bits/basic_string.h (basic_string): Add deduction guide
2391*14f5a3b0Smrg	from P0433.
2392*14f5a3b0Smrg	* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
2393*14f5a3b0Smrg	parameter with default template argument that causes substitution
2394*14f5a3b0Smrg	failures for types that cannot be allocators.
2395*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
2396*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.
2397*14f5a3b0Smrg
2398*14f5a3b0Smrg2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2399*14f5a3b0Smrg
2400*14f5a3b0Smrg	PR libstdc++/80939
2401*14f5a3b0Smrg	* include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
2402*14f5a3b0Smrg	(__erased_hash): Remove constexpr specifier and qualify calls to
2403*14f5a3b0Smrg	__ref_cast.
2404*14f5a3b0Smrg	(__erased_dtor): Remove constexpr specifier and use _Destroy.
2405*14f5a3b0Smrg
2406*14f5a3b0Smrg2017-06-05  Jonathan Wakely  <jwakely@redhat.com>
2407*14f5a3b0Smrg
2408*14f5a3b0Smrg	* include/bits/stl_iterator_base_funcs.h
2409*14f5a3b0Smrg	(__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
2410*14f5a3b0Smrg	cases where incrementing or decrementing a single step.
2411*14f5a3b0Smrg
2412*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
2413*14f5a3b0Smrg	(__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
2414*14f5a3b0Smrg	specifiers as per LWG 2873 and LWG 2942.
2415*14f5a3b0Smrg	* testsuite/20_util/owner_less/noexcept.cc: New.
2416*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
2417*14f5a3b0Smrg	noexcept guarantees.
2418*14f5a3b0Smrg	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
2419*14f5a3b0Smrg
2420*14f5a3b0Smrg2017-06-03  Andreas Schwab  <schwab@linux-m68k.org>
2421*14f5a3b0Smrg
2422*14f5a3b0Smrg	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2423*14f5a3b0Smrg
2424*14f5a3b0Smrg2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
2425*14f5a3b0Smrg
2426*14f5a3b0Smrg	* src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.
2427*14f5a3b0Smrg
2428*14f5a3b0Smrg2017-06-02  Jonathan Wakely  <jwakely@redhat.com>
2429*14f5a3b0Smrg
2430*14f5a3b0Smrg	PR libstdc++/80624
2431*14f5a3b0Smrg	* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
2432*14f5a3b0Smrg	* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
2433*14f5a3b0Smrg	Transform eof value to U+FFFD.
2434*14f5a3b0Smrg	* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
2435*14f5a3b0Smrg	* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
2436*14f5a3b0Smrg	* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.
2437*14f5a3b0Smrg
2438*14f5a3b0Smrg	* libsupc++/Makefile.am: Remove custom targets for files that need to
2439*14f5a3b0Smrg	be compiled as C++11 or C++14.
2440*14f5a3b0Smrg	* libsupc++/Makefile.in: Regenerate.
2441*14f5a3b0Smrg	* libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
2442*14f5a3b0Smrg	warnings.
2443*14f5a3b0Smrg	* libsupc++/del_opvs.cc: Likewise.
2444*14f5a3b0Smrg
2445*14f5a3b0Smrg2017-06-02  Richard Biener  <rguenther@suse.de>
2446*14f5a3b0Smrg	Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>
2447*14f5a3b0Smrg
2448*14f5a3b0Smrg	PR libstdc++/80721
2449*14f5a3b0Smrg	* libsupc++/eh_alloc.cc (pool::free): Keep list properly
2450*14f5a3b0Smrg	sorted and add missing freelist item merging cases.
2451*14f5a3b0Smrg
2452*14f5a3b0Smrg2017-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2453*14f5a3b0Smrg
2454*14f5a3b0Smrg	(GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
2455*14f5a3b0Smrg	Remove *-solaris* section.
2456*14f5a3b0Smrg	* configure: Regenerate.
2457*14f5a3b0Smrg
2458*14f5a3b0Smrg2017-05-31  Jonathan Wakely  <jwakely@redhat.com>
2459*14f5a3b0Smrg
2460*14f5a3b0Smrg	PR libstdc++/80893
2461*14f5a3b0Smrg	* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
2462*14f5a3b0Smrg	null pointer dereference when size is zero.
2463*14f5a3b0Smrg	* testsuite/23_containers/vector/bool/80893.cc: New.
2464*14f5a3b0Smrg	* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
2465*14f5a3b0Smrg	Add non-explicit constructor from nullptr.
2466*14f5a3b0Smrg	(PointerBase::derived() const): Add const-qualified overload.
2467*14f5a3b0Smrg
2468*14f5a3b0Smrg2017-05-20  Tim Shen  <timshen@google.com>
2469*14f5a3b0Smrg
2470*14f5a3b0Smrg	PR libstdc++/80737
2471*14f5a3b0Smrg	* include/std/variant(variant::variant): SFINAE on is_same first.
2472*14f5a3b0Smrg	* testsuite/20_util/variant/any.cc: test case.
2473*14f5a3b0Smrg
2474*14f5a3b0Smrg2017-05-24  Jonathan Wakely  <jwakely@redhat.com>
2475*14f5a3b0Smrg
2476*14f5a3b0Smrg	* src/c++11/random.cc (random_device::_M_getentropy): Use __CHAR_BIT__
2477*14f5a3b0Smrg	instead of fixed number of bits.
2478*14f5a3b0Smrg
2479*14f5a3b0Smrg2017-05-24  Andreas Schwab  <schwab@suse.de>
2480*14f5a3b0Smrg
2481*14f5a3b0Smrg	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2482*14f5a3b0Smrg	* config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2483*14f5a3b0Smrg
2484*14f5a3b0Smrg2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2485*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
2486*14f5a3b0Smrg
2487*14f5a3b0Smrg	PR libstdc++/67578
2488*14f5a3b0Smrg	* acinclude.m4: Bump libtool_VERSION.
2489*14f5a3b0Smrg	* config/abi/pre/gnu.ver: Create GLIBCXX_3.4.24 with new symbol.
2490*14f5a3b0Smrg	* config.h.in: Regenerate.
2491*14f5a3b0Smrg	* configure: Regenerate.
2492*14f5a3b0Smrg	* configure.ac: Add test for <linux/random.h>.
2493*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Document new library version.
2494*14f5a3b0Smrg	* include/bits/random.h (random_device::entropy)
2495*14f5a3b0Smrg	[_GLIBCXX_USE_RANDOM_TR1]: Add call to new _M_getentropy member.
2496*14f5a3b0Smrg	(random_device::_M_getentropy): Declare.
2497*14f5a3b0Smrg	* src/c++11/random.cc (random_device::_M_getentropy): Define.
2498*14f5a3b0Smrg	* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.24 to known
2499*14f5a3b0Smrg	versions, and make it the latest version.
2500*14f5a3b0Smrg
2501*14f5a3b0Smrg2017-05-23  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
2502*14f5a3b0Smrg
2503*14f5a3b0Smrg	PR libstdc++/67214
2504*14f5a3b0Smrg	* include/bits/locale_facets.tcc (num_get::_M_extract_int): Add
2505*14f5a3b0Smrg	explicit conversion to avoid signed overflow.
2506*14f5a3b0Smrg
2507*14f5a3b0Smrg2017-05-19  Jonathan Wakely  <jwakely@redhat.com>
2508*14f5a3b0Smrg
2509*14f5a3b0Smrg	PR libstdc++/80796
2510*14f5a3b0Smrg	* include/bits/stl_algo.h (search): Add new overload for C++17.
2511*14f5a3b0Smrg	* testsuite/25_algorithms/search/searcher.cc: New.
2512*14f5a3b0Smrg
2513*14f5a3b0Smrg2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2514*14f5a3b0Smrg
2515*14f5a3b0Smrg	PR libstdc++/80478
2516*14f5a3b0Smrg	* include/std/functional (_Mem_fn_traits_base): Add specializations
2517*14f5a3b0Smrg	for noexcept member function types.
2518*14f5a3b0Smrg	* testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2519*14f5a3b0Smrg
2520*14f5a3b0Smrg2017-05-18  Jonathan Wakely  <jwakely@redhat.com>
2521*14f5a3b0Smrg
2522*14f5a3b0Smrg	* doc/xml/manual/policy_data_structures.xml: Fix typo.
2523*14f5a3b0Smrg	* doc/xml/manual/test_policy_data_structures.xml: Likewise.
2524*14f5a3b0Smrg	* doc/html/*: Regenerate.
2525*14f5a3b0Smrg
2526*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Document latest library versions.
2527*14f5a3b0Smrg	* doc/xml/manual/build_hacking.xml: Document requirement to update
2528*14f5a3b0Smrg	abi.xml when bumping library versions.
2529*14f5a3b0Smrg	* doc/html/*: Regenerate.
2530*14f5a3b0Smrg
2531*14f5a3b0Smrg2017-05-17  Jonathan Wakely  <jwakely@redhat.com>
2532*14f5a3b0Smrg
2533*14f5a3b0Smrg	* include/bits/refwrap.h: Fix Doxygen warning.
2534*14f5a3b0Smrg	* include/bits/specfun.h: Likewise.
2535*14f5a3b0Smrg	* include/bits/std_function.h: Likewise.
2536*14f5a3b0Smrg	* include/bits/stl_algo.h (set_union, set_intersection)
2537*14f5a3b0Smrg	(set_difference, set_symmetric_difference): Add Doxygen @param tags
2538*14f5a3b0Smrg	for output iterator parameters.
2539*14f5a3b0Smrg	* include/bits/stl_iterator.h (inserter): Add Doxygen @param tag for
2540*14f5a3b0Smrg	iterator parameter.
2541*14f5a3b0Smrg	* include/std/mutex (try_lock, lock): Change Mutex to Lockable in
2542*14f5a3b0Smrg	Doxygen comments.
2543*14f5a3b0Smrg
2544*14f5a3b0Smrg2017-05-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
2545*14f5a3b0Smrg
2546*14f5a3b0Smrg	Implement new C++ intrinsics __is_assignable and __is_constructible.
2547*14f5a3b0Smrg	* include/std/type_traits (__do_is_static_castable_impl): Remove.
2548*14f5a3b0Smrg	(__is_static_castable_impl, __is_static_castable_safe): Likewise.
2549*14f5a3b0Smrg	(__is_static_castable, __do_is_direct_constructible_impl): Likewise.
2550*14f5a3b0Smrg	(__is_direct_constructible_impl): Likewise.
2551*14f5a3b0Smrg	(__is_direct_constructible_new_safe): Likewise.
2552*14f5a3b0Smrg	(__is_base_to_derived_ref, __is_lvalue_to_rvalue_ref): Likewise.
2553*14f5a3b0Smrg	(__is_direct_constructible_ref_cast): Likewise.
2554*14f5a3b0Smrg	(__is_direct_constructible_new, __is_direct_constructible): Likewise.
2555*14f5a3b0Smrg	(__do_is_nary_constructible_impl): Likewise.
2556*14f5a3b0Smrg	(__is_nary_constructible_impl, __is_nary_constructible): Likewise.
2557*14f5a3b0Smrg	(__is_constructible_impl): Likewise.
2558*14f5a3b0Smrg	(is_constructible): Call the intrinsic.
2559*14f5a3b0Smrg	(__is_assignable_helper): Remove.
2560*14f5a3b0Smrg	(is_assignable): Call the intrinsic.
2561*14f5a3b0Smrg	(is_trivially_constructible): Likewise.
2562*14f5a3b0Smrg	(__is_trivially_copy_constructible_impl): New.
2563*14f5a3b0Smrg	(is_trivially_copy_constructible): Use it.
2564*14f5a3b0Smrg	(__is_trivially_move_constructible_impl): New.
2565*14f5a3b0Smrg	(is_trivially_move_constructible): Use it.
2566*14f5a3b0Smrg	(is_trivially_assignable): Call the intrinsic.
2567*14f5a3b0Smrg	(__is_trivially_copy_assignable_impl): New.
2568*14f5a3b0Smrg	(is_trivially_copy_assignable): Use it.
2569*14f5a3b0Smrg	(__is_trivially_move_assignable_impl): New.
2570*14f5a3b0Smrg	(is_trivially_move_assignable): Use it.
2571*14f5a3b0Smrg	(testsuite/20_util/declval/requirements/1_neg.cc): Adjust.
2572*14f5a3b0Smrg	(testsuite/20_util/is_trivially_copy_assignable/value.cc):
2573*14f5a3b0Smrg	Add test for void.
2574*14f5a3b0Smrg	(testsuite/20_util/is_trivially_copy_constructible/value.cc): Likewise.
2575*14f5a3b0Smrg	(testsuite/20_util/is_trivially_move_assignable/value.cc): Likewise.
2576*14f5a3b0Smrg	(testsuite/20_util/is_trivially_move_constructible/value.cc): Likewise.
2577*14f5a3b0Smrg	(testsuite/20_util/make_signed/requirements/typedefs_neg.cc): Adjust.
2578*14f5a3b0Smrg	(testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc):
2579*14f5a3b0Smrg	Likewise.
2580*14f5a3b0Smrg
2581*14f5a3b0Smrg2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2582*14f5a3b0Smrg
2583*14f5a3b0Smrg	* testsuite/experimental/source_location/1.cc: Change expected result
2584*14f5a3b0Smrg	for source_location::current() used in default member initializer.
2585*14f5a3b0Smrg
2586*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update status table.
2587*14f5a3b0Smrg	* doc/html/*: Regenerate.
2588*14f5a3b0Smrg	* include/Makefile.am: Add new header.
2589*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
2590*14f5a3b0Smrg	* include/experimental/source_location: New header implementing N4519.
2591*14f5a3b0Smrg	* testsuite/experimental/source_location/1.cc: New test.
2592*14f5a3b0Smrg
2593*14f5a3b0Smrg	PR libstdc++/80285
2594*14f5a3b0Smrg	* include/bits/shared_ptr_base.h [!__cpp_rtti] (type_info): Declare
2595*14f5a3b0Smrg	outside versioned namespace.
2596*14f5a3b0Smrg
2597*14f5a3b0Smrg	* configure: Regenerate.
2598*14f5a3b0Smrg
2599*14f5a3b0Smrg2017-05-16  Marc Glisse  <marc.glisse@inria.fr>
2600*14f5a3b0Smrg
2601*14f5a3b0Smrg	* include/std/optional (_Optional_base::_M_get): Check precondition.
2602*14f5a3b0Smrg	* testsuite/20_util/optional/cons/value_neg.cc: Update line numbers.
2603*14f5a3b0Smrg
2604*14f5a3b0Smrg2017-05-16  Jonathan Wakely  <jwakely@redhat.com>
2605*14f5a3b0Smrg
2606*14f5a3b0Smrg	* doc/xml/manual/appendix_contributing.xml: Link to test docs and
2607*14f5a3b0Smrg	note higher DejaGnu version requirement.
2608*14f5a3b0Smrg	* doc/html/*: Regenerate.
2609*14f5a3b0Smrg
2610*14f5a3b0Smrg	* doc/xml/manual/appendix_contributing.xml: Link to the list of bad
2611*14f5a3b0Smrg	identifiers.
2612*14f5a3b0Smrg	* doc/html/*: Regenerate.
2613*14f5a3b0Smrg
2614*14f5a3b0Smrg2017-05-15  Jonathan Wakely  <jwakely@redhat.com>
2615*14f5a3b0Smrg
2616*14f5a3b0Smrg	PR libstdc++/80761
2617*14f5a3b0Smrg	* include/bits/node_handle.h (_Node_insert_return): Reorder members.
2618*14f5a3b0Smrg	(tuple_size, tuple_element): Remove partial specializations.
2619*14f5a3b0Smrg	* include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2620*14f5a3b0Smrg	const_iterator for std::set.
2621*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/extract.cc: New.
2622*14f5a3b0Smrg	* testsuite/23_containers/set/modifiers/extract.cc: New.
2623*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2624*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2625*14f5a3b0Smrg
2626*14f5a3b0Smrg2017-05-12  Jonathan Wakely  <jwakely@redhat.com>
2627*14f5a3b0Smrg
2628*14f5a3b0Smrg	PR libstdc++/78939
2629*14f5a3b0Smrg	* include/std/utility (tuple_size<cv T>): Only define partial
2630*14f5a3b0Smrg	specializations when tuple_size<T>::value is valid.
2631*14f5a3b0Smrg	* testsuite/20_util/tuple/78939.cc: New.
2632*14f5a3b0Smrg	* testsuite/20_util/tuple/cv_tuple_size_neg.cc: New.
2633*14f5a3b0Smrg
2634*14f5a3b0Smrg2017-05-11  François Dumont  <fdumont@gcc.gnu.org>
2635*14f5a3b0Smrg
2636*14f5a3b0Smrg	* include/bits/stl_tree.h [_GLIBCXX_INLINE_VERSION]
2637*14f5a3b0Smrg	(_Rb_tree_impl<>): Remove _Is_pod_comparator
2638*14f5a3b0Smrg	template parameter.
2639*14f5a3b0Smrg
2640*14f5a3b0Smrg	* include/debug/formatter.h [_GLIBCXX_INLINE_VERSION]
2641*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_Parameter::_M_print_field): Remove.
2642*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_Parameter::_M_print_description):
2643*14f5a3b0Smrg	Remove.
2644*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_M_format_word): Remove.
2645*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_M_print_word): Remove.
2646*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_M_print_string): Remove.
2647*14f5a3b0Smrg	(__gnu_debug::_Error_formatter::_M_get_max_length): Remove.
2648*14f5a3b0Smrg	* src/c++11/debug.cc: Adapt.
2649*14f5a3b0Smrg	* config/abi/pre/gnu-versioned-namespace.ver: Adapt.
2650*14f5a3b0Smrg
2651*14f5a3b0Smrg2017-05-11  Jonathan Wakely  <jwakely@redhat.com>
2652*14f5a3b0Smrg
2653*14f5a3b0Smrg	* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
2654*14f5a3b0Smrg	* doc/xml/manual/mt_allocator.xml: Likewise.
2655*14f5a3b0Smrg	* doc/html/*: Regenerate.
2656*14f5a3b0Smrg
2657*14f5a3b0Smrg	PR libstdc++/80285
2658*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
2659*14f5a3b0Smrg	function to get unique fake std::type_info reference.
2660*14f5a3b0Smrg	(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
2661*14f5a3b0Smrg	_S_ti() fake reference.
2662*14f5a3b0Smrg	(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
2663*14f5a3b0Smrg	single implementation with or without RTTI enable.
2664*14f5a3b0Smrg	[!__cpp_rtti]: Pass fake reference to _M_get_deleter.
2665*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
2666*14f5a3b0Smrg	allocation and deallocation counts.
2667*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
2668*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
2669*14f5a3b0Smrg	New.
2670*14f5a3b0Smrg
2671*14f5a3b0Smrg2017-05-10  François Dumont  <fdumont@gcc.gnu.org>
2672*14f5a3b0Smrg
2673*14f5a3b0Smrg	Bump version namespace.
2674*14f5a3b0Smrg	* config/abi/pre/gnu-versioned-namespace.ver: Bump version namespace
2675*14f5a3b0Smrg	from __7 to __8. Bump GLIBCXX_7.0 to GLIBCXX_8.0.
2676*14f5a3b0Smrg	* acinclude.m4 (libtool_VERSION): Bump to 8:0:0.
2677*14f5a3b0Smrg	* include/bits/c++config: Adapt.
2678*14f5a3b0Smrg	* include/bits/regex.h: Adapt.
2679*14f5a3b0Smrg	* include/experimental/bits/fs_fwd.h: Adapt.
2680*14f5a3b0Smrg	* include/experimental/bits/lfts_config.h: Adapt.
2681*14f5a3b0Smrg	* include/std/variant: Adapt.
2682*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py: Adapt.
2683*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/48362.cc: Adapt.
2684*14f5a3b0Smrg
2685*14f5a3b0Smrg	* include/bits/stl_algobase.h (std::__iter_swap<false>): Remove
2686*14f5a3b0Smrg	_GLIBCXX_MOVE usage.
2687*14f5a3b0Smrg
2688*14f5a3b0Smrg2017-05-09  Jason Merrill  <jason@redhat.com>
2689*14f5a3b0Smrg
2690*14f5a3b0Smrg	* testsuite/24_iterators/container_access.cc (test03): Make il3 static.
2691*14f5a3b0Smrg
2692*14f5a3b0Smrg2017-05-08  Jonathan Wakely  <jwakely@redhat.com>
2693*14f5a3b0Smrg
2694*14f5a3b0Smrg	* include/std/optional: Use a separate static_assert per condition.
2695*14f5a3b0Smrg	* testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
2696*14f5a3b0Smrg	numbers.
2697*14f5a3b0Smrg
2698*14f5a3b0Smrg	* doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
2699*14f5a3b0Smrg	* doc/html/*: Regenerate.
2700*14f5a3b0Smrg
2701*14f5a3b0Smrg2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2702*14f5a3b0Smrg
2703*14f5a3b0Smrg	PR libstdc++/69506
2704*14f5a3b0Smrg	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2705*14f5a3b0Smrg
2706*14f5a3b0Smrg2017-04-29  François Dumont  <fdumont@gcc.gnu.org>
2707*14f5a3b0Smrg
2708*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
2709*14f5a3b0Smrg	by a note-test.
2710*14f5a3b0Smrg
2711*14f5a3b0Smrg2017-04-28  Jonathan Wakely  <jwakely@redhat.com>
2712*14f5a3b0Smrg
2713*14f5a3b0Smrg	PR libstdc++/80553
2714*14f5a3b0Smrg	* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
2715*14f5a3b0Smrg	assertions to ensure type is destructible.
2716*14f5a3b0Smrg	(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
2717*14f5a3b0Smrg	* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
2718*14f5a3b0Smrg	Move to stl_construct.h.
2719*14f5a3b0Smrg	* testsuite/20_util/specialized_algorithms/memory_management_tools/
2720*14f5a3b0Smrg	destroy_neg.cc: New test.
2721*14f5a3b0Smrg	* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
2722*14f5a3b0Smrg
2723*14f5a3b0Smrg	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2724*14f5a3b0Smrg	superfluous "" in dg-error.
2725*14f5a3b0Smrg
2726*14f5a3b0Smrg2017-04-28  Tom de Vries  <tom@codesourcery.com>
2727*14f5a3b0Smrg
2728*14f5a3b0Smrg	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
2729*14f5a3b0Smrg	superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
2730*14f5a3b0Smrg
2731*14f5a3b0Smrg2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
2732*14f5a3b0Smrg
2733*14f5a3b0Smrg	* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
2734*14f5a3b0Smrg	(PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
2735*14f5a3b0Smrg	* testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
2736*14f5a3b0Smrg	Likewise.
2737*14f5a3b0Smrg
2738*14f5a3b0Smrg2017-04-26  Jonathan Wakely  <jwakely@redhat.com>
2739*14f5a3b0Smrg
2740*14f5a3b0Smrg	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
2741*14f5a3b0Smrg	comment. Ensure first test works because allocator type propagates and
2742*14f5a3b0Smrg	not because is_always_equal is true.
2743*14f5a3b0Smrg	* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
2744*14f5a3b0Smrg	testcase that instantiates the move-assignment operator.
2745*14f5a3b0Smrg
2746*14f5a3b0Smrg2017-04-24  Jonathan Wakely  <jwakely@redhat.com>
2747*14f5a3b0Smrg
2748*14f5a3b0Smrg	PR libstdc++/80506
2749*14f5a3b0Smrg	* include/bits/random.tcc (gamma_distribution::operator()): Fix magic
2750*14f5a3b0Smrg	number used in loop condition.
2751*14f5a3b0Smrg
2752*14f5a3b0Smrg	PR libstdc++/80504
2753*14f5a3b0Smrg	* include/bits/refwrap.h (ref, cref): Qualify calls.
2754*14f5a3b0Smrg	* testsuite/20_util/reference_wrapper/80504.cc: New test.
2755*14f5a3b0Smrg
2756*14f5a3b0Smrg	PR libstdc++/80493
2757*14f5a3b0Smrg	* include/experimental/optional (optional::swap): Fix exception
2758*14f5a3b0Smrg	specification.
2759*14f5a3b0Smrg
2760*14f5a3b0Smrg2017-04-21  Jonathan Wakely  <jwakely@redhat.com>
2761*14f5a3b0Smrg
2762*14f5a3b0Smrg	PR libstdc++/80316
2763*14f5a3b0Smrg	* include/std/future (_State_baseV2::_Setter::operator()): Remove
2764*14f5a3b0Smrg	_S_check calls that are done after the pointer to the shared state is
2765*14f5a3b0Smrg	already dereferenced.
2766*14f5a3b0Smrg	(_State_baseV2::_Setter<_Res, void>): Define specialization for void
2767*14f5a3b0Smrg	as partial specialization so it can be defined within the definition
2768*14f5a3b0Smrg	of _State_baseV2.
2769*14f5a3b0Smrg	(_State_baseV2::__setter): Call _S_check.
2770*14f5a3b0Smrg	(_State_baseV2::__setter(promise<void>*)): Add overload for use by
2771*14f5a3b0Smrg	promise<void>::set_value and promise<void>::set_value_at_thread_exit.
2772*14f5a3b0Smrg	(promise<T>, promise<T&>, promise<void>): Make _State a friend.
2773*14f5a3b0Smrg	(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
2774*14f5a3b0Smrg	(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
2775*14f5a3b0Smrg	Use new __setter overload.
2776*14f5a3b0Smrg	* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
2777*14f5a3b0Smrg	* testsuite/30_threads/promise/members/set_exception.cc: Test
2778*14f5a3b0Smrg	promise<T&> and promise<void> specializations.
2779*14f5a3b0Smrg	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2780*14f5a3b0Smrg	Test for no_state error condition.
2781*14f5a3b0Smrg	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2782*14f5a3b0Smrg
2783*14f5a3b0Smrg	* include/backward/auto_ptr.h: Ignore deprecated warnings from use
2784*14f5a3b0Smrg	of auto_ptr.
2785*14f5a3b0Smrg	* include/bits/shared_ptr.h: Likewise.
2786*14f5a3b0Smrg	* include/bits/shared_ptr_base.h: Likewise.
2787*14f5a3b0Smrg	* include/bits/unique_ptr.h: Likewise.
2788*14f5a3b0Smrg	* libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
2789*14f5a3b0Smrg	dg-error lineno.
2790*14f5a3b0Smrg	* libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
2791*14f5a3b0Smrg	* libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
2792*14f5a3b0Smrg	Likewise.
2793*14f5a3b0Smrg	* libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
2794*14f5a3b0Smrg	Likewise.
2795*14f5a3b0Smrg
2796*14f5a3b0Smrg2017-04-20  Edward Smith-Rowland  <3dw4rd@verizon.net>
2797*14f5a3b0Smrg
2798*14f5a3b0Smrg	PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2799*14f5a3b0Smrg	* include/tr1/exp_integral.tcc: Increase iteration limits.
2800*14f5a3b0Smrg	* testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
2801*14f5a3b0Smrg	pr68397.cc: New test.
2802*14f5a3b0Smrg	* testsuite/special_functions/14_expint/pr68397.cc: New test.
2803*14f5a3b0Smrg
2804*14f5a3b0Smrg2017-04-20  Jonathan Wakely  <jwakely@redhat.com>
2805*14f5a3b0Smrg
2806*14f5a3b0Smrg	PR libstdc++/79862
2807*14f5a3b0Smrg	* include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
2808*14f5a3b0Smrg	(atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
2809*14f5a3b0Smrg	(atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
2810*14f5a3b0Smrg	(atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
2811*14f5a3b0Smrg	(atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
2812*14f5a3b0Smrg	(atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
2813*14f5a3b0Smrg	(atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
2814*14f5a3b0Smrg	(atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
2815*14f5a3b0Smrg	(atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
2816*14f5a3b0Smrg	define.
2817*14f5a3b0Smrg
2818*14f5a3b0Smrg2017-04-19  Jonathan Wakely  <jwakely@redhat.com>
2819*14f5a3b0Smrg
2820*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Rephrase one of the references to the
2821*14f5a3b0Smrg	Itanium C++ ABI.
2822*14f5a3b0Smrg	* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2823*14f5a3b0Smrg	* doc/html/*: Regenerate.
2824*14f5a3b0Smrg
2825*14f5a3b0Smrg	* libsupc++/new: Update comment on #endif directive.
2826*14f5a3b0Smrg
2827*14f5a3b0Smrg	PR libstdc++/80448
2828*14f5a3b0Smrg	* include/experimental/bits/fs_dir.h (directory_iterator)
2829*14f5a3b0Smrg	(recursive_directory_iterator): Remove noexcept from defaulted
2830*14f5a3b0Smrg	constructors.
2831*14f5a3b0Smrg
2832*14f5a3b0Smrg	PR libstdc++/80446
2833*14f5a3b0Smrg	* include/std/type_traits (is_aggregate): Change __has_builtin checks.
2834*14f5a3b0Smrg	* libsupc++/new (launder): Likewise.
2835*14f5a3b0Smrg
2836*14f5a3b0Smrg2017-04-18  Jonathan Wakely  <jwakely@redhat.com>
2837*14f5a3b0Smrg
2838*14f5a3b0Smrg	* include/std/functional (default_searcher, __boyer_moore_array_base)
2839*14f5a3b0Smrg	(__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2840*14f5a3b0Smrg	(boyer_moore_horspool_searcher): Remove redundant namespace
2841*14f5a3b0Smrg	qualification.
2842*14f5a3b0Smrg	(default_searcher::operator()): Construct return value early and
2843*14f5a3b0Smrg	advance second member in-place.
2844*14f5a3b0Smrg	(boyer_moore_horspool_searcher::operator()): Increment random access
2845*14f5a3b0Smrg	iterator directly instead of using std::next.
2846*14f5a3b0Smrg	(boyer_moore_searcher::operator()): Fix return value.
2847*14f5a3b0Smrg	* testsuite/20_util/function_objects/searchers.cc: Check both parts
2848*14f5a3b0Smrg	of return values.
2849*14f5a3b0Smrg
2850*14f5a3b0Smrg2017-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
2851*14f5a3b0Smrg
2852*14f5a3b0Smrg	* doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2853*14f5a3b0Smrg	* doc/xml/manual/abi.xml. Ditto (thrice).
2854*14f5a3b0Smrg
2855*14f5a3b0Smrg2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
2856*14f5a3b0Smrg
2857*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2858*14f5a3b0Smrg	* doc/html/*: Regenerate.
2859*14f5a3b0Smrg
2860*14f5a3b0Smrg	* testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2861*14f5a3b0Smrg	that no longer fail.
2862*14f5a3b0Smrg
2863*14f5a3b0Smrg	* include/bits/ios_base.h: Correct comment.
2864*14f5a3b0Smrg	* testsuite/util/testsuite_hooks.h: Likewise.
2865*14f5a3b0Smrg
2866*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2867*14f5a3b0Smrg	* doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2868*14f5a3b0Smrg	directories for debug, parallel and profile headers.
2869*14f5a3b0Smrg	* doc/html/*: Regenerate.
2870*14f5a3b0Smrg
2871*14f5a3b0Smrg	* include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2872*14f5a3b0Smrg	_GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2873*14f5a3b0Smrg	(std::char_traits<char>, std::char_traits<wchar_t>): Add
2874*14f5a3b0Smrg	_GLIBCXX17_CONSTEXPR on assign.
2875*14f5a3b0Smrg	(std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2876*14f5a3b0Smrg	_GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2877*14f5a3b0Smrg	* testsuite/21_strings/char_traits/requirements/
2878*14f5a3b0Smrg	constexpr_functions_c++17.cc: New test.
2879*14f5a3b0Smrg
2880*14f5a3b0Smrg2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2881*14f5a3b0Smrg
2882*14f5a3b0Smrg	PR libstdc++/79141
2883*14f5a3b0Smrg	* include/bits/stl_pair.h (__nonesuch_no_braces): New.
2884*14f5a3b0Smrg	(operator=(typename conditional<
2885*14f5a3b0Smrg	__and_<is_copy_assignable<_T1>,
2886*14f5a3b0Smrg	is_copy_assignable<_T2>>::value,
2887*14f5a3b0Smrg	const pair&, const __nonesuch&>::type)): Change __nonesuch
2888*14f5a3b0Smrg	to __nonesuch_no_braces.
2889*14f5a3b0Smrg	(operator=(typename conditional<
2890*14f5a3b0Smrg	__not_<__and_<is_copy_assignable<_T1>,
2891*14f5a3b0Smrg	is_copy_assignable<_T2>>>::value,
2892*14f5a3b0Smrg	const pair&, const __nonesuch&>::type)): Likewise.
2893*14f5a3b0Smrg	(operator=(typename conditional<
2894*14f5a3b0Smrg	__and_<is_move_assignable<_T1>,
2895*14f5a3b0Smrg	is_move_assignable<_T2>>::value,
2896*14f5a3b0Smrg	pair&&, __nonesuch&&>::type)): Likewise.
2897*14f5a3b0Smrg	* testsuite/20_util/pair/79141.cc: New.
2898*14f5a3b0Smrg
2899*14f5a3b0Smrg2017-04-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
2900*14f5a3b0Smrg
2901*14f5a3b0Smrg	Implement std::is_aggregate.
2902*14f5a3b0Smrg	* include/std/type_traits (is_aggregate, is_aggregate_v): New.
2903*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2904*14f5a3b0Smrg	New.
2905*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2906*14f5a3b0Smrg	* testsuite/20_util/is_aggregate/value.cc: Likewise.
2907*14f5a3b0Smrg
2908*14f5a3b0Smrg2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2909*14f5a3b0Smrg
2910*14f5a3b0Smrg	Adjust optional's pretty printer for LWG 2900.
2911*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2912*14f5a3b0Smrg	Look at the nested payload in case of non-experimental optional.
2913*14f5a3b0Smrg
2914*14f5a3b0Smrg2017-03-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
2915*14f5a3b0Smrg
2916*14f5a3b0Smrg	Implement LWG 2900, The copy and move constructors
2917*14f5a3b0Smrg	of optional are not constexpr.
2918*14f5a3b0Smrg	* include/std/optional (_Optional_payload): New.
2919*14f5a3b0Smrg	(_Optional_base): Remove the bool parameter.
2920*14f5a3b0Smrg	(_Optional_base<_Tp, false>): Remove.
2921*14f5a3b0Smrg	(_Optional_base()): Adjust.
2922*14f5a3b0Smrg	(_Optional_base(nullopt_t)): Likewise.
2923*14f5a3b0Smrg	(_Optional_base(in_place_t, _Args&&...)): Likewise.
2924*14f5a3b0Smrg	(_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2925*14f5a3b0Smrg	Likewise.
2926*14f5a3b0Smrg	(_Optional_base(const _Optional_base&)): Likewise.
2927*14f5a3b0Smrg	(_Optional_base(_Optional_base&&)): Likewise.
2928*14f5a3b0Smrg	(operator=(const _Optional_base&)): Likewise.
2929*14f5a3b0Smrg	(operator=(_Optional_base&&)): Likewise.
2930*14f5a3b0Smrg	(~_Optional_base()): Remove.
2931*14f5a3b0Smrg	(_M_is_engaged()): Adjust.
2932*14f5a3b0Smrg	(_M_get()): Likewise.
2933*14f5a3b0Smrg	(_M_construct(_Args&&...)): Likewise.
2934*14f5a3b0Smrg	(_M_destruct()): Likewise.
2935*14f5a3b0Smrg	(_M_reset()): Likewise.
2936*14f5a3b0Smrg	(_Optional_base::_Empty_byte): Remove.
2937*14f5a3b0Smrg	(_Optional_base::_M_empty): Remove.
2938*14f5a3b0Smrg	(_Optional_base::_M_payload): Adjust.
2939*14f5a3b0Smrg	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2940*14f5a3b0Smrg	* testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2941*14f5a3b0Smrg
2942*14f5a3b0Smrg2017-03-28  Jonathan Wakely  <jwakely@redhat.com>
2943*14f5a3b0Smrg
2944*14f5a3b0Smrg	PR libstdc++/80137
2945*14f5a3b0Smrg	* include/bits/random.tcc (generate_canonical): Use std::nextafter
2946*14f5a3b0Smrg	or numeric_limits::epsilon() to reduce out-of-range values.
2947*14f5a3b0Smrg	* testsuite/26_numerics/random/uniform_real_distribution/operators/
2948*14f5a3b0Smrg	64351.cc: Verify complexity requirement is met.
2949*14f5a3b0Smrg
2950*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Add xml:id anchor.
2951*14f5a3b0Smrg	* doc/xml/manual/using.xml (manual.intro.using.macros): Document
2952*14f5a3b0Smrg	_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2953*14f5a3b0Smrg	(concurrency.io.structure): Add markup.
2954*14f5a3b0Smrg	* doc/html/*: Regenerate.
2955*14f5a3b0Smrg
2956*14f5a3b0Smrg	PR libstdc++/80229
2957*14f5a3b0Smrg	* include/bits/shared_ptr_base.h
2958*14f5a3b0Smrg	(__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2959*14f5a3b0Smrg	non-const and then use remove_cv to get unqualified type.
2960*14f5a3b0Smrg	* testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2961*14f5a3b0Smrg	cast away constness on object created const.
2962*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2963*14f5a3b0Smrg
2964*14f5a3b0Smrg2017-03-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2965*14f5a3b0Smrg
2966*14f5a3b0Smrg	PR libstdc++/80183
2967*14f5a3b0Smrg	* include/bits/stl_tree.h:
2968*14f5a3b0Smrg	(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2969*14f5a3b0Smrg
2970*14f5a3b0Smrg2017-03-23  Jonathan Wakely  <jwakely@redhat.com>
2971*14f5a3b0Smrg
2972*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/
2973*14f5a3b0Smrg	tuple_element_debug_neg.cc: Adjust dg-error.
2974*14f5a3b0Smrg	* testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2975*14f5a3b0Smrg	define a valid strict weak ordering.
2976*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/67085.cc: Disable test for
2977*14f5a3b0Smrg	Debug Mode, due to debug checks making extra copies of predicate.
2978*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2979*14f5a3b0Smrg	Likewise.
2980*14f5a3b0Smrg
2981*14f5a3b0Smrg	* doc/xml/faq.xml: Add link.
2982*14f5a3b0Smrg	* doc/xml/manual/backwards_compatibility.xml: Remove outdated
2983*14f5a3b0Smrg	information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2984*14f5a3b0Smrg	* doc/xml/manual/io.xml: Update broken link.
2985*14f5a3b0Smrg	* doc/html/*: Regenerate.
2986*14f5a3b0Smrg
2987*14f5a3b0Smrg2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>
2988*14f5a3b0Smrg
2989*14f5a3b0Smrg	Implement LWG 2686, Why is std::hash specialized for error_code,
2990*14f5a3b0Smrg	but not error_condition?
2991*14f5a3b0Smrg	* include/std/system_error (hash<error_condition>): Define for C++17.
2992*14f5a3b0Smrg	* testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2993*14f5a3b0Smrg	Instantiate test for error_condition.
2994*14f5a3b0Smrg	* testsuite/20_util/hash/requirements/explicit_instantiation.cc
2995*14f5a3b0Smrg	(hash<error_condition>): Instantiate hash<error_condition>.
2996*14f5a3b0Smrg
2997*14f5a3b0Smrg	* include/bits/c++config (_GLIBCXX17_INLINE): Define.
2998*14f5a3b0Smrg	* include/bits/regex_constants.h (All std::regex_constants constants):
2999*14f5a3b0Smrg	Add _GLIBCXX17_INLINE as per P0607R0.
3000*14f5a3b0Smrg	* include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
3001*14f5a3b0Smrg	Likewise.
3002*14f5a3b0Smrg	* include/bits/stl_pair.h (piecewise_construct): Likewise.
3003*14f5a3b0Smrg	* include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
3004*14f5a3b0Smrg	(__is_uses_allocator_constructible_v)
3005*14f5a3b0Smrg	(__is_nothrow_uses_allocator_constructible_v): Likewise.
3006*14f5a3b0Smrg	* include/std/chrono (treat_as_floating_point_v): Likewise.
3007*14f5a3b0Smrg	* include/std/functional (is_bind_expression_v, is_placeholder_v):
3008*14f5a3b0Smrg	Likewise.
3009*14f5a3b0Smrg	* include/std/optional (nullopt): Likewise.
3010*14f5a3b0Smrg	* include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
3011*14f5a3b0Smrg	ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
3012*14f5a3b0Smrg	* include/std/system_error (is_error_code_enum_v)
3013*14f5a3b0Smrg	(is_error_condition_enum_v): Likewise.
3014*14f5a3b0Smrg	* include/std/tuple (tuple_size_v, ignore): Likewise.
3015*14f5a3b0Smrg	(ignore): Declare ignore constexpr as per LWG 2773, declare assignment
3016*14f5a3b0Smrg	constexpr as per LWG 2933.
3017*14f5a3b0Smrg	* include/std/type_traits (All variable templates): Add
3018*14f5a3b0Smrg	_GLIBCXX17_INLINE as per P0607R0.
3019*14f5a3b0Smrg	* include/std/variant (variant_size_v, variant_npos, __index_of_v)
3020*14f5a3b0Smrg	(__tuple_count_v, __exactly_once): Likewise.
3021*14f5a3b0Smrg	* testsuite/18_support/headers/new/synopsis.cc
3022*14f5a3b0Smrg	(hardware_destructive_interference_size)
3023*14f5a3b0Smrg	(hardware_constructive_interference_size): Likewise for commented-out
3024*14f5a3b0Smrg	variables.
3025*14f5a3b0Smrg	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
3026*14f5a3b0Smrg	test function for constexpr std::ignore (LWG 2773).
3027*14f5a3b0Smrg	* testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
3028*14f5a3b0Smrg	test for LWG 2933.
3029*14f5a3b0Smrg
3030*14f5a3b0Smrg2017-03-22  Jonathan Wakely  <jwakely@redhat.com>
3031*14f5a3b0Smrg
3032*14f5a3b0Smrg	* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
3033*14f5a3b0Smrg	guides for C++17.
3034*14f5a3b0Smrg	* include/bits/std_function.h (function): Likewise.
3035*14f5a3b0Smrg	* include/bits/stl_pair.h (pair): Likewise.
3036*14f5a3b0Smrg	* include/debug/array (__gnu_debug::array): Likewise.
3037*14f5a3b0Smrg	* include/std/array (array): Likewise.
3038*14f5a3b0Smrg	* include/std/functional (make_default_searcher)
3039*14f5a3b0Smrg	(make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
3040*14f5a3b0Smrg	Remove generator functions.
3041*14f5a3b0Smrg	* include/std/tuple (tuple): Add deduction guides.
3042*14f5a3b0Smrg	* include/std/valarray (valarray): Likewise.
3043*14f5a3b0Smrg	* testsuite/20_util/function_objects/searchers.cc: Adjust to use
3044*14f5a3b0Smrg	class template argument deduction instead of generator functions.
3045*14f5a3b0Smrg	* testsuite/20_util/function/cons/deduction.cc: New test.
3046*14f5a3b0Smrg	* testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
3047*14f5a3b0Smrg	* testsuite/20_util/optional/cons/deduction.cc: ... here.
3048*14f5a3b0Smrg	* testsuite/20_util/pair/cons/deduction.cc: New test.
3049*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
3050*14f5a3b0Smrg	* testsuite/20_util/tuple/cons/deduction.cc: New test.
3051*14f5a3b0Smrg	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
3052*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
3053*14f5a3b0Smrg	* testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
3054*14f5a3b0Smrg	* testsuite/23_containers/array/cons/deduction.cc: New test.
3055*14f5a3b0Smrg	* testsuite/23_containers/array/cons/deduction_neg.cc: New test.
3056*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
3057*14f5a3b0Smrg	Adjust dg-error.
3058*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
3059*14f5a3b0Smrg	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3060*14f5a3b0Smrg	Likewise.
3061*14f5a3b0Smrg	* testsuite/26_numerics/valarray/deduction.cc: New test.
3062*14f5a3b0Smrg	* testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
3063*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
3064*14f5a3b0Smrg	* testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
3065*14f5a3b0Smrg
3066*14f5a3b0Smrg2017-03-20  François Dumont  <fdumont@gcc.gnu.org>
3067*14f5a3b0Smrg
3068*14f5a3b0Smrg	* include/bits/stl_deque.h (deque): Access allocator value_type only if
3069*14f5a3b0Smrg	concept checks are enabled.
3070*14f5a3b0Smrg	* include/bits/stl_stack.h (stack): Likewise.
3071*14f5a3b0Smrg	* include/bits/stl_vector.h (vector): Likewise.
3072*14f5a3b0Smrg	* include/bits/stl_list.h (list): Likewise and check
3073*14f5a3b0Smrg	_SGIAssignableConcept only in C++03.
3074*14f5a3b0Smrg	* include/bits/stl_map.h (map): Likewise.
3075*14f5a3b0Smrg	* include/bits/stl_set.h (set): Likewise.
3076*14f5a3b0Smrg	* include/bits/stl_multimap.h (multimap): Likewise.
3077*14f5a3b0Smrg	* include/bits/stl_multiset.h (multiset): Likewise.
3078*14f5a3b0Smrg	* include/bits/stl_queue.h (queue, priority_queue): Likewise.
3079*14f5a3b0Smrg
3080*14f5a3b0Smrg2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
3081*14f5a3b0Smrg
3082*14f5a3b0Smrg	* doc/xml/manual/appendix_contributing.xml: Convert link to
3083*14f5a3b0Smrg	ansi.org to https.
3084*14f5a3b0Smrg	Update link to the C++ standard at ansi.org.
3085*14f5a3b0Smrg
3086*14f5a3b0Smrg	* doc/xml/faq.xml: Remove information redundant with the above;
3087*14f5a3b0Smrg	instead add a reference.
3088*14f5a3b0Smrg
3089*14f5a3b0Smrg2017-03-17  Jonathan Wakely  <jwakely@redhat.com>
3090*14f5a3b0Smrg
3091*14f5a3b0Smrg	* src/c++11/codecvt.cc (range): Add non-type template parameter and
3092*14f5a3b0Smrg	define oerloaded operators for reading and writing code units.
3093*14f5a3b0Smrg	(range<Elem, false>): Define partial specialization for accessing
3094*14f5a3b0Smrg	wide characters in potentially unaligned byte ranges.
3095*14f5a3b0Smrg	(ucs2_span(const char16_t*, const char16_t*, ...))
3096*14f5a3b0Smrg	(ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
3097*14f5a3b0Smrg	to range<const char16_t, false> in order to avoid unaligned reads.
3098*14f5a3b0Smrg	(__codecvt_utf16_base<char16_t>::do_out)
3099*14f5a3b0Smrg	(__codecvt_utf16_base<char32_t>::do_out)
3100*14f5a3b0Smrg	(__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
3101*14f5a3b0Smrg	unaligned data to avoid unaligned writes.
3102*14f5a3b0Smrg	(__codecvt_utf16_base<char16_t>::do_in)
3103*14f5a3b0Smrg	(__codecvt_utf16_base<char32_t>::do_in)
3104*14f5a3b0Smrg	(__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
3105*14f5a3b0Smrg	error if there are unprocessable trailing bytes.
3106*14f5a3b0Smrg	(__codecvt_utf16_base<char16_t>::do_length)
3107*14f5a3b0Smrg	(__codecvt_utf16_base<char32_t>::do_length)
3108*14f5a3b0Smrg	(__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
3109*14f5a3b0Smrg	range<const char16_t, false> to span functions.
3110*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
3111*14f5a3b0Smrg
3112*14f5a3b0Smrg2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
3113*14f5a3b0Smrg
3114*14f5a3b0Smrg	PR libstdc++/79980
3115*14f5a3b0Smrg	* src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
3116*14f5a3b0Smrg
3117*14f5a3b0Smrg	PR libstdc++/80041
3118*14f5a3b0Smrg	* src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
3119*14f5a3b0Smrg	(__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
3120*14f5a3b0Smrg	char16_t to work with UTF-16 instead of UTF-8.
3121*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
3122*14f5a3b0Smrg
3123*14f5a3b0Smrg	* src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
3124*14f5a3b0Smrg	(codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
3125*14f5a3b0Smrg	(__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
3126*14f5a3b0Smrg	(__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
3127*14f5a3b0Smrg	(__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
3128*14f5a3b0Smrg	(__codecvt_utf8_utf16_base<char32_t>)
3129*14f5a3b0Smrg	(__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
3130*14f5a3b0Smrg	do_max_length() return values.
3131*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
3132*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
3133*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
3134*14f5a3b0Smrg
3135*14f5a3b0Smrg	PR libstdc++/79980
3136*14f5a3b0Smrg	* include/bits/locale_conv.h (__do_str_codecvt): Set __count on
3137*14f5a3b0Smrg	error path.
3138*14f5a3b0Smrg	* src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
3139*14f5a3b0Smrg	for manipulating codecvt_mode values.
3140*14f5a3b0Smrg	(read_utf16_bom): Compare input to BOM constants instead of integral
3141*14f5a3b0Smrg	constants that depend on endianness.  Take mode parameter by
3142*14f5a3b0Smrg	reference and adjust it, to distinguish between no BOM present and
3143*14f5a3b0Smrg	UTF-16BE BOM present.
3144*14f5a3b0Smrg	(ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
3145*14f5a3b0Smrg	(surrogates): New enumeration type.
3146*14f5a3b0Smrg	(utf16_in, utf16_out): Add surrogates parameter to choose between
3147*14f5a3b0Smrg	UTF-16 and UCS2 behaviour.
3148*14f5a3b0Smrg	(utf16_span, ucs2_span): Use std::min not std::max.
3149*14f5a3b0Smrg	(ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
3150*14f5a3b0Smrg	(ucs2_in): Likewise. Adjust calls to read_utf16_bom.
3151*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
3152*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
3153*14f5a3b0Smrg
3154*14f5a3b0Smrg	PR libstdc++/79511
3155*14f5a3b0Smrg	* src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
3156*14f5a3b0Smrg	as a surrogate pair.
3157*14f5a3b0Smrg	(__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
3158*14f5a3b0Smrg	for internal representation.
3159*14f5a3b0Smrg	(__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
3160*14f5a3b0Smrg	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
3161*14f5a3b0Smrg
3162*14f5a3b0Smrg	PR libstdc++/80064
3163*14f5a3b0Smrg	* include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
3164*14f5a3b0Smrg	(pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
3165*14f5a3b0Smrg	invalid instantiations using function types for _Compare argument.
3166*14f5a3b0Smrg	* testsuite/25_algorithms/make_heap/80064.cc: New test.
3167*14f5a3b0Smrg
3168*14f5a3b0Smrg	PR libstdc++/67440
3169*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
3170*14f5a3b0Smrg	for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
3171*14f5a3b0Smrg
3172*14f5a3b0Smrg2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
3173*14f5a3b0Smrg
3174*14f5a3b0Smrg	Implement LWG 2857, {variant,optional,any}::emplace should
3175*14f5a3b0Smrg	return the constructed value.
3176*14f5a3b0Smrg	* include/std/any (emplace(_Args&&...)): Change the return type and
3177*14f5a3b0Smrg	return a reference to the constructed value.
3178*14f5a3b0Smrg	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3179*14f5a3b0Smrg	* include/std/optional (emplace(_Args&&...)): Likewise.
3180*14f5a3b0Smrg	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3181*14f5a3b0Smrg	* include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
3182*14f5a3b0Smrg	(emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
3183*14f5a3b0Smrg	(emplace<_Np>(_Args&&...)): Likewise.
3184*14f5a3b0Smrg	(emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
3185*14f5a3b0Smrg	* testsuite/20_util/any/assign/emplace.cc: Add tests for
3186*14f5a3b0Smrg	checking the return value of emplace.
3187*14f5a3b0Smrg	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
3188*14f5a3b0Smrg	* testsuite/20_util/optional/assignment/6.cc: Add tests for
3189*14f5a3b0Smrg	checking the return value of emplace.
3190*14f5a3b0Smrg	* testsuite/20_util/variant/run.cc: Likewise.
3191*14f5a3b0Smrg
3192*14f5a3b0Smrg2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
3193*14f5a3b0Smrg
3194*14f5a3b0Smrg	PR libstdc++/62045
3195*14f5a3b0Smrg	* include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
3196*14f5a3b0Smrg	(is_heap): Remove.
3197*14f5a3b0Smrg	(push_heap): Remove the wrong checking using is_heap.
3198*14f5a3b0Smrg	(make_heap): Remove the assertion using is_heap.
3199*14f5a3b0Smrg	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
3200*14f5a3b0Smrg	(modify): Ditto.
3201*14f5a3b0Smrg	(resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
3202*14f5a3b0Smrg	calling make_heap.
3203*14f5a3b0Smrg
3204*14f5a3b0Smrg2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3205*14f5a3b0Smrg
3206*14f5a3b0Smrg	PR libstdc++/62045
3207*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
3208*14f5a3b0Smrg	New test.
3209*14f5a3b0Smrg	* testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
3210*14f5a3b0Smrg	error in comment.
3211*14f5a3b0Smrg
3212*14f5a3b0Smrg2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
3213*14f5a3b0Smrg
3214*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
3215*14f5a3b0Smrg	comment.
3216*14f5a3b0Smrg	* config.h.in: Regenerate.
3217*14f5a3b0Smrg	* configure: Regenerate.
3218*14f5a3b0Smrg	* doc/Makefile.in: Regenerate.
3219*14f5a3b0Smrg
3220*14f5a3b0Smrg2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
3221*14f5a3b0Smrg
3222*14f5a3b0Smrg	PR libstdc++/79162
3223*14f5a3b0Smrg	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3224*14f5a3b0Smrg	(basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
3225*14f5a3b0Smrg	with a constrained template.
3226*14f5a3b0Smrg	[!_GLIBCXX_USE_CXX11_ABI]
3227*14f5a3b0Smrg	(basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
3228*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
3229*14f5a3b0Smrg	* testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
3230*14f5a3b0Smrg
3231*14f5a3b0Smrg2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3232*14f5a3b0Smrg
3233*14f5a3b0Smrg	PR libstdc++/80034
3234*14f5a3b0Smrg	* include/bits/list.tcc (merge(list&&)): Use const for the size_t
3235*14f5a3b0Smrg	in the catch-block.
3236*14f5a3b0Smrg	(merge(list&&, _StrictWeakOrdering)): Likewise.
3237*14f5a3b0Smrg	* testsuite/23_containers/list/operations/80034.cc: New.
3238*14f5a3b0Smrg
3239*14f5a3b0Smrg2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
3240*14f5a3b0Smrg
3241*14f5a3b0Smrg	Implement LWG 2806, Base class of bad_optional_access.
3242*14f5a3b0Smrg	* include/std/optional (bad_optional_access):
3243*14f5a3b0Smrg	Derive from std::exception.
3244*14f5a3b0Smrg	(bad_optional_access::bad_optional_access): Adjust.
3245*14f5a3b0Smrg	(bad_optional_access::what): New.
3246*14f5a3b0Smrg	(__throw_bad_optional_access(const char*)):
3247*14f5a3b0Smrg	Remove the parameter and adjust calls.
3248*14f5a3b0Smrg	* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3249*14f5a3b0Smrg	* testsuite/20_util/optional/typedefs.cc: Likewise.
3250*14f5a3b0Smrg
3251*14f5a3b0Smrg2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
3252*14f5a3b0Smrg
3253*14f5a3b0Smrg	Implement LWG 2934, optional<const T> doesn't compare with T.
3254*14f5a3b0Smrg	* include/std/optional
3255*14f5a3b0Smrg	(operator==(const optional<_Tp>&, const optional<_Tp>&)):
3256*14f5a3b0Smrg	Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
3257*14f5a3b0Smrg	(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3258*14f5a3b0Smrg	Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
3259*14f5a3b0Smrg	(operator<(const optional<_Tp>&, const optional<_Tp>&)):
3260*14f5a3b0Smrg	Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
3261*14f5a3b0Smrg	(operator>(const optional<_Tp>&, const optional<_Tp>&)):
3262*14f5a3b0Smrg	Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
3263*14f5a3b0Smrg	(operator<=(const optional<_Tp>&, const optional<_Tp>&)):
3264*14f5a3b0Smrg	Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
3265*14f5a3b0Smrg	(operator>=(const optional<_Tp>&, const optional<_Tp>&)):
3266*14f5a3b0Smrg	Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
3267*14f5a3b0Smrg	(operator==(const optional<_Tp>&, const _Tp&)):
3268*14f5a3b0Smrg	Turn into operator==(const optional<_Tp>&, const _Up&).
3269*14f5a3b0Smrg	(operator==(const _Tp&, const optional<_Tp>&)):
3270*14f5a3b0Smrg	Turn into operator==(const _Up&, const optional<_Tp>&).
3271*14f5a3b0Smrg	(operator!=(const optional<_Tp>&, const _Tp&)):
3272*14f5a3b0Smrg	Turn into operator!=(const optional<_Tp>&, const _Up&).
3273*14f5a3b0Smrg	(operator!=(const _Tp&, const optional<_Tp>&)):
3274*14f5a3b0Smrg	Turn into operator!=(const _Up&, const optional<_Tp>&).
3275*14f5a3b0Smrg	(operator<(const optional<_Tp>&, const _Tp&)):
3276*14f5a3b0Smrg	Turn into operator<(const optional<_Tp>&, const _Up&).
3277*14f5a3b0Smrg	(operator<(const _Tp&, const optional<_Tp>&)):
3278*14f5a3b0Smrg	Turn into operator<(const _Up&, const optional<_Tp>&).
3279*14f5a3b0Smrg	(operator>(const optional<_Tp>&, const _Tp&)):
3280*14f5a3b0Smrg	Turn into operator>(const optional<_Tp>&, const _Up&).
3281*14f5a3b0Smrg	(operator>(const _Tp&, const optional<_Tp>&)):
3282*14f5a3b0Smrg	Turn into operator>(const _Up&, const optional<_Tp>&).
3283*14f5a3b0Smrg	(operator<=(const optional<_Tp>&, const _Tp&)):
3284*14f5a3b0Smrg	Turn into operator<=(const optional<_Tp>&, const _Up&).
3285*14f5a3b0Smrg	(operator<=(const _Tp&, const optional<_Tp>&)):
3286*14f5a3b0Smrg	Turn into operator<=(const _Up&, const optional<_Tp>&).
3287*14f5a3b0Smrg	(operator>=(const optional<_Tp>&, const _Tp&)):
3288*14f5a3b0Smrg	Turn into operator>=(const optional<_Tp>&, const _Up&).
3289*14f5a3b0Smrg	(operator>=(const _Tp&, const optional<_Tp>&)):
3290*14f5a3b0Smrg	Turn into operator>=(const _Up&, const optional<_Tp>&).
3291*14f5a3b0Smrg	* testsuite/20_util/optional/relops/7.cc: New.
3292*14f5a3b0Smrg
3293*14f5a3b0Smrg2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
3294*14f5a3b0Smrg
3295*14f5a3b0Smrg	* testsuite/17_intro/names.cc: Undefine macros that clash with
3296*14f5a3b0Smrg	identifiers in AIX system headers.
3297*14f5a3b0Smrg
3298*14f5a3b0Smrg	* include/bits/invoke.h (__invoke): Use __invoke_result instead of
3299*14f5a3b0Smrg	result_of, and __is_nothrow_invocable instead of
3300*14f5a3b0Smrg	__is_nothrow_callable.
3301*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
3302*14f5a3b0Smrg	instead of __is_callable.
3303*14f5a3b0Smrg	* include/std/functional (invoke): use invoke_result_t instead of
3304*14f5a3b0Smrg	result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
3305*14f5a3b0Smrg	(_Not_fn): Use __invoke_result instead of result_of.
3306*14f5a3b0Smrg	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
3307*14f5a3b0Smrg	Remove partial specializations for reference_wrapper types.
3308*14f5a3b0Smrg	(__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
3309*14f5a3b0Smrg	(__invoke_result): Define replacement for result_of and then use it to
3310*14f5a3b0Smrg	define result_of.
3311*14f5a3b0Smrg	(__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
3312*14f5a3b0Smrg	with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
3313*14f5a3b0Smrg	respectively.
3314*14f5a3b0Smrg	(invoke_result, invoke_result_t): Define for C++17.
3315*14f5a3b0Smrg	(is_callable, is_nothrow_callable): Replace with is_invocable,
3316*14f5a3b0Smrg	is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
3317*14f5a3b0Smrg	(is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
3318*14f5a3b0Smrg	is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
3319*14f5a3b0Smrg	* include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
3320*14f5a3b0Smrg	instead of is_nothrow_callable_v.
3321*14f5a3b0Smrg	* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
3322*14f5a3b0Smrg	main function.
3323*14f5a3b0Smrg	* testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
3324*14f5a3b0Smrg	instead of is_callable.
3325*14f5a3b0Smrg	* testsuite/20_util/is_callable/*: Rename directory and adjust tests
3326*14f5a3b0Smrg	to use new traits.
3327*14f5a3b0Smrg	* testsuite/20_util/is_nothrow_callable/*: Likewise.
3328*14f5a3b0Smrg	* testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
3329*14f5a3b0Smrg	is_callable.
3330*14f5a3b0Smrg	* testsuite/20_util/variant/hash.cc: Likewise.
3331*14f5a3b0Smrg
3332*14f5a3b0Smrg2017-03-10  George Lander  <george.lander@arm.com>
3333*14f5a3b0Smrg
3334*14f5a3b0Smrg	* acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
3335*14f5a3b0Smrg	_GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
3336*14f5a3b0Smrg	* configure: Regenerate.
3337*14f5a3b0Smrg
3338*14f5a3b0Smrg2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
3339*14f5a3b0Smrg
3340*14f5a3b0Smrg	* include/std/functional (_Not_fn): Define macro to simplify
3341*14f5a3b0Smrg	repetitive function definitions.
3342*14f5a3b0Smrg
3343*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Document std::byte support.
3344*14f5a3b0Smrg	* include/c_global/cstddef (std::byte): Define for C++17.
3345*14f5a3b0Smrg	* testsuite/18_support/byte/global_neg.cc: New test.
3346*14f5a3b0Smrg	* testsuite/18_support/byte/ops.cc: New test.
3347*14f5a3b0Smrg	* testsuite/18_support/byte/requirements.cc: New test.
3348*14f5a3b0Smrg
3349*14f5a3b0Smrg2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
3350*14f5a3b0Smrg
3351*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
3352*14f5a3b0Smrg	* doc/html/*: Regenerate.
3353*14f5a3b0Smrg	* include/std/mutex (scoped_lock): Implement new C++17 template.
3354*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/cons/1.cc: New test.
3355*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/
3356*14f5a3b0Smrg	explicit_instantiation.cc: New test.
3357*14f5a3b0Smrg	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
3358*14f5a3b0Smrg
3359*14f5a3b0Smrg2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
3360*14f5a3b0Smrg	    François Dumont  <frs.dumont@gmail.com>
3361*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
3362*14f5a3b0Smrg
3363*14f5a3b0Smrg	* doc/xml/manual/debug_mode.xml: Update and simplify note
3364*14f5a3b0Smrg	on link- and run-time coexistence.
3365*14f5a3b0Smrg
3366*14f5a3b0Smrg2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
3367*14f5a3b0Smrg
3368*14f5a3b0Smrg	* testsuite/17_intro/headers/names.cc: Rename to ...
3369*14f5a3b0Smrg	* testsuite/17_intro/names.cc: ... here.
3370*14f5a3b0Smrg
3371*14f5a3b0Smrg	PR libstdc++/79789
3372*14f5a3b0Smrg	* include/bits/hashtable_policy.h (__clp2): Use reserved names for
3373*14f5a3b0Smrg	parameters and local variables.
3374*14f5a3b0Smrg	* include/bits/ios_base.h (make_error_code, make_error_condition):
3375*14f5a3b0Smrg	Likewise.
3376*14f5a3b0Smrg	* include/bits/list.tcc (list::sort): Likewise.
3377*14f5a3b0Smrg	* include/bits/mask_array.h (mask_array): Likewise.
3378*14f5a3b0Smrg	* include/bits/regex.h (regex_token_iterator): Likewise.
3379*14f5a3b0Smrg	* include/bits/slice_array.h (slice_array): Likewise.
3380*14f5a3b0Smrg	* include/bits/stl_algo.h (__sample): Likewise.
3381*14f5a3b0Smrg	* include/std/memory (undeclare_no_pointers): Likewise.
3382*14f5a3b0Smrg	* include/std/type_traits (is_callable_v, is_nothrow_callable_v):
3383*14f5a3b0Smrg	Likewise.
3384*14f5a3b0Smrg	* libsupc++/exception_ptr.h (__dest_thunk): Likewise.
3385*14f5a3b0Smrg	* testsuite/17_intro/headers/names.cc: New test.
3386*14f5a3b0Smrg
3387*14f5a3b0Smrg	PR libstdc++/79798
3388*14f5a3b0Smrg	* include/std/functional (bind::_Res_type_impl): Fix incorrect use of
3389*14f5a3b0Smrg	result_of that loses top-level cv-qualifiers.
3390*14f5a3b0Smrg	* testsuite/20_util/bind/79798.cc: New test.
3391*14f5a3b0Smrg
3392*14f5a3b0Smrg2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
3393*14f5a3b0Smrg
3394*14f5a3b0Smrg	* doc/xml/manual/documentation_hacking.xml: Tweak link to
3395*14f5a3b0Smrg	doxygen.org.
3396*14f5a3b0Smrg
3397*14f5a3b0Smrg2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
3398*14f5a3b0Smrg
3399*14f5a3b0Smrg	* include/experimental/iterator: Include <iterator>.
3400*14f5a3b0Smrg	* testsuite/experimental/iterator/requirements.cc: Check for contents
3401*14f5a3b0Smrg	of <iterator>.
3402*14f5a3b0Smrg
3403*14f5a3b0Smrg2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
3404*14f5a3b0Smrg
3405*14f5a3b0Smrg	C++17 GB50 resolution
3406*14f5a3b0Smrg	* include/std/chrono (duration::operator++()): Add
3407*14f5a3b0Smrg	_GLIBCXX17_CONSTEXPR.
3408*14f5a3b0Smrg	(duration::operator++(int)): Likewise.
3409*14f5a3b0Smrg	(duration::operator--()): Likewise.
3410*14f5a3b0Smrg	(duration::operator--(int)): Likewise.
3411*14f5a3b0Smrg	(duration::operator+=(const duration&)): Likewise.
3412*14f5a3b0Smrg	(duration::operator-=(const duration&)): Likewise.
3413*14f5a3b0Smrg	(duration::operator*=(const rep&)): Likewise.
3414*14f5a3b0Smrg	(duration::operator/=(const rep&)): Likewise.
3415*14f5a3b0Smrg	(duration::operator%=(const rep&)): Likewise.
3416*14f5a3b0Smrg	(duration::operator%=(const duration&)): Likewise.
3417*14f5a3b0Smrg	(time_point::operator+=(const duration&)): Likewise.
3418*14f5a3b0Smrg	(time_point::operator-=(const duration&)): Likewise.
3419*14f5a3b0Smrg	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
3420*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
3421*14f5a3b0Smrg	* testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
3422*14f5a3b0Smrg
3423*14f5a3b0Smrg2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
3424*14f5a3b0Smrg
3425*14f5a3b0Smrg	* doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
3426*14f5a3b0Smrg
3427*14f5a3b0Smrg2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3428*14f5a3b0Smrg
3429*14f5a3b0Smrg	* doc/xml/manual/io.xml: Update link to groups.google.com.
3430*14f5a3b0Smrg	Tweak link description.
3431*14f5a3b0Smrg
3432*14f5a3b0Smrg2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
3433*14f5a3b0Smrg
3434*14f5a3b0Smrg	* doc/xml/manual/profile_mode.xml: Fix link.
3435*14f5a3b0Smrg
3436*14f5a3b0Smrg2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
3437*14f5a3b0Smrg
3438*14f5a3b0Smrg	* doc/xml/manual/policy_data_structures.xml: Simplify and
3439*14f5a3b0Smrg	standardize references to boost.org.
3440*14f5a3b0Smrg	* doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
3441*14f5a3b0Smrg	* doc/xml/manual/shared_ptr.xml: Ditto.
3442*14f5a3b0Smrg
3443*14f5a3b0Smrg2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
3444*14f5a3b0Smrg
3445*14f5a3b0Smrg	PR libstdc++/60936
3446*14f5a3b0Smrg	* src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
3447*14f5a3b0Smrg	written to buffer, not length remaining in buffer.
3448*14f5a3b0Smrg
3449*14f5a3b0Smrg2017-02-15  Tim Shen  <timshen@google.com>
3450*14f5a3b0Smrg
3451*14f5a3b0Smrg	PR libstdc++/78723
3452*14f5a3b0Smrg	* include/std/variant (operator<(), operator>(), operator<=(),
3453*14f5a3b0Smrg	operator>=(), operator==(), operator!=()): Implement P0393R3.
3454*14f5a3b0Smrg	* testsuite/20_util/variant/compile.cc: Adjust tests.
3455*14f5a3b0Smrg	* testsuite/20_util/variant/run.cc: Adjust tests.
3456*14f5a3b0Smrg
3457*14f5a3b0Smrg2017-02-15  Tim Shen  <timshen@google.com>
3458*14f5a3b0Smrg
3459*14f5a3b0Smrg	PR libstdc++/79513
3460*14f5a3b0Smrg	* include/std/variant (visit()): Forward variant types to the return
3461*14f5a3b0Smrg	type detection code.
3462*14f5a3b0Smrg	* testsuite/20_util/variant/compile.cc: Add test cases.
3463*14f5a3b0Smrg
3464*14f5a3b0Smrg2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3465*14f5a3b0Smrg
3466*14f5a3b0Smrg	PR libstdc++/79348
3467*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3468*14f5a3b0Smrg
3469*14f5a3b0Smrg2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3470*14f5a3b0Smrg
3471*14f5a3b0Smrg	PR libstdc++/79348
3472*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3473*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3474*14f5a3b0Smrg	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
3475*14f5a3b0Smrg	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3476*14f5a3b0Smrg	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
3477*14f5a3b0Smrg	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
3478*14f5a3b0Smrg	* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
3479*14f5a3b0Smrg	* config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
3480*14f5a3b0Smrg	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3481*14f5a3b0Smrg
3482*14f5a3b0Smrg2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
3483*14f5a3b0Smrg
3484*14f5a3b0Smrg	PR libstdc++/79486
3485*14f5a3b0Smrg	* include/std/future (__future_base::_Task_state::_M_run)
3486*14f5a3b0Smrg	(__future_base::_Task_state::_M_run_delayed): Use lvalue types in
3487*14f5a3b0Smrg	result_of expressions.
3488*14f5a3b0Smrg	* testsuite/30_threads/packaged_task/79486.cc: New.
3489*14f5a3b0Smrg
3490*14f5a3b0Smrg2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
3491*14f5a3b0Smrg
3492*14f5a3b0Smrg	PR libstdc++/79467
3493*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
3494*14f5a3b0Smrg	(__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
3495*14f5a3b0Smrg	__is_callable check.
3496*14f5a3b0Smrg	* testsuite/20_util/shared_ptr/cons/79467.cc: New.
3497*14f5a3b0Smrg
3498*14f5a3b0Smrg	* include/bits/atomic_base.h: Re-indent.
3499*14f5a3b0Smrg
3500*14f5a3b0Smrg2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3501*14f5a3b0Smrg
3502*14f5a3b0Smrg	* doc/xml/manual/profile_mode.xml: Update a paper reference.
3503*14f5a3b0Smrg
3504*14f5a3b0Smrg2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3505*14f5a3b0Smrg
3506*14f5a3b0Smrg	* src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
3507*14f5a3b0Smrg
3508*14f5a3b0Smrg2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
3509*14f5a3b0Smrg
3510*14f5a3b0Smrg	* doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
3511*14f5a3b0Smrg	name.
3512*14f5a3b0Smrg	* doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
3513*14f5a3b0Smrg	broken links to texts that are no longer online.
3514*14f5a3b0Smrg	* doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
3515*14f5a3b0Smrg	LCPC 2006 paper.
3516*14f5a3b0Smrg	* doc/xml/manual/using.xml: Update links to memory model information.
3517*14f5a3b0Smrg	* doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
3518*14f5a3b0Smrg	Standard-Library Exception Safety".
3519*14f5a3b0Smrg	* doc/html/*: Regenerate.
3520*14f5a3b0Smrg
3521*14f5a3b0Smrg2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3522*14f5a3b0Smrg
3523*14f5a3b0Smrg	* doc/xml/manual/profile_mode.xml: Unbreak link to
3524*14f5a3b0Smrg	"Optimizing Sorting with Machine Learning Algorithms".
3525*14f5a3b0Smrg
3526*14f5a3b0Smrg2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3527*14f5a3b0Smrg
3528*14f5a3b0Smrg	* src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
3529*14f5a3b0Smrg
3530*14f5a3b0Smrg2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
3531*14f5a3b0Smrg
3532*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
3533*14f5a3b0Smrg	Migration Guide".
3534*14f5a3b0Smrg
3535*14f5a3b0Smrg2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3536*14f5a3b0Smrg
3537*14f5a3b0Smrg	* doc/html/ext/lwg-active.html: Remove.
3538*14f5a3b0Smrg	* doc/html/ext/lwg-closed.html: Ditto.
3539*14f5a3b0Smrg	* doc/html/ext/lwg-defects.html: Ditto.
3540*14f5a3b0Smrg
3541*14f5a3b0Smrg	* doc/Makefile.am (xml_extradir): Remove.
3542*14f5a3b0Smrg	(xml_extra): Ditto.
3543*14f5a3b0Smrg	(stamp-html-docbook-lwg): Remove recipe...
3544*14f5a3b0Smrg	(stamp-html-docbook-data): ...and its use here.
3545*14f5a3b0Smrg	* doc/Makefile.in: Regenerate.
3546*14f5a3b0Smrg
3547*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Shorten two paragraphs explaining
3548*14f5a3b0Smrg	the relationship to the upstream working group.
3549*14f5a3b0Smrg	Replace a local link to ../ext/lwg-active.html by the upstream one.
3550*14f5a3b0Smrg	Replace all reference to ../ext/lwg-defects.html by a new entity
3551*14f5a3b0Smrg	&DR; which refers to the upstream address.
3552*14f5a3b0Smrg
3553*14f5a3b0Smrg2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
3554*14f5a3b0Smrg
3555*14f5a3b0Smrg	* doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
3556*14f5a3b0Smrg
3557*14f5a3b0Smrg2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
3558*14f5a3b0Smrg
3559*14f5a3b0Smrg	PR libstdc++/79323
3560*14f5a3b0Smrg	* testsuite/20_util/duration/literals/range.cc: Prune extra output
3561*14f5a3b0Smrg	at -O0.
3562*14f5a3b0Smrg
3563*14f5a3b0Smrg2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
3564*14f5a3b0Smrg
3565*14f5a3b0Smrg	* doc/xml/manual/documentation_hacking.xml: Update URL of the
3566*14f5a3b0Smrg	DocBook Element Reference.  Use that term as link description
3567*14f5a3b0Smrg	instead of "online".
3568*14f5a3b0Smrg	epubcheck has moved to GitHub.
3569*14f5a3b0Smrg	Remove obsolete link to DocBook Publishing Tools.
3570*14f5a3b0Smrg
3571*14f5a3b0Smrg2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
3572*14f5a3b0Smrg
3573*14f5a3b0Smrg	PR libstdc++/66145
3574*14f5a3b0Smrg	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
3575*14f5a3b0Smrg	so new ios::failure can be caught even when old ABI is the default.
3576*14f5a3b0Smrg	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3577*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
3578*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
3579*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3580*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
3581*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/char/
3582*14f5a3b0Smrg	exceptions_null.cc: Likewise.
3583*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
3584*14f5a3b0Smrg	exceptions_null.cc: Likewise.
3585*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3586*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3587*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/char/
3588*14f5a3b0Smrg	exceptions_null.cc: Likewise.
3589*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3590*14f5a3b0Smrg	exceptions_null.cc: Likewise.
3591*14f5a3b0Smrg	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
3592*14f5a3b0Smrg
3593*14f5a3b0Smrg	PR libstdc++/60936
3594*14f5a3b0Smrg	* src/c++11/Makefile.am: Add new files.
3595*14f5a3b0Smrg	* src/c++11/Makefile.in: Regenerate.
3596*14f5a3b0Smrg	* src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3597*14f5a3b0Smrg	(operator<<, operator>>, getline): Move explicit instantiations to ...
3598*14f5a3b0Smrg	* src/c++11/cow-string-io-inst.cc: ... new file.
3599*14f5a3b0Smrg	* src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
3600*14f5a3b0Smrg	(operator<<, operator>>, getline): Move explicit instantiations to ...
3601*14f5a3b0Smrg	* src/c++11/cow-wstring-io-inst.cc: ... new file.
3602*14f5a3b0Smrg	* src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
3603*14f5a3b0Smrg	(__throw_future_error, __throw_bad_function_call):
3604*14f5a3b0Smrg	(__throw_regex_error): Move functions for C++11 exceptions to the
3605*14f5a3b0Smrg	files that define the exception types.
3606*14f5a3b0Smrg	* src/c++11/functional.cc (__throw_bad_function_call): Move here.
3607*14f5a3b0Smrg	* src/c++11/future.cc (__throw_future_error): Likewise.
3608*14f5a3b0Smrg	* src/c++11/ios.cc (__throw_ios_failure): Likewise.
3609*14f5a3b0Smrg	* src/c++11/regex.cc (__throw_regex_error): Likewise.
3610*14f5a3b0Smrg	* src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
3611*14f5a3b0Smrg	representation directly instead of calling __int_to_char.
3612*14f5a3b0Smrg	* src/c++11/sso_string.cc (__sso_string): New file for definition
3613*14f5a3b0Smrg	of __sso_string type.
3614*14f5a3b0Smrg	* src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3615*14f5a3b0Smrg	explicit instantiations of narrow string I/O functions.
3616*14f5a3b0Smrg	* src/c++11/system_error.cc (__throw_system_error): Move here.
3617*14f5a3b0Smrg	(__sso_string): Move to new file.
3618*14f5a3b0Smrg	* src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
3619*14f5a3b0Smrg	explicit instantiations of wide string I/O functions.
3620*14f5a3b0Smrg	* src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
3621*14f5a3b0Smrg	(operator>>, getline): Remove explicit instantiations from here.
3622*14f5a3b0Smrg
3623*14f5a3b0Smrg2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
3624*14f5a3b0Smrg
3625*14f5a3b0Smrg	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
3626*14f5a3b0Smrg
3627*14f5a3b0Smrg2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3628*14f5a3b0Smrg
3629*14f5a3b0Smrg	* configure.host: Separate Solaris/SPARC and x86 baselines.
3630*14f5a3b0Smrg	* config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
3631*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
3632*14f5a3b0Smrg	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
3633*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
3634*14f5a3b0Smrg	... here.
3635*14f5a3b0Smrg	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
3636*14f5a3b0Smrg	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
3637*14f5a3b0Smrg	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
3638*14f5a3b0Smrg	* config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
3639*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
3640*14f5a3b0Smrg	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
3641*14f5a3b0Smrg	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
3642*14f5a3b0Smrg	... here.
3643*14f5a3b0Smrg	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
3644*14f5a3b0Smrg	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
3645*14f5a3b0Smrg	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
3646*14f5a3b0Smrg
3647*14f5a3b0Smrg	* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
3648*14f5a3b0Smrg	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
3649*14f5a3b0Smrg	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
3650*14f5a3b0Smrg	* config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
3651*14f5a3b0Smrg	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
3652*14f5a3b0Smrg	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
3653*14f5a3b0Smrg
3654*14f5a3b0Smrg2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
3655*14f5a3b0Smrg
3656*14f5a3b0Smrg	PR libstdc++/78346
3657*14f5a3b0Smrg	* include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
3658*14f5a3b0Smrg	not its referent.
3659*14f5a3b0Smrg	(_Iter_comp_to_iter): Likewise.
3660*14f5a3b0Smrg	* testsuite/25_algorithms/search/78346.cc: New test.
3661*14f5a3b0Smrg
3662*14f5a3b0Smrg	PR libstdc++/79254
3663*14f5a3b0Smrg	* config/abi/pre/gnu.ver: Remove recently added symbols.
3664*14f5a3b0Smrg	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3665*14f5a3b0Smrg	(basic_string::_M_copy_assign): Remove.
3666*14f5a3b0Smrg	(basic_string::operator=(const basic_string&)): Don't dispatch to
3667*14f5a3b0Smrg	_M_copy_assign. If source object is small just deallocate, otherwise
3668*14f5a3b0Smrg	perform new allocation before making any changes.
3669*14f5a3b0Smrg	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3670*14f5a3b0Smrg	(basic_string::_M_copy_assign(const basic_string&, true_type)):
3671*14f5a3b0Smrg	Remove.
3672*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3673*14f5a3b0Smrg	Test cases where the allocators are equal or the string is small.
3674*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3675*14f5a3b0Smrg	Likewise.
3676*14f5a3b0Smrg
3677*14f5a3b0Smrg2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
3678*14f5a3b0Smrg
3679*14f5a3b0Smrg	Implement LWG 2825, LWG 2756 breaks class template argument
3680*14f5a3b0Smrg	deduction for optional.
3681*14f5a3b0Smrg	* include/std/optional: Add a deduction guide.
3682*14f5a3b0Smrg	* testsuite/20_util/optional/cons/deduction_guide.cc: New.
3683*14f5a3b0Smrg
3684*14f5a3b0Smrg2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
3685*14f5a3b0Smrg
3686*14f5a3b0Smrg	PR libstdc++/79254
3687*14f5a3b0Smrg	* config/abi/pre/gnu.ver: Add new symbols.
3688*14f5a3b0Smrg	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3689*14f5a3b0Smrg	(basic_string::_M_copy_assign): New overloaded functions to perform
3690*14f5a3b0Smrg	copy assignment.
3691*14f5a3b0Smrg	(basic_string::operator=(const basic_string&)): Dispatch to
3692*14f5a3b0Smrg	_M_copy_assign.
3693*14f5a3b0Smrg	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
3694*14f5a3b0Smrg	(basic_string::_M_copy_assign(const basic_string&, true_type)):
3695*14f5a3b0Smrg	Define, performing rollback on exception.
3696*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3697*14f5a3b0Smrg	Test exception-safety guarantee.
3698*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3699*14f5a3b0Smrg	Likewise.
3700*14f5a3b0Smrg	* testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
3701*14f5a3b0Smrg	std::swap visible.
3702*14f5a3b0Smrg
3703*14f5a3b0Smrg2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
3704*14f5a3b0Smrg
3705*14f5a3b0Smrg	PR libstdc++/70607
3706*14f5a3b0Smrg	* include/tr1/complex (conj): Remove using-declaration and restore
3707*14f5a3b0Smrg	overloads, reverting previous change.
3708*14f5a3b0Smrg
3709*14f5a3b0Smrg	* testsuite/23_containers/list/operations/78389.cc: Fix for C++11
3710*14f5a3b0Smrg	mode.
3711*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/constructible.cc:
3712*14f5a3b0Smrg	Mark as unsupported in C++98 mode.
3713*14f5a3b0Smrg	* testsuite/23_containers/queue/requirements/constructible.cc:
3714*14f5a3b0Smrg	Likewise.
3715*14f5a3b0Smrg	* testsuite/23_containers/stack/requirements/constructible.cc:
3716*14f5a3b0Smrg	Likewise.
3717*14f5a3b0Smrg	* testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
3718*14f5a3b0Smrg
3719*14f5a3b0Smrg	PR libstdc++/79243
3720*14f5a3b0Smrg	* include/bits/c++config (literals::string_view_literals::__7): Add.
3721*14f5a3b0Smrg	Only declare versioned namespaces for the relevant C++ dialects.
3722*14f5a3b0Smrg	* include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
3723*14f5a3b0Smrg	Add versioning macros.
3724*14f5a3b0Smrg	* include/experimental/bits/lfts_config.h:
3725*14f5a3b0Smrg	(fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
3726*14f5a3b0Smrg	* include/experimental/string_view (fundamentals_v2::__detail):
3727*14f5a3b0Smrg	Add versioning macros.
3728*14f5a3b0Smrg	(fundamentals_v2::__detail::__identity): Remove.
3729*14f5a3b0Smrg	(fundamentals_v2::__detail::__idt): Use common_type instead of
3730*14f5a3b0Smrg	__detail::__identity.
3731*14f5a3b0Smrg	* include/std/string_view (__detail::__identity, __detail::__idt):
3732*14f5a3b0Smrg	Likewise.
3733*14f5a3b0Smrg	(literals::string_view_literals): Fix nesting of versioning macros.
3734*14f5a3b0Smrg
3735*14f5a3b0Smrg	PR libstdc++/79190
3736*14f5a3b0Smrg	* libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
3737*14f5a3b0Smrg	[!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
3738*14f5a3b0Smrg	&& !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
3739*14f5a3b0Smrg	Retrieve original pointer value allocated by malloc.
3740*14f5a3b0Smrg	* libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
3741*14f5a3b0Smrg	&& !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
3742*14f5a3b0Smrg	&& !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
3743*14f5a3b0Smrg	Define, adjusting pointer value allocated by malloc and storing for
3744*14f5a3b0Smrg	retrieval by operator delete.
3745*14f5a3b0Smrg
3746*14f5a3b0Smrg2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3747*14f5a3b0Smrg
3748*14f5a3b0Smrg	* libsupc++/eh_atomics.h: Update copyright years.
3749*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
3750*14f5a3b0Smrg
3751*14f5a3b0Smrg2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
3752*14f5a3b0Smrg
3753*14f5a3b0Smrg	PR libstdc++/61791
3754*14f5a3b0Smrg	PR libstdc++/70607
3755*14f5a3b0Smrg	* include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3756*14f5a3b0Smrg	(proj(T), conj(T)): Change return types per DR 1522.
3757*14f5a3b0Smrg	* include/tr1/complex (conj): Remove overloads and use std::conj.
3758*14f5a3b0Smrg	* testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3759*14f5a3b0Smrg	* testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3760*14f5a3b0Smrg	* testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3761*14f5a3b0Smrg	real(T) and imag(T). Allow testing for C++11 too.
3762*14f5a3b0Smrg
3763*14f5a3b0Smrg2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
3764*14f5a3b0Smrg
3765*14f5a3b0Smrg	PR libstdc++/79206
3766*14f5a3b0Smrg	* include/experimental/string_view (operator==): Check sizes first.
3767*14f5a3b0Smrg	* include/std/string_view (operator==): Likewise.
3768*14f5a3b0Smrg
3769*14f5a3b0Smrg2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3770*14f5a3b0Smrg
3771*14f5a3b0Smrg	* testsuite/experimental/array/make_array.cc: Restore <functional>
3772*14f5a3b0Smrg	inclusion.
3773*14f5a3b0Smrg
3774*14f5a3b0Smrg2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3775*14f5a3b0Smrg
3776*14f5a3b0Smrg	* testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3777*14f5a3b0Smrg
3778*14f5a3b0Smrg2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
3779*14f5a3b0Smrg
3780*14f5a3b0Smrg	PR libstdc++/79195
3781*14f5a3b0Smrg	* include/experimental/array (__make_array_elem): New class template
3782*14f5a3b0Smrg	and partial specialization.
3783*14f5a3b0Smrg	(__is_reference_wrapper): Move into __make_array_elem specialization.
3784*14f5a3b0Smrg	(make_array): Use __make_array_elem to determine element type and move
3785*14f5a3b0Smrg	static assertion into specialization. Qualify std::forward call.
3786*14f5a3b0Smrg	(to_array): Add exception specifiation.
3787*14f5a3b0Smrg	* testsuite/experimental/array/make_array.cc: Test argument types
3788*14f5a3b0Smrg	without a common type.
3789*14f5a3b0Smrg	* testsuite/experimental/array/neg.cc: Adjust expected error message.
3790*14f5a3b0Smrg
3791*14f5a3b0Smrg2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3792*14f5a3b0Smrg
3793*14f5a3b0Smrg	* doc/xml/manual/debug.xml: code.google.com uses https now.
3794*14f5a3b0Smrg
3795*14f5a3b0Smrg2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3796*14f5a3b0Smrg
3797*14f5a3b0Smrg	* doc/xml/manual/test.xml: Fix link into gccint online manual.
3798*14f5a3b0Smrg
3799*14f5a3b0Smrg2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
3800*14f5a3b0Smrg
3801*14f5a3b0Smrg	Make poisoned hashes SFINAE away the call operator of the hash.
3802*14f5a3b0Smrg	* include/bits/functional_hash.h
3803*14f5a3b0Smrg	(__poison_hash::__enable_hash_call): New.
3804*14f5a3b0Smrg	* include/std/optional (__optional_hash_call_base): New.
3805*14f5a3b0Smrg	(hash<optional<_Tp>>): Derive from the new base,
3806*14f5a3b0Smrg	move the hash function into that base.
3807*14f5a3b0Smrg	* include/std/variant (__variant_hash_call_base_impl): New.
3808*14f5a3b0Smrg	(__variant_hash_call_base): Likewise.
3809*14f5a3b0Smrg	(hash<variant<_Types...>>): Derive from the new base,
3810*14f5a3b0Smrg	move the hash function into that base.
3811*14f5a3b0Smrg	* testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3812*14f5a3b0Smrg	* testsuite/20_util/variant/hash.cc: Likewise.
3813*14f5a3b0Smrg
3814*14f5a3b0Smrg2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
3815*14f5a3b0Smrg
3816*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3817*14f5a3b0Smrg	* configure: Regenerate.
3818*14f5a3b0Smrg
3819*14f5a3b0Smrg2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
3820*14f5a3b0Smrg
3821*14f5a3b0Smrg	PR libstdc++/69240
3822*14f5a3b0Smrg	* include/bits/random.h (uniform_real_distribution::param_type)
3823*14f5a3b0Smrg	(normal_distribution::param_type, lognormal_distribution::param_type)
3824*14f5a3b0Smrg	(gamma_distribution::param_type, chi_squared_distribution::param_type)
3825*14f5a3b0Smrg	(cauchy_distribution::param_type, fisher_f_distribution::param_type)
3826*14f5a3b0Smrg	(student_t_distribution::param_type)
3827*14f5a3b0Smrg	(bernoulli_distribution::param_type, binomial_distribution::param_type)
3828*14f5a3b0Smrg	(geometric_distribution::param_type)
3829*14f5a3b0Smrg	(negative_binomial_distribution::param_type)
3830*14f5a3b0Smrg	(poisson_distribution::param_type)
3831*14f5a3b0Smrg	(exponential_distribution::param_type)
3832*14f5a3b0Smrg	(weibull_distribution::param_type)
3833*14f5a3b0Smrg	(extreme_value_distribution::param_type)
3834*14f5a3b0Smrg	(discrete_distribution::param_type)
3835*14f5a3b0Smrg	(piecewise_constant_distribution::param_type)
3836*14f5a3b0Smrg	(piecewise_linear_distribution::param_type): Define operator!=.
3837*14f5a3b0Smrg	* include/bits/uniform_int_dist.h
3838*14f5a3b0Smrg	(uniform_int_distribution::param_type): Likewise.
3839*14f5a3b0Smrg	* include/ext/random (beta_distribution::param_type)
3840*14f5a3b0Smrg	(rice_distribution::param_type, nakagami_distribution::param_type)
3841*14f5a3b0Smrg	(pareto_distribution::param_type, k_distribution::param_type)
3842*14f5a3b0Smrg	(arcsine_distribution::param_type, hoyt_distribution::param_type)
3843*14f5a3b0Smrg	(triangular_distribution::param_type)
3844*14f5a3b0Smrg	(von_mises_distribution::param_type)
3845*14f5a3b0Smrg	(hypergeometric_distribution::param_type)
3846*14f5a3b0Smrg	(logistic_distribution::param_type)
3847*14f5a3b0Smrg	(uniform_on_sphere_distribution::param_type)
3848*14f5a3b0Smrg	(uniform_inside_sphere_distribution::param_type): Likewise.
3849*14f5a3b0Smrg	* testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3850*14f5a3b0Smrg	Test construction with param_type.
3851*14f5a3b0Smrg	* testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3852*14f5a3b0Smrg	Likewise.
3853*14f5a3b0Smrg	* testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3854*14f5a3b0Smrg	Likewise.
3855*14f5a3b0Smrg	* testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3856*14f5a3b0Smrg	Likewise.
3857*14f5a3b0Smrg	* testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3858*14f5a3b0Smrg	Likewise.
3859*14f5a3b0Smrg	* testsuite/26_numerics/random/extreme_value_distribution/cons/
3860*14f5a3b0Smrg	parms.cc: Likewise.
3861*14f5a3b0Smrg	* testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3862*14f5a3b0Smrg	Likewise.
3863*14f5a3b0Smrg	* testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3864*14f5a3b0Smrg	Likewise.
3865*14f5a3b0Smrg	* testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3866*14f5a3b0Smrg	Likewise.
3867*14f5a3b0Smrg	* testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3868*14f5a3b0Smrg	Likewise.
3869*14f5a3b0Smrg	* testsuite/26_numerics/random/negative_binomial_distribution/cons/
3870*14f5a3b0Smrg	parms.cc: Likewise.
3871*14f5a3b0Smrg	* testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3872*14f5a3b0Smrg	Likewise.
3873*14f5a3b0Smrg	* testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3874*14f5a3b0Smrg	Likewise.
3875*14f5a3b0Smrg	* testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3876*14f5a3b0Smrg	Likewise.
3877*14f5a3b0Smrg	* testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3878*14f5a3b0Smrg	Likewise.
3879*14f5a3b0Smrg	* testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3880*14f5a3b0Smrg	Likewise.
3881*14f5a3b0Smrg	* testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3882*14f5a3b0Smrg	Likewise.
3883*14f5a3b0Smrg	* testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3884*14f5a3b0Smrg	* testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3885*14f5a3b0Smrg	* testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3886*14f5a3b0Smrg	* testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3887*14f5a3b0Smrg	Likewise.
3888*14f5a3b0Smrg	* testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3889*14f5a3b0Smrg	* testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3890*14f5a3b0Smrg	* testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3891*14f5a3b0Smrg	* testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3892*14f5a3b0Smrg	* testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3893*14f5a3b0Smrg	* testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3894*14f5a3b0Smrg	* testsuite/ext/random/triangular_distribution/cons/parms.cc:
3895*14f5a3b0Smrg	Likewise.
3896*14f5a3b0Smrg	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3897*14f5a3b0Smrg	parms.cc: Likewise.
3898*14f5a3b0Smrg	* testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3899*14f5a3b0Smrg
3900*14f5a3b0Smrg	PR libstdc++/72792
3901*14f5a3b0Smrg	* include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3902*14f5a3b0Smrg	(__allocator_traits_base::__size_type): Remove.
3903*14f5a3b0Smrg	(allocator_traits::_Ptr): New class template to detect const and void
3904*14f5a3b0Smrg	pointer types without instantiating pointer_traits::rebind
3905*14f5a3b0Smrg	unnecessarily.
3906*14f5a3b0Smrg	(allocator_traits::_Diff): Likewise for detecting difference_type.
3907*14f5a3b0Smrg	(allocator_traits::_Size): New class template to detect size_type
3908*14f5a3b0Smrg	without instantiating make_unsigned unnecessarily.
3909*14f5a3b0Smrg	* include/bits/ptr_traits.h (pointer_traits::element_type): Use
3910*14f5a3b0Smrg	__detected_or_t instead of __detected_or_t_.
3911*14f5a3b0Smrg	* include/std/type_traits (__detected_or_t_): Remove.
3912*14f5a3b0Smrg	* testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3913*14f5a3b0Smrg
3914*14f5a3b0Smrg	PR libstdc++/72792
3915*14f5a3b0Smrg	PR libstdc++/72793
3916*14f5a3b0Smrg	* include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3917*14f5a3b0Smrg	Replace with class template using void_t.
3918*14f5a3b0Smrg	(__alloc_rebind): Define in terms of
3919*14f5a3b0Smrg	__allocator_traits_base::__rebind.
3920*14f5a3b0Smrg	(allocator_traits): Remove unconditional static_assert for
3921*14f5a3b0Smrg	rebind_alloc.
3922*14f5a3b0Smrg	* include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3923*14f5a3b0Smrg	(pointer_traits::__rebind): Replace with class template using void_t.
3924*14f5a3b0Smrg	(pointer_traits::rebind): Define in terms of __rebind.
3925*14f5a3b0Smrg	(pointer_traits): Remove unconditional static_assert for rebind.
3926*14f5a3b0Smrg	* testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3927*14f5a3b0Smrg	* testsuite/20_util/pointer_traits/rebind.cc: New test.
3928*14f5a3b0Smrg
3929*14f5a3b0Smrg	PR libstdc++/69321
3930*14f5a3b0Smrg	* include/experimental/any (__any_caster): Avoid instantiating
3931*14f5a3b0Smrg	manager function for types that can't be stored in any.
3932*14f5a3b0Smrg	* include/std/any (__any_caster): Likewise.
3933*14f5a3b0Smrg	* testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3934*14f5a3b0Smrg	* testsuite/experimental/any/misc/any_cast.cc: Likewise.
3935*14f5a3b0Smrg
3936*14f5a3b0Smrg	PR libstdc++/64903
3937*14f5a3b0Smrg	* include/bits/stl_algo.h (is_partitioned): Use increment instead of
3938*14f5a3b0Smrg	std::advance.
3939*14f5a3b0Smrg
3940*14f5a3b0Smrg2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
3941*14f5a3b0Smrg
3942*14f5a3b0Smrg	PR libstdc++/79156
3943*14f5a3b0Smrg	* include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3944*14f5a3b0Smrg	Fix return type.
3945*14f5a3b0Smrg	(__enable_shared_from_this): Declare __shared_ptr as a friend.
3946*14f5a3b0Smrg	* testsuite/ext/shared_ptr/1.cc: New test.
3947*14f5a3b0Smrg
3948*14f5a3b0Smrg	PR libstdc++/64903
3949*14f5a3b0Smrg	* include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3950*14f5a3b0Smrg	point.
3951*14f5a3b0Smrg	* testsuite/25_algorithms/is_partitioned/2.cc: New test.
3952*14f5a3b0Smrg
3953*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Fix typo.
3954*14f5a3b0Smrg	* doc/html/manual/abi.html: Likewise.
3955*14f5a3b0Smrg
3956*14f5a3b0Smrg	PR libstdc++/67085
3957*14f5a3b0Smrg	* include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3958*14f5a3b0Smrg	converting constructors from _Iter_less_iter.
3959*14f5a3b0Smrg	(_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3960*14f5a3b0Smrg	_Iter_comp_iter.
3961*14f5a3b0Smrg	(__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3962*14f5a3b0Smrg	(__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3963*14f5a3b0Smrg	* include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3964*14f5a3b0Smrg	(__make_heap, __sort_heap): Change _Compare parameters to references.
3965*14f5a3b0Smrg	(__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3966*14f5a3b0Smrg	(__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3967*14f5a3b0Smrg	functions as lvalues.
3968*14f5a3b0Smrg	(is_heap): Call __is_heap_until directly to avoid copying __comp.
3969*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3970*14f5a3b0Smrg	count copies during construction with empty sequence.
3971*14f5a3b0Smrg
3972*14f5a3b0Smrg	PR libstdc++/67085
3973*14f5a3b0Smrg	* include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3974*14f5a3b0Smrg	(__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3975*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3976*14f5a3b0Smrg	number of copies.
3977*14f5a3b0Smrg	* testsuite/25_algorithms/make_heap/movable.cc: New test.
3978*14f5a3b0Smrg
3979*14f5a3b0Smrg	PR libstdc++/67085
3980*14f5a3b0Smrg	* include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3981*14f5a3b0Smrg	(pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3982*14f5a3b0Smrg	_GLIBCXX_MOVE when passing comparison function to other functions.
3983*14f5a3b0Smrg	(is_heap_until, is_heap): Use std::move when passing comparison
3984*14f5a3b0Smrg	function.
3985*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/67085.cc: New test.
3986*14f5a3b0Smrg
3987*14f5a3b0Smrg	PR libstdc++/78905
3988*14f5a3b0Smrg	* doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3989*14f5a3b0Smrg	macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3990*14f5a3b0Smrg	Document that the deprecated _GLIBCXX_VERSION macro was removed for
3991*14f5a3b0Smrg	the 4.0.0 release.
3992*14f5a3b0Smrg	* doc/html/*: Regenerate.
3993*14f5a3b0Smrg	* include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3994*14f5a3b0Smrg	* include/Makefile.in: Regenerate.
3995*14f5a3b0Smrg	* include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3996*14f5a3b0Smrg	* testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3997*14f5a3b0Smrg	dg-error.
3998*14f5a3b0Smrg
3999*14f5a3b0Smrg2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
4000*14f5a3b0Smrg
4001*14f5a3b0Smrg	PR libstdc++/69301
4002*14f5a3b0Smrg	* include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
4003*14f5a3b0Smrg	aligned buffer instead of default-initialized variable.
4004*14f5a3b0Smrg	* testsuite/29_atomics/atomic/69301.cc: New test.
4005*14f5a3b0Smrg	* include/experimental/memory (observer_ptr::release): Use reserved
4006*14f5a3b0Smrg	name.
4007*14f5a3b0Smrg	* include/ext/pointer.h (_Pointer_adapter::operator++(int))
4008*14f5a3b0Smrg	(_Pointer_adapter::operator--(int)): Likewise.
4009*14f5a3b0Smrg
4010*14f5a3b0Smrg	PR libstdc++/68925
4011*14f5a3b0Smrg	* include/experimental/random (randint): Use temporary instead of
4012*14f5a3b0Smrg	thread_local static.
4013*14f5a3b0Smrg
4014*14f5a3b0Smrg2017-01-17  Joshua Conner  <joshconner@google.com>
4015*14f5a3b0Smrg
4016*14f5a3b0Smrg	* crossconfig.m4: Add fuchsia OS.
4017*14f5a3b0Smrg	* configure: Regenerate.
4018*14f5a3b0Smrg
4019*14f5a3b0Smrg2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
4020*14f5a3b0Smrg
4021*14f5a3b0Smrg	PR libstdc++/69699
4022*14f5a3b0Smrg	* doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
4023*14f5a3b0Smrg	__GLIBCXX__ macro is not useful. Remove redundant date information
4024*14f5a3b0Smrg	and link to the GCC release timeline.
4025*14f5a3b0Smrg	(abi.versioning.active): Move partial sentence into the previous
4026*14f5a3b0Smrg	paragraph.
4027*14f5a3b0Smrg	* doc/html/*: Regenerate.
4028*14f5a3b0Smrg
4029*14f5a3b0Smrg	PR libstdc++/79114
4030*14f5a3b0Smrg	* libsupc++/nested_exception.h (throw_with_nested): Use decay instead
4031*14f5a3b0Smrg	of remove_reference.
4032*14f5a3b0Smrg	* testsuite/18_support/nested_exception/79114.cc: New test.
4033*14f5a3b0Smrg
4034*14f5a3b0Smrg2017-01-17  Jakub Jelinek  <jakub@redhat.com>
4035*14f5a3b0Smrg
4036*14f5a3b0Smrg	PR other/79046
4037*14f5a3b0Smrg	* configure.ac: Add GCC_BASE_VER.
4038*14f5a3b0Smrg	* fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
4039*14f5a3b0Smrg	get version from BASE-VER file.
4040*14f5a3b0Smrg	* po/Makefile.in: Regenerated.
4041*14f5a3b0Smrg	* libsupc++/Makefile.in: Regenerated.
4042*14f5a3b0Smrg	* testsuite/Makefile.in: Regenerated.
4043*14f5a3b0Smrg	* src/Makefile.in: Regenerated.
4044*14f5a3b0Smrg	* configure: Regenerated.
4045*14f5a3b0Smrg	* Makefile.in: Regenerated.
4046*14f5a3b0Smrg	* include/Makefile.in: Regenerated.
4047*14f5a3b0Smrg	* doc/Makefile.in: Regenerated.
4048*14f5a3b0Smrg	* python/Makefile.in: Regenerated.
4049*14f5a3b0Smrg	* src/c++11/Makefile.in: Regenerated.
4050*14f5a3b0Smrg	* src/c++98/Makefile.in: Regenerated.
4051*14f5a3b0Smrg	* src/filesystem/Makefile.in: Regenerated.
4052*14f5a3b0Smrg
4053*14f5a3b0Smrg2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
4054*14f5a3b0Smrg
4055*14f5a3b0Smrg	PR libstdc++/66145
4056*14f5a3b0Smrg	* src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
4057*14f5a3b0Smrg	exceptions.
4058*14f5a3b0Smrg	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
4059*14f5a3b0Smrg	for test, so new ios::failure can be caught.
4060*14f5a3b0Smrg	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
4061*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
4062*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
4063*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
4064*14f5a3b0Smrg	exceptions_failbit.cc: Likewise.
4065*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/char/
4066*14f5a3b0Smrg	exceptions_null.cc: Likewise.
4067*14f5a3b0Smrg	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
4068*14f5a3b0Smrg	exceptions_null.cc: Likewise.
4069*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
4070*14f5a3b0Smrg	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
4071*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/char/
4072*14f5a3b0Smrg	exceptions_null.cc: Likewise.
4073*14f5a3b0Smrg	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
4074*14f5a3b0Smrg	exceptions_null.cc: Likewise.
4075*14f5a3b0Smrg	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
4076*14f5a3b0Smrg
4077*14f5a3b0Smrg	PR libstdc++/78702
4078*14f5a3b0Smrg	* include/bits/locale_classes.h (locale::facet::__shim): Change from
4079*14f5a3b0Smrg	private to protected.
4080*14f5a3b0Smrg	* src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
4081*14f5a3b0Smrg	make locale::facet::__shim accessible.
4082*14f5a3b0Smrg
4083*14f5a3b0Smrg2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
4084*14f5a3b0Smrg
4085*14f5a3b0Smrg	PR libstdc++/78389
4086*14f5a3b0Smrg	* include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
4087*14f5a3b0Smrg	(merge(list&&, _StrictWeakOrdering)): Likewise.
4088*14f5a3b0Smrg	* testsuite/23_containers/list/operations/78389.cc: Add
4089*14f5a3b0Smrg	better test for the sizes.
4090*14f5a3b0Smrg
4091*14f5a3b0Smrg2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
4092*14f5a3b0Smrg
4093*14f5a3b0Smrg	* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4094*14f5a3b0Smrg	Skip test when -D_GLIBCXX_PROFILE mode is included in options.
4095*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4096*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4097*14f5a3b0Smrg	Likewise.
4098*14f5a3b0Smrg	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
4099*14f5a3b0Smrg	* testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
4100*14f5a3b0Smrg	* testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
4101*14f5a3b0Smrg	* testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4102*14f5a3b0Smrg	* testsuite/23_containers/unordered_map/modifiers/extract.cc:
4103*14f5a3b0Smrg	Likewise.
4104*14f5a3b0Smrg	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
4105*14f5a3b0Smrg	Likewise.
4106*14f5a3b0Smrg	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
4107*14f5a3b0Smrg	Likewise.
4108*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/modifiers/extract.cc:
4109*14f5a3b0Smrg	Likewise.
4110*14f5a3b0Smrg	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
4111*14f5a3b0Smrg	Likewise.
4112*14f5a3b0Smrg	* testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
4113*14f5a3b0Smrg	* testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
4114*14f5a3b0Smrg	* testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
4115*14f5a3b0Smrg	* testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
4116*14f5a3b0Smrg	* testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
4117*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
4118*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4119*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
4120*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
4121*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
4122*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
4123*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
4124*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4125*14f5a3b0Smrg
4126*14f5a3b0Smrg2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4127*14f5a3b0Smrg
4128*14f5a3b0Smrg	PR libstdc++/65411
4129*14f5a3b0Smrg	* config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
4130*14f5a3b0Smrg	retry fclose on EINTR.
4131*14f5a3b0Smrg
4132*14f5a3b0Smrg	* include/profile/base.h: Remove unused header that leads to header
4133*14f5a3b0Smrg	cycle in C++17 mode.
4134*14f5a3b0Smrg
4135*14f5a3b0Smrg	PR libstdc++/79075
4136*14f5a3b0Smrg	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
4137*14f5a3b0Smrg	Make _If_sv private.
4138*14f5a3b0Smrg	[!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
4139*14f5a3b0Smrg	basic_string_view arguments.
4140*14f5a3b0Smrg
4141*14f5a3b0Smrg	PR libstdc++/79075
4142*14f5a3b0Smrg	* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
4143*14f5a3b0Smrg	redundant option from cxxflags.
4144*14f5a3b0Smrg	(check_effective_target_cxx11-abi): Define.
4145*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
4146*14f5a3b0Smrg	effective target.
4147*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
4148*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
4149*14f5a3b0Smrg	Likewise.
4150*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
4151*14f5a3b0Smrg	Likewise.
4152*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
4153*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
4154*14f5a3b0Smrg	Likewise.
4155*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
4156*14f5a3b0Smrg	Likewise.
4157*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
4158*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
4159*14f5a3b0Smrg	Likewise.
4160*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
4161*14f5a3b0Smrg	Likewise.
4162*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
4163*14f5a3b0Smrg	Likewise.
4164*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
4165*14f5a3b0Smrg	Likewise.
4166*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
4167*14f5a3b0Smrg	Likewise.
4168*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
4169*14f5a3b0Smrg	Likewise.
4170*14f5a3b0Smrg	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
4171*14f5a3b0Smrg	Likewise.
4172*14f5a3b0Smrg	* testsuite/23_containers/list/61347.cc: Likewise.
4173*14f5a3b0Smrg	* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
4174*14f5a3b0Smrg	* testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
4175*14f5a3b0Smrg
4176*14f5a3b0Smrg2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
4177*14f5a3b0Smrg
4178*14f5a3b0Smrg	PR libstdc++/78389
4179*14f5a3b0Smrg	* include/bits/list.tcc (merge(list&&)):
4180*14f5a3b0Smrg	Adjust list sizes if the comparator throws.
4181*14f5a3b0Smrg	(merge(list&&, _StrictWeakOrdering)): Likewise.
4182*14f5a3b0Smrg	(sort()): Splice elements back from the scratch buffers
4183*14f5a3b0Smrg	if the comparator throws.
4184*14f5a3b0Smrg	(sort(_StrictWeakOrdering)): Likewise.
4185*14f5a3b0Smrg	* testsuite/23_containers/list/operations/78389.cc: New.
4186*14f5a3b0Smrg
4187*14f5a3b0Smrg2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
4188*14f5a3b0Smrg
4189*14f5a3b0Smrg	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
4190*14f5a3b0Smrg	XFAIL for C++17 until node reinsertion supports fancy pointers.
4191*14f5a3b0Smrg
4192*14f5a3b0Smrg	PR libstdc++/78361
4193*14f5a3b0Smrg	* testsuite/20_util/add_pointer/value.cc: Test forming function
4194*14f5a3b0Smrg	pointers.
4195*14f5a3b0Smrg
4196*14f5a3b0Smrg2017-01-13  Michael Brune  <lucdanton@free.fr>
4197*14f5a3b0Smrg
4198*14f5a3b0Smrg	PR libstdc++/78361
4199*14f5a3b0Smrg	* include/std/type_traits (__is_referenceable): Handle noexcept
4200*14f5a3b0Smrg	function types.
4201*14f5a3b0Smrg
4202*14f5a3b0Smrg2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
4203*14f5a3b0Smrg
4204*14f5a3b0Smrg	PR libstdc++/77528
4205*14f5a3b0Smrg	* include/bits/stl_queue.h (queue, priority_queue): Remove default
4206*14f5a3b0Smrg	member-initializers and define default constructors as templates with
4207*14f5a3b0Smrg	constraints.
4208*14f5a3b0Smrg	* include/bits/stl_stack.h (stack): Likewise.
4209*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/constructible.cc:
4210*14f5a3b0Smrg	New.
4211*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/
4212*14f5a3b0Smrg	explicit_instantiation/1.cc: Test more instantiations.
4213*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/
4214*14f5a3b0Smrg	explicit_instantiation/1_c++98.cc: Likewise.
4215*14f5a3b0Smrg	* testsuite/23_containers/queue/requirements/constructible.cc: New.
4216*14f5a3b0Smrg	* testsuite/23_containers/stack/requirements/constructible.cc: New.
4217*14f5a3b0Smrg
4218*14f5a3b0Smrg	PR libstdc++/66284
4219*14f5a3b0Smrg	* doc/xml/manual/intro.xml: Document LWG 2781 change.
4220*14f5a3b0Smrg	* doc/html/*: Regenerate.
4221*14f5a3b0Smrg	* include/std/functional (_Function_base::_Ref_manager): Remove.
4222*14f5a3b0Smrg	(_Function_handler): Remove partial specializations for
4223*14f5a3b0Smrg	reference_wrapper.
4224*14f5a3b0Smrg	(function::target): Remove special case for const qualification.
4225*14f5a3b0Smrg	* testsuite/20_util/function/6.cc: Adjust tests for target type.
4226*14f5a3b0Smrg	* testsuite/20_util/function/7.cc: Likewise.
4227*14f5a3b0Smrg	* testsuite/20_util/function/8.cc: Likewise.
4228*14f5a3b0Smrg
4229*14f5a3b0Smrg2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
4230*14f5a3b0Smrg
4231*14f5a3b0Smrg	PR libstdc++/78134
4232*14f5a3b0Smrg	* include/bits/stl_map.h (map::lower_bound, map::upper_bound)
4233*14f5a3b0Smrg	(map::equal_range): Fix return type of heterogeneous overloads.
4234*14f5a3b0Smrg	* include/bits/stl_multimap.h (multimap::lower_bound)
4235*14f5a3b0Smrg	(multimap::upper_bound, multimap::equal_range): Likewise.
4236*14f5a3b0Smrg	* include/bits/stl_multiset.h (multiset::lower_bound)
4237*14f5a3b0Smrg	(multiset::upper_bound, multiset::equal_range): Likewise.
4238*14f5a3b0Smrg	* include/bits/stl_set.h (set::lower_bound, set::upper_bound)
4239*14f5a3b0Smrg	(set::equal_range): Likewise.
4240*14f5a3b0Smrg	* testsuite/23_containers/map/operations/2.cc
4241*14f5a3b0Smrg	* testsuite/23_containers/multimap/operations/2.cc
4242*14f5a3b0Smrg	* testsuite/23_containers/multiset/operations/2.cc
4243*14f5a3b0Smrg	* testsuite/23_containers/set/operations/2.cc
4244*14f5a3b0Smrg
4245*14f5a3b0Smrg	PR libstdc++/78273
4246*14f5a3b0Smrg	* include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
4247*14f5a3b0Smrg	the heterogeneous comparison can only find one match.
4248*14f5a3b0Smrg	* include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
4249*14f5a3b0Smrg	* testsuite/23_containers/map/operations/2.cc: Test count works with
4250*14f5a3b0Smrg	comparison function that just partitions rather than sorting.
4251*14f5a3b0Smrg	* testsuite/23_containers/set/operations/2.cc: Likewise.
4252*14f5a3b0Smrg
4253*14f5a3b0Smrg2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
4254*14f5a3b0Smrg
4255*14f5a3b0Smrg	Reduce the size of variant, it doesn't need an index of
4256*14f5a3b0Smrg	type size_t internally.
4257*14f5a3b0Smrg	* include/std/variant (parse_numbers.h): New include.
4258*14f5a3b0Smrg	(__select_index): New.
4259*14f5a3b0Smrg	(_Variant_storage<false, _Types...>::_M_reset_impl): Use
4260*14f5a3b0Smrg	_index_type for comparison with variant_npos.
4261*14f5a3b0Smrg	(_Variant_storage<false, _Types...>::__index_type): New.
4262*14f5a3b0Smrg	(_Variant_storage<false, _Types...>::_M_index): Change the
4263*14f5a3b0Smrg	type from size_t to __index_type.
4264*14f5a3b0Smrg	(_Variant_storage<true, _Types...>::__index_type): New.
4265*14f5a3b0Smrg	(_Variant_storage<true, _Types...>::_M_index): Change the
4266*14f5a3b0Smrg	type from size_t to __index_type.
4267*14f5a3b0Smrg	(_Variant_base::_M_valid): Use _Storage::__index_type
4268*14f5a3b0Smrg	for comparison with variant_npos.
4269*14f5a3b0Smrg	(variant::index): Use _Base::_Storage::__index_type
4270*14f5a3b0Smrg	for comparison with variant_npos.
4271*14f5a3b0Smrg	* testsuite/20_util/variant/index_type.cc: New.
4272*14f5a3b0Smrg
4273*14f5a3b0Smrg2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
4274*14f5a3b0Smrg
4275*14f5a3b0Smrg	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
4276*14f5a3b0Smrg	effective target selector to prevent running in C++17 mode.
4277*14f5a3b0Smrg
4278*14f5a3b0Smrg	PR libstdc++/77528
4279*14f5a3b0Smrg	* include/bits/stl_queue.h (queue::c): Add default member initializer.
4280*14f5a3b0Smrg	(queue::queue()): Add constructor and define as defaulted.
4281*14f5a3b0Smrg	(queue::queue(_Sequence&&)): Remove default argument.
4282*14f5a3b0Smrg	(priority_queue::c, priority_queue::comp): Add default member
4283*14f5a3b0Smrg	initializers.
4284*14f5a3b0Smrg	(priority_queue::priority_queue()): Add constructor and define as
4285*14f5a3b0Smrg	defaulted.
4286*14f5a3b0Smrg	(priority_queue::priority_queue(const _Compare&, _Sequence&&)):
4287*14f5a3b0Smrg	Remove default argument for first parameter.
4288*14f5a3b0Smrg	* include/bits/stl_stack.h (stack::c): Add default member initializer.
4289*14f5a3b0Smrg	(stack::stack()): Add constructor and define as defaulted.
4290*14f5a3b0Smrg	(stack::stack(const _Sequence&)): Remove default argument.
4291*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/
4292*14f5a3b0Smrg	explicit_instantiation/1.cc: Test explicit instantiation with
4293*14f5a3b0Smrg	non-DefaultConstructible sequence.
4294*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/77528.cc: New test.
4295*14f5a3b0Smrg	* testsuite/23_containers/priority_queue/requirements/
4296*14f5a3b0Smrg	explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
4297*14f5a3b0Smrg	* testsuite/23_containers/queue/77528.cc: New test.
4298*14f5a3b0Smrg	* testsuite/23_containers/queue/requirements/explicit_instantiation/
4299*14f5a3b0Smrg	1.cc: Test explicit instantiation with non-DefaultConstructible
4300*14f5a3b0Smrg	sequence.
4301*14f5a3b0Smrg	* testsuite/23_containers/queue/requirements/explicit_instantiation/
4302*14f5a3b0Smrg	1_c++0x.cc: Replace with 1_c++98.cc.
4303*14f5a3b0Smrg	* testsuite/23_containers/stack/77528.cc: New test.
4304*14f5a3b0Smrg	* testsuite/23_containers/stack/requirements/explicit_instantiation/
4305*14f5a3b0Smrg	1.cc: Test explicit instantiation with non-DefaultConstructible
4306*14f5a3b0Smrg	sequence.
4307*14f5a3b0Smrg	* testsuite/23_containers/stack/requirements/explicit_instantiation/
4308*14f5a3b0Smrg	1_c++0x.cc: Replace with 1_c++98.cc.
4309*14f5a3b0Smrg
4310*14f5a3b0Smrg2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
4311*14f5a3b0Smrg
4312*14f5a3b0Smrg	* include/bits/locale_facets_nonio.tcc
4313*14f5a3b0Smrg	(time_get::_M_extract_via_format): Avoid compilation errors with
4314*14f5a3b0Smrg	non-standard struct tm.
4315*14f5a3b0Smrg
4316*14f5a3b0Smrg2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
4317*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
4318*14f5a3b0Smrg
4319*14f5a3b0Smrg	* python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
4320*14f5a3b0Smrg	(is_specialization, strip_versioned_namespace): New helpers functions
4321*14f5a3b0Smrg	to work with symbols in the versioned namespace.
4322*14f5a3b0Smrg	(Printer.add_version): Add second name using versioned namespace.
4323*14f5a3b0Smrg	(add_one_template_type_printer, add_one_type_printer): Add second
4324*14f5a3b0Smrg	type printers using versioned namespace.
4325*14f5a3b0Smrg	(register_type_printers): Add template type printer for basic_string.
4326*14f5a3b0Smrg	(build_libstdcxx_dictionary): Remove dead code.
4327*14f5a3b0Smrg	* python/libstdcxx/v6/xmethods.py: Make all matchers look for
4328*14f5a3b0Smrg	versioned namespace.
4329*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
4330*14f5a3b0Smrg	results.
4331*14f5a3b0Smrg	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
4332*14f5a3b0Smrg
4333*14f5a3b0Smrg2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4334*14f5a3b0Smrg
4335*14f5a3b0Smrg	PR libstdc++/79017
4336*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
4337*14f5a3b0Smrg	functions separately on darwin and if they're missing define
4338*14f5a3b0Smrg	_GLIBCXX_NO_C99_ROUNDING_FUNCS.
4339*14f5a3b0Smrg	* config.h.in: Regenerate.
4340*14f5a3b0Smrg	* configure: Regenerate.
4341*14f5a3b0Smrg	* include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
4342*14f5a3b0Smrg	(llrintf, llrintl, llround, llroundf, llroundl): Do not define.
4343*14f5a3b0Smrg
4344*14f5a3b0Smrg	* testsuite/30_threads/condition_variable/members/3.cc: Use new macro
4345*14f5a3b0Smrg	to detect correct thread_local destructors.
4346*14f5a3b0Smrg	* testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
4347*14f5a3b0Smrg	Define.
4348*14f5a3b0Smrg
4349*14f5a3b0Smrg2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
4350*14f5a3b0Smrg	    Aditya Kumar  <hiraditya@msn.com>
4351*14f5a3b0Smrg
4352*14f5a3b0Smrg	PR libstdc++/66414
4353*14f5a3b0Smrg	* include/bits/basic_string.tcc
4354*14f5a3b0Smrg	(basic_string::find(const CharT*, size_type, size_type)): Optimize.
4355*14f5a3b0Smrg
4356*14f5a3b0Smrg2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4357*14f5a3b0Smrg
4358*14f5a3b0Smrg	* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
4359*14f5a3b0Smrg	* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
4360*14f5a3b0Smrg
4361*14f5a3b0Smrg	* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
4362*14f5a3b0Smrg	Include <cassert> header.
4363*14f5a3b0Smrg
4364*14f5a3b0Smrg	PR libstdc++/78968
4365*14f5a3b0Smrg	* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
4366*14f5a3b0Smrg	* configure: Regenerate.
4367*14f5a3b0Smrg
4368*14f5a3b0Smrg2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
4369*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
4370*14f5a3b0Smrg
4371*14f5a3b0Smrg	* include/std/variant (variant, swap): Replace __and_ usage with fold
4372*14f5a3b0Smrg	expressions.
4373*14f5a3b0Smrg
4374*14f5a3b0Smrg2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4375*14f5a3b0Smrg
4376*14f5a3b0Smrg	PR go/78978
4377*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
4378*14f5a3b0Smrg	* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
4379*14f5a3b0Smrg	GLIBCXX_CHECK_ASSEMBLER_HWCAP.
4380*14f5a3b0Smrg	* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
4381*14f5a3b0Smrg	HWCAP_FLAGS.
4382*14f5a3b0Smrg	* aclocal.m4: Regenerate.
4383*14f5a3b0Smrg	* configure: Regenerate.
4384*14f5a3b0Smrg	* Makefile.in, doc/Makefile.in, include/Makefile.in,
4385*14f5a3b0Smrg	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
4386*14f5a3b0Smrg	src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
4387*14f5a3b0Smrg	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
4388*14f5a3b0Smrg
4389*14f5a3b0Smrg2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
4390*14f5a3b0Smrg
4391*14f5a3b0Smrg	* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
4392*14f5a3b0Smrg
4393*14f5a3b0Smrg	PR libstdc++/78991
4394*14f5a3b0Smrg	* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
4395*14f5a3b0Smrg	(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
4396*14f5a3b0Smrg	(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
4397*14f5a3b0Smrg	move function objects.
4398*14f5a3b0Smrg	(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
4399*14f5a3b0Smrg	(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
4400*14f5a3b0Smrg	* testsuite/25_algorithms/sort/78991.cc: New test.
4401*14f5a3b0Smrg
4402*14f5a3b0Smrg2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
4403*14f5a3b0Smrg
4404*14f5a3b0Smrg	* include/bits/std_function.h (function::_Signature_type): Remove.
4405*14f5a3b0Smrg	(function::function(_Functor)): Adjust.
4406*14f5a3b0Smrg
4407*14f5a3b0Smrg2017-01-05  Tim Shen  <timshen@google.com>
4408*14f5a3b0Smrg
4409*14f5a3b0Smrg	PR libstdc++/78996
4410*14f5a3b0Smrg	* include/std/variant (__gen_vtable_impl): rename __unused to
4411*14f5a3b0Smrg	__dimensions to avoid naming conflict.
4412*14f5a3b0Smrg
4413*14f5a3b0Smrg2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
4414*14f5a3b0Smrg
4415*14f5a3b0Smrg	PR libstdc++/78968
4416*14f5a3b0Smrg	* config.h.in: Regenerate.
4417*14f5a3b0Smrg	* configure: Likewise.
4418*14f5a3b0Smrg	* configure.ac: Check for __cxa_thread_atexit.
4419*14f5a3b0Smrg	* libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
4420*14f5a3b0Smrg	Don't define __cxa_thread_atexit if libc provides it.
4421*14f5a3b0Smrg
4422*14f5a3b0Smrg2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
4423*14f5a3b0Smrg
4424*14f5a3b0Smrg	Implement 2801, Default-constructibility of unique_ptr.
4425*14f5a3b0Smrg	* include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
4426*14f5a3b0Smrg	(unique_ptr::_DeleterConstraint): Likewise.
4427*14f5a3b0Smrg	(unique_ptr()): Constrain.
4428*14f5a3b0Smrg	(unique_ptr(pointer)): Likewise.
4429*14f5a3b0Smrg	(unique_ptr(nullptr_t)): Likewise.
4430*14f5a3b0Smrg	(unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
4431*14f5a3b0Smrg	(unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
4432*14f5a3b0Smrg	(unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
4433*14f5a3b0Smrg	(unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
4434*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
4435*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
4436*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/default.cc: New.
4437*14f5a3b0Smrg	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
4438*14f5a3b0Smrg
4439*14f5a3b0Smrg2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
4440*14f5a3b0Smrg	    Jonathan Wakely  <jwakely@redhat.com>
4441*14f5a3b0Smrg
4442*14f5a3b0Smrg	PR libstdc++/64735
4443*14f5a3b0Smrg	* acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
4444*14f5a3b0Smrg	* config.h.in: Regenerate.
4445*14f5a3b0Smrg	* config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
4446*14f5a3b0Smrg	(GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
4447*14f5a3b0Smrg	exports for exception_ptr, nested_exception, and future conditional.
4448*14f5a3b0Smrg	[HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
4449*14f5a3b0Smrg	exports for exception_ptr, nested_exception, and future conditional.
4450*14f5a3b0Smrg	* configure: Regenerate.
4451*14f5a3b0Smrg	* configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
4452*14f5a3b0Smrg	* include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
4453*14f5a3b0Smrg	* libsupc++/eh_atomics.h: New file for internal use only.
4454*14f5a3b0Smrg	(__eh_atomic_inc, __eh_atomic_dec): New.
4455*14f5a3b0Smrg	* libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
4456*14f5a3b0Smrg	(exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
4457*14f5a3b0Smrg	(rethrow_exception): Use eh_atomics.h reference counting helpers.
4458*14f5a3b0Smrg	* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
4459*14f5a3b0Smrg	* libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
4460*14f5a3b0Smrg	* libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
4461*14f5a3b0Smrg	* libsupc++/exception_ptr.h: Likewise.
4462*14f5a3b0Smrg	* libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
4463*14f5a3b0Smrg	* libsupc++/nested_exception.cc: Remove check for
4464*14f5a3b0Smrg	ATOMIC_INT_LOCK_FREE.
4465*14f5a3b0Smrg	* libsupc++/nested_exception.h: Likewise.
4466*14f5a3b0Smrg	* src/c++11/future.cc: Likewise.
4467*14f5a3b0Smrg	* testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
4468*14f5a3b0Smrg	* testsuite/18_support/nested_exception/*: Likewise.
4469*14f5a3b0Smrg	* testsuite/30_threads/async/*: Likewise.
4470*14f5a3b0Smrg	* testsuite/30_threads/future/*: Likewise.
4471*14f5a3b0Smrg	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
4472*14f5a3b0Smrg	* testsuite/30_threads/packaged_task/*: Likewise.
4473*14f5a3b0Smrg	* testsuite/30_threads/promise/*: Likewise.
4474*14f5a3b0Smrg	* testsuite/30_threads/shared_future/*: Likewise.
4475*14f5a3b0Smrg
4476*14f5a3b0Smrg2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
4477*14f5a3b0Smrg
4478*14f5a3b0Smrg	* doc/xml/manual/documentation_hacking.xml: sourceforge.net now
4479*14f5a3b0Smrg	defaults to https; adjust reference.
4480*14f5a3b0Smrg
4481*14f5a3b0Smrg2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
4482*14f5a3b0Smrg
4483*14f5a3b0Smrg	PR libstdc++/78956
4484*14f5a3b0Smrg	* include/std/thread (thread(const thread&&)): Add deleted
4485*14f5a3b0Smrg	constructor.
4486*14f5a3b0Smrg	* testsuite/30_threads/thread/cons/lwg2097.cc: New test.
4487*14f5a3b0Smrg
4488*14f5a3b0Smrg	* doc/xml/manual/spine.xml: Update copyright years.
4489*14f5a3b0Smrg	* doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
4490*14f5a3b0Smrg	* doc/xml/manual/test.xml: Likewise.
4491*14f5a3b0Smrg	* doc/html/*: Regenerate.
4492*14f5a3b0Smrg
4493*14f5a3b0Smrg2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
4494*14f5a3b0Smrg
4495*14f5a3b0Smrg	* doc/xml/faq.xml: Update address of C++ ABI link.
4496*14f5a3b0Smrg	* doc/xml/manual/abi.xml: Ditto.
4497*14f5a3b0Smrg
4498*14f5a3b0Smrg2017-01-01  Jakub Jelinek  <jakub@redhat.com>
4499*14f5a3b0Smrg
4500*14f5a3b0Smrg	Update copyright years.
4501*14f5a3b0Smrg
4502*14f5a3b0SmrgCopyright (C) 2017 Free Software Foundation, Inc.
4503*14f5a3b0Smrg
4504*14f5a3b0SmrgCopying and distribution of this file, with or without modification,
4505*14f5a3b0Smrgare permitted in any medium without royalty provided the copyright
4506*14f5a3b0Smrgnotice and this notice are preserved.
4507