* testsuite/24_iterators/container_access.cc (test03): Make il3 static.
[gcc.git] / libstdc++-v3 / ChangeLog
1 2017-05-09 Jason Merrill <jason@redhat.com>
2
3 * testsuite/24_iterators/container_access.cc (test03): Make il3 static.
4
5 2017-05-08 Jonathan Wakely <jwakely@redhat.com>
6
7 * include/std/optional: Use a separate static_assert per condition.
8 * testsuite/20_util/optional/cons/value_neg.cc: Update dg-error line
9 numbers.
10
11 * doc/xml/manual/mt_allocator.xml: Clarify deallocation behaviour.
12 * doc/html/*: Regenerate.
13
14 2017-05-02 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
15
16 PR libstdc++/69506
17 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
18
19 2017-04-29 François Dumont <fdumont@gcc.gnu.org>
20
21 * testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
22 by a note-test.
23
24 2017-04-28 Jonathan Wakely <jwakely@redhat.com>
25
26 PR libstdc++/80553
27 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
28 assertions to ensure type is destructible.
29 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
30 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
31 Move to stl_construct.h.
32 * testsuite/20_util/specialized_algorithms/memory_management_tools/
33 destroy_neg.cc: New test.
34 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
35
36 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
37 superfluous "" in dg-error.
38
39 2017-04-28 Tom de Vries <tom@codesourcery.com>
40
41 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
42 superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
43
44 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
45
46 * include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
47 (PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
48 * testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
49 Likewise.
50
51 2017-04-26 Jonathan Wakely <jwakely@redhat.com>
52
53 * testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
54 comment. Ensure first test works because allocator type propagates and
55 not because is_always_equal is true.
56 * testsuite/23_containers/vector/52591.cc: Likewise. Restore original
57 testcase that instantiates the move-assignment operator.
58
59 2017-04-24 Jonathan Wakely <jwakely@redhat.com>
60
61 PR libstdc++/80506
62 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
63 number used in loop condition.
64
65 PR libstdc++/80504
66 * include/bits/refwrap.h (ref, cref): Qualify calls.
67 * testsuite/20_util/reference_wrapper/80504.cc: New test.
68
69 PR libstdc++/80493
70 * include/experimental/optional (optional::swap): Fix exception
71 specification.
72
73 2017-04-21 Jonathan Wakely <jwakely@redhat.com>
74
75 PR libstdc++/80316
76 * include/std/future (_State_baseV2::_Setter::operator()): Remove
77 _S_check calls that are done after the pointer to the shared state is
78 already dereferenced.
79 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
80 as partial specialization so it can be defined within the definition
81 of _State_baseV2.
82 (_State_baseV2::__setter): Call _S_check.
83 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
84 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
85 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
86 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
87 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
88 Use new __setter overload.
89 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
90 * testsuite/30_threads/promise/members/set_exception.cc: Test
91 promise<T&> and promise<void> specializations.
92 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
93 Test for no_state error condition.
94 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
95
96 * include/backward/auto_ptr.h: Ignore deprecated warnings from use
97 of auto_ptr.
98 * include/bits/shared_ptr.h: Likewise.
99 * include/bits/shared_ptr_base.h: Likewise.
100 * include/bits/unique_ptr.h: Likewise.
101 * libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
102 dg-error lineno.
103 * libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
104 * libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
105 Likewise.
106 * libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
107 Likewise.
108
109 2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
110
111 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
112 * include/tr1/exp_integral.tcc: Increase iteration limits.
113 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
114 pr68397.cc: New test.
115 * testsuite/special_functions/14_expint/pr68397.cc: New test.
116
117 2017-04-20 Jonathan Wakely <jwakely@redhat.com>
118
119 PR libstdc++/79862
120 * include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
121 (atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
122 (atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
123 (atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
124 (atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
125 (atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
126 (atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
127 (atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
128 (atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
129 define.
130
131 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
132
133 * doc/xml/manual/abi.xml: Rephrase one of the references to the
134 Itanium C++ ABI.
135 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
136 * doc/html/*: Regenerate.
137
138 * libsupc++/new: Update comment on #endif directive.
139
140 PR libstdc++/80448
141 * include/experimental/bits/fs_dir.h (directory_iterator)
142 (recursive_directory_iterator): Remove noexcept from defaulted
143 constructors.
144
145 PR libstdc++/80446
146 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
147 * libsupc++/new (launder): Likewise.
148
149 2017-04-18 Jonathan Wakely <jwakely@redhat.com>
150
151 * include/std/functional (default_searcher, __boyer_moore_array_base)
152 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
153 (boyer_moore_horspool_searcher): Remove redundant namespace
154 qualification.
155 (default_searcher::operator()): Construct return value early and
156 advance second member in-place.
157 (boyer_moore_horspool_searcher::operator()): Increment random access
158 iterator directly instead of using std::next.
159 (boyer_moore_searcher::operator()): Fix return value.
160 * testsuite/20_util/function_objects/searchers.cc: Check both parts
161 of return values.
162
163 2017-04-12 Gerald Pfeifer <gerald@pfeifer.com>
164
165 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
166 * doc/xml/manual/abi.xml. Ditto (thrice).
167
168 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
169
170 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
171 * doc/html/*: Regenerate.
172
173 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
174 that no longer fail.
175
176 * include/bits/ios_base.h: Correct comment.
177 * testsuite/util/testsuite_hooks.h: Likewise.
178
179 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
180 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
181 directories for debug, parallel and profile headers.
182 * doc/html/*: Regenerate.
183
184 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
185 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
186 (std::char_traits<char>, std::char_traits<wchar_t>): Add
187 _GLIBCXX17_CONSTEXPR on assign.
188 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
189 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
190 * testsuite/21_strings/char_traits/requirements/
191 constexpr_functions_c++17.cc: New test.
192
193 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
194
195 PR libstdc++/79141
196 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
197 (operator=(typename conditional<
198 __and_<is_copy_assignable<_T1>,
199 is_copy_assignable<_T2>>::value,
200 const pair&, const __nonesuch&>::type)): Change __nonesuch
201 to __nonesuch_no_braces.
202 (operator=(typename conditional<
203 __not_<__and_<is_copy_assignable<_T1>,
204 is_copy_assignable<_T2>>>::value,
205 const pair&, const __nonesuch&>::type)): Likewise.
206 (operator=(typename conditional<
207 __and_<is_move_assignable<_T1>,
208 is_move_assignable<_T2>>::value,
209 pair&&, __nonesuch&&>::type)): Likewise.
210 * testsuite/20_util/pair/79141.cc: New.
211
212 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com>
213
214 Implement std::is_aggregate.
215 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
216 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
217 New.
218 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
219 * testsuite/20_util/is_aggregate/value.cc: Likewise.
220
221 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
222
223 Adjust optional's pretty printer for LWG 2900.
224 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
225 Look at the nested payload in case of non-experimental optional.
226
227 2017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com>
228
229 Implement LWG 2900, The copy and move constructors
230 of optional are not constexpr.
231 * include/std/optional (_Optional_payload): New.
232 (_Optional_base): Remove the bool parameter.
233 (_Optional_base<_Tp, false>): Remove.
234 (_Optional_base()): Adjust.
235 (_Optional_base(nullopt_t)): Likewise.
236 (_Optional_base(in_place_t, _Args&&...)): Likewise.
237 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
238 Likewise.
239 (_Optional_base(const _Optional_base&)): Likewise.
240 (_Optional_base(_Optional_base&&)): Likewise.
241 (operator=(const _Optional_base&)): Likewise.
242 (operator=(_Optional_base&&)): Likewise.
243 (~_Optional_base()): Remove.
244 (_M_is_engaged()): Adjust.
245 (_M_get()): Likewise.
246 (_M_construct(_Args&&...)): Likewise.
247 (_M_destruct()): Likewise.
248 (_M_reset()): Likewise.
249 (_Optional_base::_Empty_byte): Remove.
250 (_Optional_base::_M_empty): Remove.
251 (_Optional_base::_M_payload): Adjust.
252 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
253 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
254
255 2017-03-28 Jonathan Wakely <jwakely@redhat.com>
256
257 PR libstdc++/80137
258 * include/bits/random.tcc (generate_canonical): Use std::nextafter
259 or numeric_limits::epsilon() to reduce out-of-range values.
260 * testsuite/26_numerics/random/uniform_real_distribution/operators/
261 64351.cc: Verify complexity requirement is met.
262
263 * doc/xml/manual/abi.xml: Add xml:id anchor.
264 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
265 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
266 (concurrency.io.structure): Add markup.
267 * doc/html/*: Regenerate.
268
269 PR libstdc++/80229
270 * include/bits/shared_ptr_base.h
271 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
272 non-const and then use remove_cv to get unqualified type.
273 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
274 cast away constness on object created const.
275 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
276
277 2017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de>
278
279 PR libstdc++/80183
280 * include/bits/stl_tree.h:
281 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
282
283 2017-03-23 Jonathan Wakely <jwakely@redhat.com>
284
285 * testsuite/23_containers/array/tuple_interface/
286 tuple_element_debug_neg.cc: Adjust dg-error.
287 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
288 define a valid strict weak ordering.
289 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
290 Debug Mode, due to debug checks making extra copies of predicate.
291 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
292 Likewise.
293
294 * doc/xml/faq.xml: Add link.
295 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
296 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
297 * doc/xml/manual/io.xml: Update broken link.
298 * doc/html/*: Regenerate.
299
300 2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
301
302 Implement LWG 2686, Why is std::hash specialized for error_code,
303 but not error_condition?
304 * include/std/system_error (hash<error_condition>): Define for C++17.
305 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
306 Instantiate test for error_condition.
307 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
308 (hash<error_condition>): Instantiate hash<error_condition>.
309
310 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
311 * include/bits/regex_constants.h (All std::regex_constants constants):
312 Add _GLIBCXX17_INLINE as per P0607R0.
313 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
314 Likewise.
315 * include/bits/stl_pair.h (piecewise_construct): Likewise.
316 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
317 (__is_uses_allocator_constructible_v)
318 (__is_nothrow_uses_allocator_constructible_v): Likewise.
319 * include/std/chrono (treat_as_floating_point_v): Likewise.
320 * include/std/functional (is_bind_expression_v, is_placeholder_v):
321 Likewise.
322 * include/std/optional (nullopt): Likewise.
323 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
324 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
325 * include/std/system_error (is_error_code_enum_v)
326 (is_error_condition_enum_v): Likewise.
327 * include/std/tuple (tuple_size_v, ignore): Likewise.
328 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
329 constexpr as per LWG 2933.
330 * include/std/type_traits (All variable templates): Add
331 _GLIBCXX17_INLINE as per P0607R0.
332 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
333 (__tuple_count_v, __exactly_once): Likewise.
334 * testsuite/18_support/headers/new/synopsis.cc
335 (hardware_destructive_interference_size)
336 (hardware_constructive_interference_size): Likewise for commented-out
337 variables.
338 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
339 test function for constexpr std::ignore (LWG 2773).
340 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
341 test for LWG 2933.
342
343 2017-03-22 Jonathan Wakely <jwakely@redhat.com>
344
345 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
346 guides for C++17.
347 * include/bits/std_function.h (function): Likewise.
348 * include/bits/stl_pair.h (pair): Likewise.
349 * include/debug/array (__gnu_debug::array): Likewise.
350 * include/std/array (array): Likewise.
351 * include/std/functional (make_default_searcher)
352 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
353 Remove generator functions.
354 * include/std/tuple (tuple): Add deduction guides.
355 * include/std/valarray (valarray): Likewise.
356 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
357 class template argument deduction instead of generator functions.
358 * testsuite/20_util/function/cons/deduction.cc: New test.
359 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
360 * testsuite/20_util/optional/cons/deduction.cc: ... here.
361 * testsuite/20_util/pair/cons/deduction.cc: New test.
362 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
363 * testsuite/20_util/tuple/cons/deduction.cc: New test.
364 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
365 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
366 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
367 * testsuite/23_containers/array/cons/deduction.cc: New test.
368 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
369 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
370 Adjust dg-error.
371 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
372 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
373 Likewise.
374 * testsuite/26_numerics/valarray/deduction.cc: New test.
375 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
376 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
377 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
378
379 2017-03-20 François Dumont <fdumont@gcc.gnu.org>
380
381 * include/bits/stl_deque.h (deque): Access allocator value_type only if
382 concept checks are enabled.
383 * include/bits/stl_stack.h (stack): Likewise.
384 * include/bits/stl_vector.h (vector): Likewise.
385 * include/bits/stl_list.h (list): Likewise and check
386 _SGIAssignableConcept only in C++03.
387 * include/bits/stl_map.h (map): Likewise.
388 * include/bits/stl_set.h (set): Likewise.
389 * include/bits/stl_multimap.h (multimap): Likewise.
390 * include/bits/stl_multiset.h (multiset): Likewise.
391 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
392
393 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
394
395 * doc/xml/manual/appendix_contributing.xml: Convert link to
396 ansi.org to https.
397 Update link to the C++ standard at ansi.org.
398
399 * doc/xml/faq.xml: Remove information redundant with the above;
400 instead add a reference.
401
402 2017-03-17 Jonathan Wakely <jwakely@redhat.com>
403
404 * src/c++11/codecvt.cc (range): Add non-type template parameter and
405 define oerloaded operators for reading and writing code units.
406 (range<Elem, false>): Define partial specialization for accessing
407 wide characters in potentially unaligned byte ranges.
408 (ucs2_span(const char16_t*, const char16_t*, ...))
409 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
410 to range<const char16_t, false> in order to avoid unaligned reads.
411 (__codecvt_utf16_base<char16_t>::do_out)
412 (__codecvt_utf16_base<char32_t>::do_out)
413 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
414 unaligned data to avoid unaligned writes.
415 (__codecvt_utf16_base<char16_t>::do_in)
416 (__codecvt_utf16_base<char32_t>::do_in)
417 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
418 error if there are unprocessable trailing bytes.
419 (__codecvt_utf16_base<char16_t>::do_length)
420 (__codecvt_utf16_base<char32_t>::do_length)
421 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
422 range<const char16_t, false> to span functions.
423 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
424
425 2017-03-16 Jonathan Wakely <jwakely@redhat.com>
426
427 PR libstdc++/79980
428 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
429
430 PR libstdc++/80041
431 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
432 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
433 char16_t to work with UTF-16 instead of UTF-8.
434 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
435
436 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
437 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
438 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
439 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
440 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
441 (__codecvt_utf8_utf16_base<char32_t>)
442 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
443 do_max_length() return values.
444 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
445 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
446 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
447
448 PR libstdc++/79980
449 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
450 error path.
451 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
452 for manipulating codecvt_mode values.
453 (read_utf16_bom): Compare input to BOM constants instead of integral
454 constants that depend on endianness. Take mode parameter by
455 reference and adjust it, to distinguish between no BOM present and
456 UTF-16BE BOM present.
457 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
458 (surrogates): New enumeration type.
459 (utf16_in, utf16_out): Add surrogates parameter to choose between
460 UTF-16 and UCS2 behaviour.
461 (utf16_span, ucs2_span): Use std::min not std::max.
462 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
463 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
464 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
465 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
466
467 PR libstdc++/79511
468 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
469 as a surrogate pair.
470 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
471 for internal representation.
472 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
473 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
474
475 PR libstdc++/80064
476 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
477 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
478 invalid instantiations using function types for _Compare argument.
479 * testsuite/25_algorithms/make_heap/80064.cc: New test.
480
481 PR libstdc++/67440
482 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
483 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
484
485 2017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com>
486
487 Implement LWG 2857, {variant,optional,any}::emplace should
488 return the constructed value.
489 * include/std/any (emplace(_Args&&...)): Change the return type and
490 return a reference to the constructed value.
491 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
492 * include/std/optional (emplace(_Args&&...)): Likewise.
493 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
494 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
495 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
496 (emplace<_Np>(_Args&&...)): Likewise.
497 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
498 * testsuite/20_util/any/assign/emplace.cc: Add tests for
499 checking the return value of emplace.
500 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
501 * testsuite/20_util/optional/assignment/6.cc: Add tests for
502 checking the return value of emplace.
503 * testsuite/20_util/variant/run.cc: Likewise.
504
505 2017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
506
507 PR libstdc++/62045
508 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
509 (is_heap): Remove.
510 (push_heap): Remove the wrong checking using is_heap.
511 (make_heap): Remove the assertion using is_heap.
512 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
513 (modify): Ditto.
514 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
515 calling make_heap.
516
517 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
518
519 PR libstdc++/62045
520 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
521 New test.
522 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
523 error in comment.
524
525 2017-03-15 Jonathan Wakely <jwakely@redhat.com>
526
527 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
528 comment.
529 * config.h.in: Regenerate.
530 * configure: Regenerate.
531 * doc/Makefile.in: Regenerate.
532
533 2017-03-14 Jonathan Wakely <jwakely@redhat.com>
534
535 PR libstdc++/79162
536 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
537 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
538 with a constrained template.
539 [!_GLIBCXX_USE_CXX11_ABI]
540 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
541 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
542 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
543
544 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
545
546 PR libstdc++/80034
547 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
548 in the catch-block.
549 (merge(list&&, _StrictWeakOrdering)): Likewise.
550 * testsuite/23_containers/list/operations/80034.cc: New.
551
552 2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
553
554 Implement LWG 2806, Base class of bad_optional_access.
555 * include/std/optional (bad_optional_access):
556 Derive from std::exception.
557 (bad_optional_access::bad_optional_access): Adjust.
558 (bad_optional_access::what): New.
559 (__throw_bad_optional_access(const char*)):
560 Remove the parameter and adjust calls.
561 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
562 * testsuite/20_util/optional/typedefs.cc: Likewise.
563
564 2017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com>
565
566 Implement LWG 2934, optional<const T> doesn't compare with T.
567 * include/std/optional
568 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
569 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
570 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
571 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
572 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
573 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
574 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
575 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
576 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
577 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
578 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
579 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
580 (operator==(const optional<_Tp>&, const _Tp&)):
581 Turn into operator==(const optional<_Tp>&, const _Up&).
582 (operator==(const _Tp&, const optional<_Tp>&)):
583 Turn into operator==(const _Up&, const optional<_Tp>&).
584 (operator!=(const optional<_Tp>&, const _Tp&)):
585 Turn into operator!=(const optional<_Tp>&, const _Up&).
586 (operator!=(const _Tp&, const optional<_Tp>&)):
587 Turn into operator!=(const _Up&, const optional<_Tp>&).
588 (operator<(const optional<_Tp>&, const _Tp&)):
589 Turn into operator<(const optional<_Tp>&, const _Up&).
590 (operator<(const _Tp&, const optional<_Tp>&)):
591 Turn into operator<(const _Up&, const optional<_Tp>&).
592 (operator>(const optional<_Tp>&, const _Tp&)):
593 Turn into operator>(const optional<_Tp>&, const _Up&).
594 (operator>(const _Tp&, const optional<_Tp>&)):
595 Turn into operator>(const _Up&, const optional<_Tp>&).
596 (operator<=(const optional<_Tp>&, const _Tp&)):
597 Turn into operator<=(const optional<_Tp>&, const _Up&).
598 (operator<=(const _Tp&, const optional<_Tp>&)):
599 Turn into operator<=(const _Up&, const optional<_Tp>&).
600 (operator>=(const optional<_Tp>&, const _Tp&)):
601 Turn into operator>=(const optional<_Tp>&, const _Up&).
602 (operator>=(const _Tp&, const optional<_Tp>&)):
603 Turn into operator>=(const _Up&, const optional<_Tp>&).
604 * testsuite/20_util/optional/relops/7.cc: New.
605
606 2017-03-10 Jonathan Wakely <jwakely@redhat.com>
607
608 * testsuite/17_intro/names.cc: Undefine macros that clash with
609 identifiers in AIX system headers.
610
611 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
612 result_of, and __is_nothrow_invocable instead of
613 __is_nothrow_callable.
614 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
615 instead of __is_callable.
616 * include/std/functional (invoke): use invoke_result_t instead of
617 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
618 (_Not_fn): Use __invoke_result instead of result_of.
619 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
620 Remove partial specializations for reference_wrapper types.
621 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
622 (__invoke_result): Define replacement for result_of and then use it to
623 define result_of.
624 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
625 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
626 respectively.
627 (invoke_result, invoke_result_t): Define for C++17.
628 (is_callable, is_nothrow_callable): Replace with is_invocable,
629 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
630 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
631 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
632 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
633 instead of is_nothrow_callable_v.
634 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
635 main function.
636 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
637 instead of is_callable.
638 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
639 to use new traits.
640 * testsuite/20_util/is_nothrow_callable/*: Likewise.
641 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
642 is_callable.
643 * testsuite/20_util/variant/hash.cc: Likewise.
644
645 2017-03-10 George Lander <george.lander@arm.com>
646
647 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
648 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
649 * configure: Regenerate.
650
651 2017-03-09 Jonathan Wakely <jwakely@redhat.com>
652
653 * include/std/functional (_Not_fn): Define macro to simplify
654 repetitive function definitions.
655
656 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
657 * include/c_global/cstddef (std::byte): Define for C++17.
658 * testsuite/18_support/byte/global_neg.cc: New test.
659 * testsuite/18_support/byte/ops.cc: New test.
660 * testsuite/18_support/byte/requirements.cc: New test.
661
662 2017-03-05 Jonathan Wakely <jwakely@redhat.com>
663
664 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
665 * doc/html/*: Regenerate.
666 * include/std/mutex (scoped_lock): Implement new C++17 template.
667 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
668 * testsuite/30_threads/scoped_lock/requirements/
669 explicit_instantiation.cc: New test.
670 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
671
672 2017-03-02 Gerald Pfeifer <gerald@pfeifer.com>
673 François Dumont <frs.dumont@gmail.com>
674 Jonathan Wakely <jwakely@redhat.com>
675
676 * doc/xml/manual/debug_mode.xml: Update and simplify note
677 on link- and run-time coexistence.
678
679 2017-03-02 Jonathan Wakely <jwakely@redhat.com>
680
681 * testsuite/17_intro/headers/names.cc: Rename to ...
682 * testsuite/17_intro/names.cc: ... here.
683
684 PR libstdc++/79789
685 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
686 parameters and local variables.
687 * include/bits/ios_base.h (make_error_code, make_error_condition):
688 Likewise.
689 * include/bits/list.tcc (list::sort): Likewise.
690 * include/bits/mask_array.h (mask_array): Likewise.
691 * include/bits/regex.h (regex_token_iterator): Likewise.
692 * include/bits/slice_array.h (slice_array): Likewise.
693 * include/bits/stl_algo.h (__sample): Likewise.
694 * include/std/memory (undeclare_no_pointers): Likewise.
695 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
696 Likewise.
697 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
698 * testsuite/17_intro/headers/names.cc: New test.
699
700 PR libstdc++/79798
701 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
702 result_of that loses top-level cv-qualifiers.
703 * testsuite/20_util/bind/79798.cc: New test.
704
705 2017-03-01 Gerald Pfeifer <gerald@pfeifer.com>
706
707 * doc/xml/manual/documentation_hacking.xml: Tweak link to
708 doxygen.org.
709
710 2017-02-23 Jonathan Wakely <jwakely@redhat.com>
711
712 * include/experimental/iterator: Include <iterator>.
713 * testsuite/experimental/iterator/requirements.cc: Check for contents
714 of <iterator>.
715
716 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
717
718 C++17 GB50 resolution
719 * include/std/chrono (duration::operator++()): Add
720 _GLIBCXX17_CONSTEXPR.
721 (duration::operator++(int)): Likewise.
722 (duration::operator--()): Likewise.
723 (duration::operator--(int)): Likewise.
724 (duration::operator+=(const duration&)): Likewise.
725 (duration::operator-=(const duration&)): Likewise.
726 (duration::operator*=(const rep&)): Likewise.
727 (duration::operator/=(const rep&)): Likewise.
728 (duration::operator%=(const rep&)): Likewise.
729 (duration::operator%=(const duration&)): Likewise.
730 (time_point::operator+=(const duration&)): Likewise.
731 (time_point::operator-=(const duration&)): Likewise.
732 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
733 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
734 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
735
736 2017-02-19 Gerald Pfeifer <gerald@pfeifer.com>
737
738 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
739
740 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
741
742 * doc/xml/manual/io.xml: Update link to groups.google.com.
743 Tweak link description.
744
745 2017-02-18 Gerald Pfeifer <gerald@pfeifer.com>
746
747 * doc/xml/manual/profile_mode.xml: Fix link.
748
749 2017-02-16 Gerald Pfeifer <gerald@pfeifer.com>
750
751 * doc/xml/manual/policy_data_structures.xml: Simplify and
752 standardize references to boost.org.
753 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
754 * doc/xml/manual/shared_ptr.xml: Ditto.
755
756 2017-02-16 Jonathan Wakely <jwakely@redhat.com>
757
758 PR libstdc++/60936
759 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
760 written to buffer, not length remaining in buffer.
761
762 2017-02-15 Tim Shen <timshen@google.com>
763
764 PR libstdc++/78723
765 * include/std/variant (operator<(), operator>(), operator<=(),
766 operator>=(), operator==(), operator!=()): Implement P0393R3.
767 * testsuite/20_util/variant/compile.cc: Adjust tests.
768 * testsuite/20_util/variant/run.cc: Adjust tests.
769
770 2017-02-15 Tim Shen <timshen@google.com>
771
772 PR libstdc++/79513
773 * include/std/variant (visit()): Forward variant types to the return
774 type detection code.
775 * testsuite/20_util/variant/compile.cc: Add test cases.
776
777 2017-02-13 H.J. Lu <hongjiu.lu@intel.com>
778
779 PR libstdc++/79348
780 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
781
782 2017-02-13 Jakub Jelinek <jakub@redhat.com>
783
784 PR libstdc++/79348
785 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
786 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
787 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
788 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
789 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
790 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
791 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
792 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
793 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
794
795 2017-02-13 Jonathan Wakely <jwakely@redhat.com>
796
797 PR libstdc++/79486
798 * include/std/future (__future_base::_Task_state::_M_run)
799 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
800 result_of expressions.
801 * testsuite/30_threads/packaged_task/79486.cc: New.
802
803 2017-02-11 Jonathan Wakely <jwakely@redhat.com>
804
805 PR libstdc++/79467
806 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
807 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
808 __is_callable check.
809 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
810
811 * include/bits/atomic_base.h: Re-indent.
812
813 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
814
815 * doc/xml/manual/profile_mode.xml: Update a paper reference.
816
817 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
818
819 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
820
821 2017-02-08 Jonathan Wakely <jwakely@redhat.com>
822
823 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
824 name.
825 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
826 broken links to texts that are no longer online.
827 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
828 LCPC 2006 paper.
829 * doc/xml/manual/using.xml: Update links to memory model information.
830 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
831 Standard-Library Exception Safety".
832 * doc/html/*: Regenerate.
833
834 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
835
836 * doc/xml/manual/profile_mode.xml: Unbreak link to
837 "Optimizing Sorting with Machine Learning Algorithms".
838
839 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
840
841 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
842
843 2017-02-08 Gerald Pfeifer <gerald@pfeifer.com>
844
845 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
846 Migration Guide".
847
848 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
849
850 * doc/html/ext/lwg-active.html: Remove.
851 * doc/html/ext/lwg-closed.html: Ditto.
852 * doc/html/ext/lwg-defects.html: Ditto.
853
854 * doc/Makefile.am (xml_extradir): Remove.
855 (xml_extra): Ditto.
856 (stamp-html-docbook-lwg): Remove recipe...
857 (stamp-html-docbook-data): ...and its use here.
858 * doc/Makefile.in: Regenerate.
859
860 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
861 the relationship to the upstream working group.
862 Replace a local link to ../ext/lwg-active.html by the upstream one.
863 Replace all reference to ../ext/lwg-defects.html by a new entity
864 &DR; which refers to the upstream address.
865
866 2017-02-07 Gerald Pfeifer <gerald@pfeifer.com>
867
868 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
869
870 2017-02-06 Jonathan Wakely <jwakely@redhat.com>
871
872 PR libstdc++/79323
873 * testsuite/20_util/duration/literals/range.cc: Prune extra output
874 at -O0.
875
876 2017-02-06 Gerald Pfeifer <gerald@pfeifer.com>
877
878 * doc/xml/manual/documentation_hacking.xml: Update URL of the
879 DocBook Element Reference. Use that term as link description
880 instead of "online".
881 epubcheck has moved to GitHub.
882 Remove obsolete link to DocBook Publishing Tools.
883
884 2017-02-03 Jonathan Wakely <jwakely@redhat.com>
885
886 PR libstdc++/66145
887 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
888 so new ios::failure can be caught even when old ABI is the default.
889 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
890 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
891 exceptions_failbit.cc: Likewise.
892 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
893 exceptions_failbit.cc: Likewise.
894 * testsuite/27_io/basic_istream/extractors_other/char/
895 exceptions_null.cc: Likewise.
896 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
897 exceptions_null.cc: Likewise.
898 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
899 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
900 * testsuite/27_io/basic_ostream/inserters_other/char/
901 exceptions_null.cc: Likewise.
902 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
903 exceptions_null.cc: Likewise.
904 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
905
906 PR libstdc++/60936
907 * src/c++11/Makefile.am: Add new files.
908 * src/c++11/Makefile.in: Regenerate.
909 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
910 (operator<<, operator>>, getline): Move explicit instantiations to ...
911 * src/c++11/cow-string-io-inst.cc: ... new file.
912 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
913 (operator<<, operator>>, getline): Move explicit instantiations to ...
914 * src/c++11/cow-wstring-io-inst.cc: ... new file.
915 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
916 (__throw_future_error, __throw_bad_function_call):
917 (__throw_regex_error): Move functions for C++11 exceptions to the
918 files that define the exception types.
919 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
920 * src/c++11/future.cc (__throw_future_error): Likewise.
921 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
922 * src/c++11/regex.cc (__throw_regex_error): Likewise.
923 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
924 representation directly instead of calling __int_to_char.
925 * src/c++11/sso_string.cc (__sso_string): New file for definition
926 of __sso_string type.
927 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
928 explicit instantiations of narrow string I/O functions.
929 * src/c++11/system_error.cc (__throw_system_error): Move here.
930 (__sso_string): Move to new file.
931 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
932 explicit instantiations of wide string I/O functions.
933 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
934 (operator>>, getline): Remove explicit instantiations from here.
935
936 2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
937
938 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
939
940 2017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
941
942 * configure.host: Separate Solaris/SPARC and x86 baselines.
943 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
944 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
945 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
946 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
947 ... here.
948 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
949 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
950 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
951 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
952 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
953 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
954 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
955 ... here.
956 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
957 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
958 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
959
960 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
961 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
962 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
963 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
964 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
965 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
966
967 2017-02-01 Jonathan Wakely <jwakely@redhat.com>
968
969 PR libstdc++/78346
970 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
971 not its referent.
972 (_Iter_comp_to_iter): Likewise.
973 * testsuite/25_algorithms/search/78346.cc: New test.
974
975 PR libstdc++/79254
976 * config/abi/pre/gnu.ver: Remove recently added symbols.
977 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
978 (basic_string::_M_copy_assign): Remove.
979 (basic_string::operator=(const basic_string&)): Don't dispatch to
980 _M_copy_assign. If source object is small just deallocate, otherwise
981 perform new allocation before making any changes.
982 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
983 (basic_string::_M_copy_assign(const basic_string&, true_type)):
984 Remove.
985 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
986 Test cases where the allocators are equal or the string is small.
987 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
988 Likewise.
989
990 2017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com>
991
992 Implement LWG 2825, LWG 2756 breaks class template argument
993 deduction for optional.
994 * include/std/optional: Add a deduction guide.
995 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
996
997 2017-01-27 Jonathan Wakely <jwakely@redhat.com>
998
999 PR libstdc++/79254
1000 * config/abi/pre/gnu.ver: Add new symbols.
1001 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1002 (basic_string::_M_copy_assign): New overloaded functions to perform
1003 copy assignment.
1004 (basic_string::operator=(const basic_string&)): Dispatch to
1005 _M_copy_assign.
1006 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1007 (basic_string::_M_copy_assign(const basic_string&, true_type)):
1008 Define, performing rollback on exception.
1009 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1010 Test exception-safety guarantee.
1011 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1012 Likewise.
1013 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
1014 std::swap visible.
1015
1016 2017-01-26 Jonathan Wakely <jwakely@redhat.com>
1017
1018 PR libstdc++/70607
1019 * include/tr1/complex (conj): Remove using-declaration and restore
1020 overloads, reverting previous change.
1021
1022 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
1023 mode.
1024 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1025 Mark as unsupported in C++98 mode.
1026 * testsuite/23_containers/queue/requirements/constructible.cc:
1027 Likewise.
1028 * testsuite/23_containers/stack/requirements/constructible.cc:
1029 Likewise.
1030 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
1031
1032 PR libstdc++/79243
1033 * include/bits/c++config (literals::string_view_literals::__7): Add.
1034 Only declare versioned namespaces for the relevant C++ dialects.
1035 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
1036 Add versioning macros.
1037 * include/experimental/bits/lfts_config.h:
1038 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
1039 * include/experimental/string_view (fundamentals_v2::__detail):
1040 Add versioning macros.
1041 (fundamentals_v2::__detail::__identity): Remove.
1042 (fundamentals_v2::__detail::__idt): Use common_type instead of
1043 __detail::__identity.
1044 * include/std/string_view (__detail::__identity, __detail::__idt):
1045 Likewise.
1046 (literals::string_view_literals): Fix nesting of versioning macros.
1047
1048 PR libstdc++/79190
1049 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
1050 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
1051 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
1052 Retrieve original pointer value allocated by malloc.
1053 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
1054 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
1055 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
1056 Define, adjusting pointer value allocated by malloc and storing for
1057 retrieval by operator delete.
1058
1059 2017-01-26 Jakub Jelinek <jakub@redhat.com>
1060
1061 * libsupc++/eh_atomics.h: Update copyright years.
1062 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
1063
1064 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
1065
1066 PR libstdc++/61791
1067 PR libstdc++/70607
1068 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
1069 (proj(T), conj(T)): Change return types per DR 1522.
1070 * include/tr1/complex (conj): Remove overloads and use std::conj.
1071 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
1072 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
1073 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
1074 real(T) and imag(T). Allow testing for C++11 too.
1075
1076 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
1077
1078 PR libstdc++/79206
1079 * include/experimental/string_view (operator==): Check sizes first.
1080 * include/std/string_view (operator==): Likewise.
1081
1082 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1083
1084 * testsuite/experimental/array/make_array.cc: Restore <functional>
1085 inclusion.
1086
1087 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
1088
1089 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
1090
1091 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
1092
1093 PR libstdc++/79195
1094 * include/experimental/array (__make_array_elem): New class template
1095 and partial specialization.
1096 (__is_reference_wrapper): Move into __make_array_elem specialization.
1097 (make_array): Use __make_array_elem to determine element type and move
1098 static assertion into specialization. Qualify std::forward call.
1099 (to_array): Add exception specifiation.
1100 * testsuite/experimental/array/make_array.cc: Test argument types
1101 without a common type.
1102 * testsuite/experimental/array/neg.cc: Adjust expected error message.
1103
1104 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1105
1106 * doc/xml/manual/debug.xml: code.google.com uses https now.
1107
1108 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1109
1110 * doc/xml/manual/test.xml: Fix link into gccint online manual.
1111
1112 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1113
1114 Make poisoned hashes SFINAE away the call operator of the hash.
1115 * include/bits/functional_hash.h
1116 (__poison_hash::__enable_hash_call): New.
1117 * include/std/optional (__optional_hash_call_base): New.
1118 (hash<optional<_Tp>>): Derive from the new base,
1119 move the hash function into that base.
1120 * include/std/variant (__variant_hash_call_base_impl): New.
1121 (__variant_hash_call_base): Likewise.
1122 (hash<variant<_Types...>>): Derive from the new base,
1123 move the hash function into that base.
1124 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
1125 * testsuite/20_util/variant/hash.cc: Likewise.
1126
1127 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
1128
1129 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
1130 * configure: Regenerate.
1131
1132 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
1133
1134 PR libstdc++/69240
1135 * include/bits/random.h (uniform_real_distribution::param_type)
1136 (normal_distribution::param_type, lognormal_distribution::param_type)
1137 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1138 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1139 (student_t_distribution::param_type)
1140 (bernoulli_distribution::param_type, binomial_distribution::param_type)
1141 (geometric_distribution::param_type)
1142 (negative_binomial_distribution::param_type)
1143 (poisson_distribution::param_type)
1144 (exponential_distribution::param_type)
1145 (weibull_distribution::param_type)
1146 (extreme_value_distribution::param_type)
1147 (discrete_distribution::param_type)
1148 (piecewise_constant_distribution::param_type)
1149 (piecewise_linear_distribution::param_type): Define operator!=.
1150 * include/bits/uniform_int_dist.h
1151 (uniform_int_distribution::param_type): Likewise.
1152 * include/ext/random (beta_distribution::param_type)
1153 (rice_distribution::param_type, nakagami_distribution::param_type)
1154 (pareto_distribution::param_type, k_distribution::param_type)
1155 (arcsine_distribution::param_type, hoyt_distribution::param_type)
1156 (triangular_distribution::param_type)
1157 (von_mises_distribution::param_type)
1158 (hypergeometric_distribution::param_type)
1159 (logistic_distribution::param_type)
1160 (uniform_on_sphere_distribution::param_type)
1161 (uniform_inside_sphere_distribution::param_type): Likewise.
1162 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
1163 Test construction with param_type.
1164 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
1165 Likewise.
1166 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
1167 Likewise.
1168 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
1169 Likewise.
1170 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
1171 Likewise.
1172 * testsuite/26_numerics/random/extreme_value_distribution/cons/
1173 parms.cc: Likewise.
1174 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
1175 Likewise.
1176 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
1177 Likewise.
1178 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
1179 Likewise.
1180 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
1181 Likewise.
1182 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
1183 parms.cc: Likewise.
1184 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
1185 Likewise.
1186 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
1187 Likewise.
1188 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
1189 Likewise.
1190 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
1191 Likewise.
1192 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
1193 Likewise.
1194 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
1195 Likewise.
1196 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
1197 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
1198 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1199 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
1200 Likewise.
1201 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
1202 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
1203 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
1204 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
1205 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
1206 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
1207 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
1208 Likewise.
1209 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
1210 parms.cc: Likewise.
1211 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
1212
1213 PR libstdc++/72792
1214 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
1215 (__allocator_traits_base::__size_type): Remove.
1216 (allocator_traits::_Ptr): New class template to detect const and void
1217 pointer types without instantiating pointer_traits::rebind
1218 unnecessarily.
1219 (allocator_traits::_Diff): Likewise for detecting difference_type.
1220 (allocator_traits::_Size): New class template to detect size_type
1221 without instantiating make_unsigned unnecessarily.
1222 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
1223 __detected_or_t instead of __detected_or_t_.
1224 * include/std/type_traits (__detected_or_t_): Remove.
1225 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
1226
1227 PR libstdc++/72792
1228 PR libstdc++/72793
1229 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
1230 Replace with class template using void_t.
1231 (__alloc_rebind): Define in terms of
1232 __allocator_traits_base::__rebind.
1233 (allocator_traits): Remove unconditional static_assert for
1234 rebind_alloc.
1235 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
1236 (pointer_traits::__rebind): Replace with class template using void_t.
1237 (pointer_traits::rebind): Define in terms of __rebind.
1238 (pointer_traits): Remove unconditional static_assert for rebind.
1239 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
1240 * testsuite/20_util/pointer_traits/rebind.cc: New test.
1241
1242 PR libstdc++/69321
1243 * include/experimental/any (__any_caster): Avoid instantiating
1244 manager function for types that can't be stored in any.
1245 * include/std/any (__any_caster): Likewise.
1246 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
1247 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1248
1249 PR libstdc++/64903
1250 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
1251 std::advance.
1252
1253 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
1254
1255 PR libstdc++/79156
1256 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
1257 Fix return type.
1258 (__enable_shared_from_this): Declare __shared_ptr as a friend.
1259 * testsuite/ext/shared_ptr/1.cc: New test.
1260
1261 PR libstdc++/64903
1262 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
1263 point.
1264 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
1265
1266 * doc/xml/manual/abi.xml: Fix typo.
1267 * doc/html/manual/abi.html: Likewise.
1268
1269 PR libstdc++/67085
1270 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
1271 converting constructors from _Iter_less_iter.
1272 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
1273 _Iter_comp_iter.
1274 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
1275 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
1276 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
1277 (__make_heap, __sort_heap): Change _Compare parameters to references.
1278 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
1279 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
1280 functions as lvalues.
1281 (is_heap): Call __is_heap_until directly to avoid copying __comp.
1282 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
1283 count copies during construction with empty sequence.
1284
1285 PR libstdc++/67085
1286 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
1287 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
1288 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
1289 number of copies.
1290 * testsuite/25_algorithms/make_heap/movable.cc: New test.
1291
1292 PR libstdc++/67085
1293 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
1294 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
1295 _GLIBCXX_MOVE when passing comparison function to other functions.
1296 (is_heap_until, is_heap): Use std::move when passing comparison
1297 function.
1298 * testsuite/23_containers/priority_queue/67085.cc: New test.
1299
1300 PR libstdc++/78905
1301 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
1302 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
1303 Document that the deprecated _GLIBCXX_VERSION macro was removed for
1304 the 4.0.0 release.
1305 * doc/html/*: Regenerate.
1306 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
1307 * include/Makefile.in: Regenerate.
1308 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
1309 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
1310 dg-error.
1311
1312 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
1313
1314 PR libstdc++/69301
1315 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
1316 aligned buffer instead of default-initialized variable.
1317 * testsuite/29_atomics/atomic/69301.cc: New test.
1318 * include/experimental/memory (observer_ptr::release): Use reserved
1319 name.
1320 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
1321 (_Pointer_adapter::operator--(int)): Likewise.
1322
1323 PR libstdc++/68925
1324 * include/experimental/random (randint): Use temporary instead of
1325 thread_local static.
1326
1327 2017-01-17 Joshua Conner <joshconner@google.com>
1328
1329 * crossconfig.m4: Add fuchsia OS.
1330 * configure: Regenerate.
1331
1332 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
1333
1334 PR libstdc++/69699
1335 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
1336 __GLIBCXX__ macro is not useful. Remove redundant date information
1337 and link to the GCC release timeline.
1338 (abi.versioning.active): Move partial sentence into the previous
1339 paragraph.
1340 * doc/html/*: Regenerate.
1341
1342 PR libstdc++/79114
1343 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
1344 of remove_reference.
1345 * testsuite/18_support/nested_exception/79114.cc: New test.
1346
1347 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1348
1349 PR other/79046
1350 * configure.ac: Add GCC_BASE_VER.
1351 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
1352 get version from BASE-VER file.
1353 * po/Makefile.in: Regenerated.
1354 * libsupc++/Makefile.in: Regenerated.
1355 * testsuite/Makefile.in: Regenerated.
1356 * src/Makefile.in: Regenerated.
1357 * configure: Regenerated.
1358 * Makefile.in: Regenerated.
1359 * include/Makefile.in: Regenerated.
1360 * doc/Makefile.in: Regenerated.
1361 * python/Makefile.in: Regenerated.
1362 * src/c++11/Makefile.in: Regenerated.
1363 * src/c++98/Makefile.in: Regenerated.
1364 * src/filesystem/Makefile.in: Regenerated.
1365
1366 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
1367
1368 PR libstdc++/66145
1369 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
1370 exceptions.
1371 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
1372 for test, so new ios::failure can be caught.
1373 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1374 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1375 exceptions_failbit.cc: Likewise.
1376 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1377 exceptions_failbit.cc: Likewise.
1378 * testsuite/27_io/basic_istream/extractors_other/char/
1379 exceptions_null.cc: Likewise.
1380 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1381 exceptions_null.cc: Likewise.
1382 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1383 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1384 * testsuite/27_io/basic_ostream/inserters_other/char/
1385 exceptions_null.cc: Likewise.
1386 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1387 exceptions_null.cc: Likewise.
1388 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1389
1390 PR libstdc++/78702
1391 * include/bits/locale_classes.h (locale::facet::__shim): Change from
1392 private to protected.
1393 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
1394 make locale::facet::__shim accessible.
1395
1396 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
1397
1398 PR libstdc++/78389
1399 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
1400 (merge(list&&, _StrictWeakOrdering)): Likewise.
1401 * testsuite/23_containers/list/operations/78389.cc: Add
1402 better test for the sizes.
1403
1404 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
1405
1406 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1407 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
1408 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1409 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1410 Likewise.
1411 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
1412 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
1413 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
1414 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1415 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1416 Likewise.
1417 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
1418 Likewise.
1419 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
1420 Likewise.
1421 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1422 Likewise.
1423 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1424 Likewise.
1425 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
1426 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1427 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1428 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1429 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1430 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1431 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1432 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1433 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1434 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1435 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1436 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1437 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1438
1439 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1440
1441 PR libstdc++/65411
1442 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1443 retry fclose on EINTR.
1444
1445 * include/profile/base.h: Remove unused header that leads to header
1446 cycle in C++17 mode.
1447
1448 PR libstdc++/79075
1449 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1450 Make _If_sv private.
1451 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1452 basic_string_view arguments.
1453
1454 PR libstdc++/79075
1455 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1456 redundant option from cxxflags.
1457 (check_effective_target_cxx11-abi): Define.
1458 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1459 effective target.
1460 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1461 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1462 Likewise.
1463 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1464 Likewise.
1465 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1466 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1467 Likewise.
1468 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1469 Likewise.
1470 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1471 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1472 Likewise.
1473 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1474 Likewise.
1475 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1476 Likewise.
1477 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1478 Likewise.
1479 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1480 Likewise.
1481 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1482 Likewise.
1483 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1484 Likewise.
1485 * testsuite/23_containers/list/61347.cc: Likewise.
1486 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1487 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1488
1489 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1490
1491 PR libstdc++/78389
1492 * include/bits/list.tcc (merge(list&&)):
1493 Adjust list sizes if the comparator throws.
1494 (merge(list&&, _StrictWeakOrdering)): Likewise.
1495 (sort()): Splice elements back from the scratch buffers
1496 if the comparator throws.
1497 (sort(_StrictWeakOrdering)): Likewise.
1498 * testsuite/23_containers/list/operations/78389.cc: New.
1499
1500 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
1501
1502 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1503 XFAIL for C++17 until node reinsertion supports fancy pointers.
1504
1505 PR libstdc++/78361
1506 * testsuite/20_util/add_pointer/value.cc: Test forming function
1507 pointers.
1508
1509 2017-01-13 Michael Brune <lucdanton@free.fr>
1510
1511 PR libstdc++/78361
1512 * include/std/type_traits (__is_referenceable): Handle noexcept
1513 function types.
1514
1515 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
1516
1517 PR libstdc++/77528
1518 * include/bits/stl_queue.h (queue, priority_queue): Remove default
1519 member-initializers and define default constructors as templates with
1520 constraints.
1521 * include/bits/stl_stack.h (stack): Likewise.
1522 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1523 New.
1524 * testsuite/23_containers/priority_queue/requirements/
1525 explicit_instantiation/1.cc: Test more instantiations.
1526 * testsuite/23_containers/priority_queue/requirements/
1527 explicit_instantiation/1_c++98.cc: Likewise.
1528 * testsuite/23_containers/queue/requirements/constructible.cc: New.
1529 * testsuite/23_containers/stack/requirements/constructible.cc: New.
1530
1531 PR libstdc++/66284
1532 * doc/xml/manual/intro.xml: Document LWG 2781 change.
1533 * doc/html/*: Regenerate.
1534 * include/std/functional (_Function_base::_Ref_manager): Remove.
1535 (_Function_handler): Remove partial specializations for
1536 reference_wrapper.
1537 (function::target): Remove special case for const qualification.
1538 * testsuite/20_util/function/6.cc: Adjust tests for target type.
1539 * testsuite/20_util/function/7.cc: Likewise.
1540 * testsuite/20_util/function/8.cc: Likewise.
1541
1542 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
1543
1544 PR libstdc++/78134
1545 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1546 (map::equal_range): Fix return type of heterogeneous overloads.
1547 * include/bits/stl_multimap.h (multimap::lower_bound)
1548 (multimap::upper_bound, multimap::equal_range): Likewise.
1549 * include/bits/stl_multiset.h (multiset::lower_bound)
1550 (multiset::upper_bound, multiset::equal_range): Likewise.
1551 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1552 (set::equal_range): Likewise.
1553 * testsuite/23_containers/map/operations/2.cc
1554 * testsuite/23_containers/multimap/operations/2.cc
1555 * testsuite/23_containers/multiset/operations/2.cc
1556 * testsuite/23_containers/set/operations/2.cc
1557
1558 PR libstdc++/78273
1559 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1560 the heterogeneous comparison can only find one match.
1561 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1562 * testsuite/23_containers/map/operations/2.cc: Test count works with
1563 comparison function that just partitions rather than sorting.
1564 * testsuite/23_containers/set/operations/2.cc: Likewise.
1565
1566 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1567
1568 Reduce the size of variant, it doesn't need an index of
1569 type size_t internally.
1570 * include/std/variant (parse_numbers.h): New include.
1571 (__select_index): New.
1572 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1573 _index_type for comparison with variant_npos.
1574 (_Variant_storage<false, _Types...>::__index_type): New.
1575 (_Variant_storage<false, _Types...>::_M_index): Change the
1576 type from size_t to __index_type.
1577 (_Variant_storage<true, _Types...>::__index_type): New.
1578 (_Variant_storage<true, _Types...>::_M_index): Change the
1579 type from size_t to __index_type.
1580 (_Variant_base::_M_valid): Use _Storage::__index_type
1581 for comparison with variant_npos.
1582 (variant::index): Use _Base::_Storage::__index_type
1583 for comparison with variant_npos.
1584 * testsuite/20_util/variant/index_type.cc: New.
1585
1586 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
1587
1588 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1589 effective target selector to prevent running in C++17 mode.
1590
1591 PR libstdc++/77528
1592 * include/bits/stl_queue.h (queue::c): Add default member initializer.
1593 (queue::queue()): Add constructor and define as defaulted.
1594 (queue::queue(_Sequence&&)): Remove default argument.
1595 (priority_queue::c, priority_queue::comp): Add default member
1596 initializers.
1597 (priority_queue::priority_queue()): Add constructor and define as
1598 defaulted.
1599 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1600 Remove default argument for first parameter.
1601 * include/bits/stl_stack.h (stack::c): Add default member initializer.
1602 (stack::stack()): Add constructor and define as defaulted.
1603 (stack::stack(const _Sequence&)): Remove default argument.
1604 * testsuite/23_containers/priority_queue/requirements/
1605 explicit_instantiation/1.cc: Test explicit instantiation with
1606 non-DefaultConstructible sequence.
1607 * testsuite/23_containers/priority_queue/77528.cc: New test.
1608 * testsuite/23_containers/priority_queue/requirements/
1609 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1610 * testsuite/23_containers/queue/77528.cc: New test.
1611 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1612 1.cc: Test explicit instantiation with non-DefaultConstructible
1613 sequence.
1614 * testsuite/23_containers/queue/requirements/explicit_instantiation/
1615 1_c++0x.cc: Replace with 1_c++98.cc.
1616 * testsuite/23_containers/stack/77528.cc: New test.
1617 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1618 1.cc: Test explicit instantiation with non-DefaultConstructible
1619 sequence.
1620 * testsuite/23_containers/stack/requirements/explicit_instantiation/
1621 1_c++0x.cc: Replace with 1_c++98.cc.
1622
1623 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1624
1625 * include/bits/locale_facets_nonio.tcc
1626 (time_get::_M_extract_via_format): Avoid compilation errors with
1627 non-standard struct tm.
1628
1629 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
1630 Jonathan Wakely <jwakely@redhat.com>
1631
1632 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1633 (is_specialization, strip_versioned_namespace): New helpers functions
1634 to work with symbols in the versioned namespace.
1635 (Printer.add_version): Add second name using versioned namespace.
1636 (add_one_template_type_printer, add_one_type_printer): Add second
1637 type printers using versioned namespace.
1638 (register_type_printers): Add template type printer for basic_string.
1639 (build_libstdcxx_dictionary): Remove dead code.
1640 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1641 versioned namespace.
1642 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1643 results.
1644 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1645
1646 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1647
1648 PR libstdc++/79017
1649 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1650 functions separately on darwin and if they're missing define
1651 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1652 * config.h.in: Regenerate.
1653 * configure: Regenerate.
1654 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1655 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1656
1657 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1658 to detect correct thread_local destructors.
1659 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1660 Define.
1661
1662 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
1663 Aditya Kumar <hiraditya@msn.com>
1664
1665 PR libstdc++/66414
1666 * include/bits/basic_string.tcc
1667 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1668
1669 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1670
1671 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1672 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1673
1674 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1675 Include <cassert> header.
1676
1677 PR libstdc++/78968
1678 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1679 * configure: Regenerate.
1680
1681 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
1682 Jonathan Wakely <jwakely@redhat.com>
1683
1684 * include/std/variant (variant, swap): Replace __and_ usage with fold
1685 expressions.
1686
1687 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1688
1689 PR go/78978
1690 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1691 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1692 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1693 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1694 HWCAP_FLAGS.
1695 * aclocal.m4: Regenerate.
1696 * configure: Regenerate.
1697 * Makefile.in, doc/Makefile.in, include/Makefile.in,
1698 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1699 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1700 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1701
1702 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
1703
1704 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1705
1706 PR libstdc++/78991
1707 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1708 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1709 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1710 move function objects.
1711 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1712 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1713 * testsuite/25_algorithms/sort/78991.cc: New test.
1714
1715 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
1716
1717 * include/bits/std_function.h (function::_Signature_type): Remove.
1718 (function::function(_Functor)): Adjust.
1719
1720 2017-01-05 Tim Shen <timshen@google.com>
1721
1722 PR libstdc++/78996
1723 * include/std/variant (__gen_vtable_impl): rename __unused to
1724 __dimensions to avoid naming conflict.
1725
1726 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
1727
1728 PR libstdc++/78968
1729 * config.h.in: Regenerate.
1730 * configure: Likewise.
1731 * configure.ac: Check for __cxa_thread_atexit.
1732 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1733 Don't define __cxa_thread_atexit if libc provides it.
1734
1735 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1736
1737 Implement 2801, Default-constructibility of unique_ptr.
1738 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1739 (unique_ptr::_DeleterConstraint): Likewise.
1740 (unique_ptr()): Constrain.
1741 (unique_ptr(pointer)): Likewise.
1742 (unique_ptr(nullptr_t)): Likewise.
1743 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1744 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1745 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1746 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1747 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1748 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1749 * testsuite/20_util/unique_ptr/cons/default.cc: New.
1750 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1751
1752 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
1753 Jonathan Wakely <jwakely@redhat.com>
1754
1755 PR libstdc++/64735
1756 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1757 * config.h.in: Regenerate.
1758 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1759 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1760 exports for exception_ptr, nested_exception, and future conditional.
1761 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1762 exports for exception_ptr, nested_exception, and future conditional.
1763 * configure: Regenerate.
1764 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1765 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1766 * libsupc++/eh_atomics.h: New file for internal use only.
1767 (__eh_atomic_inc, __eh_atomic_dec): New.
1768 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1769 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1770 (rethrow_exception): Use eh_atomics.h reference counting helpers.
1771 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1772 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1773 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1774 * libsupc++/exception_ptr.h: Likewise.
1775 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1776 * libsupc++/nested_exception.cc: Remove check for
1777 ATOMIC_INT_LOCK_FREE.
1778 * libsupc++/nested_exception.h: Likewise.
1779 * src/c++11/future.cc: Likewise.
1780 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1781 * testsuite/18_support/nested_exception/*: Likewise.
1782 * testsuite/30_threads/async/*: Likewise.
1783 * testsuite/30_threads/future/*: Likewise.
1784 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1785 * testsuite/30_threads/packaged_task/*: Likewise.
1786 * testsuite/30_threads/promise/*: Likewise.
1787 * testsuite/30_threads/shared_future/*: Likewise.
1788
1789 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
1790
1791 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1792 defaults to https; adjust reference.
1793
1794 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
1795
1796 PR libstdc++/78956
1797 * include/std/thread (thread(const thread&&)): Add deleted
1798 constructor.
1799 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1800
1801 * doc/xml/manual/spine.xml: Update copyright years.
1802 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1803 * doc/xml/manual/test.xml: Likewise.
1804 * doc/html/*: Regenerate.
1805
1806 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
1807
1808 * doc/xml/faq.xml: Update address of C++ ABI link.
1809 * doc/xml/manual/abi.xml: Ditto.
1810
1811 2017-01-01 Jakub Jelinek <jakub@redhat.com>
1812
1813 Update copyright years.
1814 \f
1815 Copyright (C) 2017 Free Software Foundation, Inc.
1816
1817 Copying and distribution of this file, with or without modification,
1818 are permitted in any medium without royalty provided the copyright
1819 notice and this notice are preserved.