ChangeLog revision 1.1.1.17 1 2019-11-14 Release Manager
2
3 * GCC 7.5.0 released.
4
5 2019-10-24 Jonathan Wakely <jwakely (a] redhat.com>
6
7 Backport from mainline
8 2019-10-18 Jonathan Wakely <jwakely (a] redhat.com>
9
10 PR libstdc++/92143
11 * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
12 to at least sizeof(void*).
13
14 Backport from mainline
15 2019-10-08 Jonathan Wakely <jwakely (a] redhat.com>
16
17 * doc/Makefile.am (doc-html-docbook-regenerate): New target.
18 (${docbook_outdir}/html): Do not create unused 'html/ext' directory.
19 * doc/Makefile.in: Regenerate.
20 * doc/xml/manual/documentation_hacking.xml: Document new target.
21 * doc/html/*: Regenerate.
22
23 * doc/xml/manual/allocator.xml: Use archived copy of CUJ article.
24
25 Backport from mainline
26 2019-05-31 Gerald Pfeifer <gerald (a] pfeifer.com>
27
28 * doc/xml/manual/allocator.xml: Move hoard.org back to http.
29
30 2019-09-11 Jonathan Wakely <jwakely (a] redhat.com>
31
32 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__):
33 Fix syntax error.
34
35 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
36
37 PR middle-end/89303
38 * testsuite/20_util/enable_shared_from_this/89303.cc: New test.
39
40 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
41
42 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
43 with dg-prune-output for enable_if failure.
44 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add
45 dg-prune-output for enable_if failure.
46
47 Backport from mainline
48 2019-07-31 Jonathan Wakely <jwakely (a] redhat.com>
49
50 PR libstdc++/91308
51 * include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
52 constraints on deleter that should only apply to the constructor.
53 (unique_ptr<T[], D>::__safe_conversion_up): Likewise.
54 (unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
55 constraints on deleter here.
56 * testsuite/20_util/unique_ptr/assign/91308.cc: New test.
57
58 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
59
60 Backport from mainline
61 2019-07-29 Jonathan Wakely <jwakely (a] redhat.com>
62
63 PR libstdc++/51333
64 * libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
65 constructor inline.
66 * libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
67 constructor.
68 * testsuite/18_support/51333.cc: New test.
69
70 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
71
72 Backport from mainline
73 2019-06-07 Jonathan Wakely <jwakely (a] redhat.com>
74
75 PR libstdc++/90770
76 * src/Makefile.am (stamp-debug): Also test for missing makefile.
77 * src/Makefile.in: Regenerate.
78
79 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
80
81 Backport from mainline
82 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
83
84 * doc/xml/manual/status_cxx2017.xml: Add feature test macro for
85 P0040R3.
86 * doc/html/*: Regenerate.
87
88 Backport from mainline
89 2019-06-20 Jonathan Wakely <jwakely (a] redhat.com>
90
91 * doc/xml/manual/status_cxx2017.xml: Fix outdated reference to
92 C++17 working draft.
93
94 Backport from mainline
95 2019-05-21 Jonathan Wakely <jwakely (a] redhat.com>
96
97 * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
98
99 2019-09-02 Jonathan Wakely <jwakely (a] redhat.com>
100
101 Backport from mainline
102 2019-05-17 Jonathan Wakely <jwakely (a] redhat.com>
103
104 * include/bits/random.h (seed_seq::param): Fix non-reserved name.
105 * include/experimental/type_traits (is_detected_exact)
106 (is_detected_exact_v): Likewise.
107 * testsuite/17_intro/names.cc: Check for more non-reserved names.
108 * testsuite/experimental/names.cc: New test.
109
110 2019-06-26 Jonathan Wakely <jwakely (a] redhat.com>
111
112 Backport from mainline
113 2019-05-28 Jonathan Wakely <jwakely (a] redhat.com>
114
115 PR libstdc++/90634
116 * include/experimental/bits/fs_path.h (path::path(path&&)): Only call
117 _M_split_cmpts() for a path with multiple components.
118 (path::_S_is_dir_sep()): Add missing 'static' keyword to function.
119 * src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
120 components and reserve space in vector. Return early when there is
121 only one component.
122 * testsuite/experimental/filesystem/path/construct/90634.cc: New test.
123
124 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
125
126 Backport from mainline
127 2019-02-27 Jonathan Wakely <jwakely (a] redhat.com>
128
129 PR libstdc++/89466
130 * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
131 stylesheet directories before check for xsltproc. Try to use
132 xmlcatalog to find local stylesheet directory before trying hardcoded
133 paths. Add path used by suse to hardcoded paths. Adjust xsltproc
134 check to look for the same stylesheet as doc/Makefile.am uses. Don't
135 use xsltproc if xmlcatalog fails to find a local stylesheet.
136 * configure.ac: Check for xmlcatalog.
137 * Makefile.in: Regenerate.
138 * configure: Likewise.
139 * doc/Makefile.in: Likewise.
140 * include/Makefile.in: Likewise.
141 * libsupc++/Makefile.in: Likewise.
142 * po/Makefile.in: Likewise.
143 * python/Makefile.in: Likewise.
144 * src/Makefile.in: Likewise.
145 * src/c++11/Makefile.in: Likewise.
146 * src/c++17/Makefile.in: Likewise.
147 * src/c++98/Makefile.in: Likewise.
148 * src/filesystem/Makefile.in: Likewise.
149 * testsuite/Makefile.in: Likewise.
150
151 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
152
153 Backport from mainline
154 2019-01-22 Jonathan Wakely <jwakely (a] redhat.com>
155
156 PR libstdc++/88740
157 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
158 write to stderr instead of using printf.
159
160 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
161
162 Backport from mainline
163 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
164
165 * include/experimental/any (__any_caster): Use RTTI if comparing
166 addresses fails, to support non-unique addresses in shared libraries.
167 * include/std/any (__any_caster): Likewise.
168 * testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error
169 line number.
170
171 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
172
173 Backport from mainline
174 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
175
176 PR libstdc++/90220
177 * include/experimental/any (__any_caster): Constrain to only be
178 callable for object types. Use remove_cv_t instead of decay_t.
179 If the type decays or isn't copy constructible, compare the manager
180 function to a dummy specialization.
181 (__any_caster): Add overload constrained for non-object types.
182 (any::_Manager_internal<_Op>): Add dummy specialization.
183 * testsuite/experimental/any/misc/any_cast.cc: Test function types
184 and array types.
185
186 Backport from mainline
187 2019-04-24 Jonathan Wakely <jwakely (a] redhat.com>
188
189 PR libstdc++/90220
190 * include/std/any (__any_caster): Use remove_cv_t instead of decay_t.
191 Avoid a runtime check for types that can never be stored in std::any.
192 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
193 array types.
194
195 Backport from mainline
196 2019-04-24 Jonathan Wakely <jwakely (a] redhat.com>
197
198 PR libstdc++/90220 (partial)
199 * include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do
200 not attempt ill-formed static_cast to pointers to non-object types.
201 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
202 function types.
203
204 2019-05-23 Jonathan Wakely <jwakely (a] redhat.com>
205
206 Backported from mainline
207 2019-01-15 Jonathan Wakely <jwakely (a] redhat.com>
208
209 * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
210 status.
211 * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
212 Define.
213 * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
214 changes are supported.
215 * include/std/optional (__cpp_lib_optional): Likewise.
216 * include/std/variant (__cpp_lib_variant): Likewise.
217
218 2019-05-08 Jonathan Wakely <jwakely (a] redhat.com>
219
220 Backport from mainline
221 2019-04-17 Jonathan Wakely <jwakely (a] redhat.com>
222
223 PR libstdc++/90105
224 * include/bits/forward_list.tcc (operator==): Do not use operator!= to
225 compare elements.
226 (forward_list<T, A>::sort(Comp)): When elements are equal take the one
227 earlier in the list, so that sort is stable.
228 * testsuite/23_containers/forward_list/operations/90105.cc: New test.
229 * testsuite/23_containers/forward_list/comparable.cc: Test with
230 types that meet the minimum EqualityComparable and LessThanComparable
231 requirements. Remove irrelevant comment.
232
233 Backport from mainline
234 2019-03-11 Jonathan Wakely <jwakely (a] redhat.com>
235
236 PR libstdc++/89629
237 * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes):
238 Use correct type for len_aligned.
239 * testsuite/20_util/hash/89629.cc: New test.
240
241 2019-02-22 Jonathan Wakely <jwakely (a] redhat.com>
242
243 PR libstdc++/89446
244 * include/bits/char_traits.h (__constant_char_array): Check index is
245 in range before dereferencing.
246 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
247 New test.
248
249 2018-12-24 Iain Sandoe <iain (a] sandoe.co.uk>
250
251 Backport from mainline
252 2018-12-06 Iain Sandoe <iain (a] sandoe.co.uk>
253
254 * scripts/make_exports.pl (check names): Dont try to export
255 construction vtable symbols.
256
257 2018-12-24 Iain Sandoe <iain (a] sandoe.co.uk>
258
259 Backport from mainline
260 2018-12-06 Jonathan Wakely <jwakely (a] redhat.com>
261 Iain Sandoe <iain (a] sandoe.co.uk>
262
263 PR libstdc++/64883
264 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
265 always_inline on Darwin.
266 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
267 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
268 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
269 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
270
271 2018-12-24 Iain Sandoe <iain (a] sandoe.co.uk>
272
273 Backport from mainline
274 2018-08-25 Iain Sandoe <iain (a] sandoe.co.uk>
275
276 PR libstdc++/70694
277 * configure.host (OPT_LDFLAGS): Don't append
278 -fvisibility-inlines-hidden for newer Darwin.
279
280 2018-12-06 Release Manager
281
282 * GCC 7.4.0 released.
283
284 2018-11-28 Franois Dumont <fdumont (a] gcc.gnu.org>
285
286 PR libstdc++/88199
287 * include/bits/hashtable.h
288 (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate
289 former buckets after assignment.
290 * testsuite/23_containers/unordered_set/allocator/move_assign.cc
291 (test03): New.
292
293 2018-10-31 Jonathan Wakely <jwakely (a] redhat.com>
294
295 Backport from mainline
296 2018-10-31 Jonathan Wakely <jwakely (a] redhat.com>
297
298 PR libstdc++/87822
299 * include/bits/stl_pair.h (__pair_base): Change to class template.
300 (pair): Make base class type depend on template parameters.
301 * testsuite/20_util/pair/87822.cc: New test.
302
303 2018-10-25 Jonathan Wakely <jwakely (a] redhat.com>
304
305 PR libstdc++/87749
306 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
307 (basic_string::operator=(basic_string&&)): For short strings copy the
308 buffer inline. Only fall back to using assign(const basic_string&) to
309 do a deep copy when reallocation is needed.
310 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
311 New test.
312 * testsuite/21_strings/basic_string/modifiers/assign/char/
313 move_assign_optim.cc: New test.
314 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
315 New test.
316 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
317 move_assign_optim.cc: New test.
318
319 2018-10-23 Jonathan Wakely <jwakely (a] redhat.com>
320
321 PR libstdc++/87704
322 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
323 not delegate to default constructor.
324 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
325 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
326
327 2018-10-22 Jonathan Wakely <jwakely (a] redhat.com>
328
329 Backport from mainline
330 2017-09-12 Jonathan Wakely <jwakely (a] redhat.com>
331
332 PR libstdc++/79433
333 * include/Makefile.am: Remove <bits/c++14_warning.h>.
334 * include/Makefile.in: Regenerate.
335 * include/bits/c++14_warning.h: Remove.
336 * include/experimental/algorithm: Do not include <c++14_warning.h>.
337 * include/experimental/any: Likewise.
338 * include/experimental/array: Likewise.
339 * include/experimental/bits/erase_if.h: Likewise.
340 * include/experimental/bits/lfts_config.h: Likewise.
341 * include/experimental/bits/shared_ptr.h: Likewise.
342 * include/experimental/bits/string_view.tcc: Likewise.
343 * include/experimental/chrono: Likewise.
344 * include/experimental/deque: Likewise.
345 * include/experimental/filesystem: Do not include <c++0x_warning.h>.
346 * include/experimental/forward_list: Do not include <c++14_warning.h>.
347 * include/experimental/functional: Likewise.
348 * include/experimental/iterator: Likewise.
349 * include/experimental/list: Likewise.
350 * include/experimental/map: Likewise.
351 * include/experimental/memory: Likewise.
352 * include/experimental/numeric: Likewise.
353 * include/experimental/optional: Likewise.
354 * include/experimental/propagate_const: Likewise.
355 * include/experimental/ratio: Likewise.
356 * include/experimental/regex: Likewise.
357 * include/experimental/set: Likewise.
358 * include/experimental/string: Likewise.
359 * include/experimental/string_view: Likewise.
360 * include/experimental/system_error: Likewise.
361 * include/experimental/tuple: Likewise.
362 * include/experimental/type_traits: Likewise.
363 * include/experimental/unordered_map: Likewise.
364 * include/experimental/unordered_set: Likewise.
365 * include/experimental/vector: Likewise.
366 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
367 line number.
368 * testsuite/experimental/array/neg.cc: Likewise.
369 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
370 Likewise.
371 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
372 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
373 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
374 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
375 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
376
377 2018-10-18 Jonathan Wakely <jwakely (a] redhat.com>
378
379 Backport from mainline
380 2018-10-18 Jonathan Wakely <jwakely (a] redhat.com>
381
382 PR libstdc++/87641
383 * include/bits/valarray_array.h (__valarray_sum): Use first element
384 to initialize accumulator instead of value-initializing it.
385 * testsuite/26_numerics/valarray/87641.cc: New test.
386
387 2018-10-15 Jonathan Wakely <jwakely (a] redhat.com>
388
389 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
390 account for change to glibc it_IT localedata (glibc bz#10797).
391
392 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
393
394 Backport from mainline
395 2018-07-31 Jonathan Wakely <jwakely (a] redhat.com>
396
397 PR libstdc++/86751
398 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
399 assignment operator.
400 (pair): Derive from __pair_base.
401 (pair::operator=): Remove deleted overload.
402 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
403 so that new base class isn't shown in GDB.
404 * testsuite/20_util/pair/86751.cc: New test.
405 * testsuite/20_util/pair/ref_assign.cc: New test.
406
407 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
408
409 Backport from mainline
410 2018-09-03 Jonathan Wakely <jwakely (a] redhat.com>
411
412 PR libstdc++/78595
413 * include/bits/stl_map.h (map::insert(_Pair&&))
414 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
415 * include/bits/stl_multimap.h (multimap::insert(_Pair&&))
416 (multimap::insert(const_iterator, _Pair&&)): Likewise.
417 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
418 (unordered_map::insert(const_iterator, _Pair&&))
419 (unordered_multimap::insert(_Pair&&))
420 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
421 * include/std/type_traits (__enable_if_t): Define for C++11.
422 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
423 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
424 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
425 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
426 test.
427
428 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
429
430 Backport from mainline
431 2018-08-30 Jonathan Wakely <jwakely (a] redhat.com>
432
433 * include/ext/pointer.h (_Pointer_adapter): Define operators for
434 pointer arithmetic using long long offsets.
435 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
436 long long values.
437
438 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
439
440 Backport from mainline
441 2018-08-23 Jonathan Wakely <jwakely (a] redhat.com>
442
443 * testsuite/21_strings/basic_string/init-list.cc:
444 Require cxx11-abi.
445 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
446 Likewise.
447 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
448 Likewise.
449
450 Backport from mainline
451 2018-08-22 Jonathan Wakely <jwakely (a] redhat.com>
452
453 PR libstdc++/87061
454 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
455 (experimental::pmr::match_results, experimental::pmr::cmatch)
456 (experimental::pmr::smatch, experimental::pmr::wcmatch)
457 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
458 because COW strings don't support C++11 allocator model.
459 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
460 (experimental::pmr::basic_string, experimental::pmr::string)
461 (experimental::pmr::u16string, experimental::pmr::u32string)
462 (experimental::pmr::wstring): Likewise.
463
464 Backport from mainline
465 2018-08-15 Jonathan Wakely <jwakely (a] redhat.com>
466
467 * include/experimental/regex: Remove begin/end macros for namespace.
468 * include/experimental/string: Likewise.
469 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
470 New test.
471 * testsuite/experimental/polymorphic_allocator/
472 pmr_typedefs_forward_list.cc: New test.
473 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
474 New test.
475 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
476 New test.
477 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
478 New test.
479 * testsuite/experimental/polymorphic_allocator/
480 pmr_typedefs_multimap.cc: New test.
481 * testsuite/experimental/polymorphic_allocator/
482 pmr_typedefs_multiset.cc: New test.
483 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
484 New test.
485 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
486 New test.
487 * testsuite/experimental/polymorphic_allocator/
488 pmr_typedefs_unordered_map.cc: New test.
489 * testsuite/experimental/polymorphic_allocator/
490 pmr_typedefs_unordered_multimap.cc: New test.
491 * testsuite/experimental/polymorphic_allocator/
492 pmr_typedefs_unordered_multiset.cc: New test.
493 * testsuite/experimental/polymorphic_allocator/
494 pmr_typedefs_unordered_set.cc: New test.
495 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
496 New test.
497
498 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
499
500 Backport from mainline
501 2018-07-24 Jonathan Wakely <jwakely (a] redhat.com>
502
503 PR libstdc++/70966
504 * include/experimental/memory_resource (__get_default_resource): Use
505 placement new to create an object with dynamic storage duration.
506
507 Backport from mainline
508 2018-06-20 Jonathan Wakely <jwakely (a] redhat.com>
509
510 PR libstdc++/70966
511 * include/experimental/memory_resource (__resource_adaptor_imp): Add
512 static assertions to enforce requirements on pointer types.
513 (__resource_adaptor_imp::get_allocator()): Add noexcept.
514 (new_delete_resource, null_memory_resource): Return address of an
515 object with dynamic storage duration.
516 (__null_memory_resource): Remove.
517 * testsuite/experimental/memory_resource/70966.cc: New.
518
519 2018-10-12 Jonathan Wakely <jwakely (a] redhat.com>
520
521 PR libstdc++/77854
522 * doc/xml/manual/status_cxx1998.xml: Document size_type and
523 difference_type for containers.
524 * doc/html/*: Regenerate.
525
526 2018-10-08 Joseph Myers <joseph (a] codesourcery.com>
527
528 Backport from mainline
529 2018-10-02 Joseph Myers <joseph (a] codesourcery.com>
530
531 * testsuite/lib/libstdc++.exp (libstdc++_init): Use
532 -fno-show-column in default cxxflags.
533
534 2018-10-08 Jonathan Wakely <jwakely (a] redhat.com>
535
536 Backport from mainline
537 2018-10-08 Jonathan Wakely <jwakely (a] redhat.com>
538
539 PR libstdc++/87538
540 * include/std/functional (_Not_fn::operator()): Check value of
541 __is_nothrow_invocable as well.
542 * testsuite/20_util/function_objects/not_fn/87538.cc: New test.
543 * testsuite/experimental/functional/87538.cc: New test.
544
545 2018-08-13 Jonathan Wakely <jwakely (a] redhat.com>
546
547 Revert
548 2018-08-10 Sebastian Huber <sebastian.huber (a] embedded-brains.de>
549
550 PR target/85904
551 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
552 Newlib.
553 * configure: Regenerate.
554
555 2018-08-10 Sebastian Huber <sebastian.huber (a] embedded-brains.de>
556
557 Backport from mainline
558 2018-08-10 Sebastian Huber <sebastian.huber (a] embedded-brains.de>
559
560 PR target/85904
561 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
562 Newlib.
563 * configure: Regenerate.
564
565 2018-08-08 Jonathan Wakely <jwakely (a] redhat.com>
566
567 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
568 avoid clashing with an ::aligned_alloc function that was not detected
569 by configure.
570
571 * doc/xml/manual/using.xml: Remove empty table cell.
572 * doc/html/*: Regenerate.
573
574 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
575 Remove C++17 and C++2a headers not present on gcc-7-branch.
576 * doc/html/*: Regenerate.
577
578 2018-08-07 Jonathan Wakely <jwakely (a] redhat.com>
579
580 Backport from mainline
581 2018-06-27 Jonathan Wakely <jwakely (a] redhat.com>
582
583 PR libstdc++/86138
584 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
585 Declare explicit instantiations of COW empty reps and I/O functions.
586
587 Backport from mainline
588 2018-05-08 Jonathan Wakely <jwakely (a] redhat.com>
589
590 PR libstdc++/85672
591 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
592 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
593 * include/Makefile.in: Regenerate.
594 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
595 within conditional block.
596
597 Backport from mainline
598 2018-05-01 Tulio Magno Quites Machado Filho <tuliom (a] linux.vnet.ibm.com>
599
600 PR libstdc++/84654
601 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
602 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
603 * configure: Regenerate.
604 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
605 based on ENABLE_FLOAT128.
606 * include/Makefile.in: Regenerate.
607 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
608 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
609 _GLIBCXX_USE_FLOAT128.
610
611 Backport from mainline
612 2017-06-17 Jonathan Wakely <jwakely (a] redhat.com>
613
614 PR libstdc++/80893
615 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }.
616
617 Backport from mainline
618 2017-05-31 Jonathan Wakely <jwakely (a] redhat.com>
619
620 PR libstdc++/80893
621 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
622 null pointer dereference when size is zero.
623 * testsuite/23_containers/vector/bool/80893.cc: New.
624 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
625 Add non-explicit constructor from nullptr.
626 (PointerBase::derived() const): Add const-qualified overload.
627
628 Backport from mainline
629 2017-12-14 Jonathan Wakely <jwakely (a] redhat.com>
630
631 PR libstdc++/68519
632 * include/std/condition_variable (condition_variable::wait_for):
633 Convert duration to native clock's duration before addition.
634 * testsuite/30_threads/condition_variable/members/68519.cc: New test.
635
636 Backport from mainline
637 2018-06-25 Jonathan Wakely <jwakely (a] redhat.com>
638
639 PR libstdc++/86292
640 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
641 Add try-catch block.
642 * testsuite/23_containers/vector/cons/86292.cc: New.
643
644 Backport from mainline
645 2018-07-31 Jonathan Wakely <jwakely (a] redhat.com>
646
647 * doc/xml/manual/test.xml: Improve documentation on writing tests for
648 newer standards.
649 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
650 * doc/html/*: Regenerate.
651
652 Backport from mainline
653 2018-08-03 Jonathan Wakely <jwakely (a] redhat.com>
654
655 * src/c++11/system_error.cc
656 (system_error_category::default_error_condition): Add workaround for
657 ENOTEMPTY and EEXIST having the same value on AIX.
658 * testsuite/19_diagnostics/error_category/system_category.cc: Add
659 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
660
661 Backport from mainline
662 2018-08-01 Jonathan Wakely <jwakely (a] redhat.com>
663
664 PR libstdc++/60555
665 * src/c++11/system_error.cc
666 (system_error_category::default_error_condition): New override to
667 check for POSIX errno values.
668 * testsuite/19_diagnostics/error_category/generic_category.cc: New
669 * testsuite/19_diagnostics/error_category/system_category.cc: New
670 test.
671
672 Backport from mainline
673 2018-08-07 Jonathan Wakely <jwakely (a] redhat.com>
674
675 PR libstdc++/86861
676 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
677 Replace macro with inline function.
678 [__sun]: Increase alignment to meet memalign precondition.
679 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
680 (aligned_alloc): Move check for valid alignment to operator new.
681 Remove redundant check for non-zero size, it's enforced by the caller.
682 (operator new): Move check for valid alignment here. Use
683 __builtin_expect on check for zero size.
684
685 Backport from mainline
686 2018-07-30 Jonathan Wakely <jwakely (a] redhat.com>
687
688 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
689 workaround for aligned_alloc bug on AIX.
690 * testsuite/18_support/new_aligned.cc: New test.
691
692 Backport from mainline
693 2018-07-30 Jonathan Wakely <jwakely (a] redhat.com>
694
695 PR libstdc++/86734
696 * include/bits/stl_iterator.h (reverse_iterator::operator->): Use
697 addressof (LWG 2188).
698 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
699
700 Backport from mainline
701 2018-05-19 Jonathan Wakely <jwakely (a] redhat.com>
702
703 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
704 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
705 little_endian element in bitmask.
706 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
707 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
708
709 2018-07-05 Franois Dumont <fdumont (a] gcc.gnu.org>
710
711 Backport from mainline
712 2018-07-04 Franois Dumont <fdumont (a] gcc.gnu.org>
713
714 PR libstdc++/86272
715 * include/debug/string
716 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
717 Use __glibcxx_check_insert_range.
718
719 2018-07-04 Jonathan Wakely <jwakely (a] redhat.com>
720
721 Backport from mainline
722 2018-03-09 Jonathan Wakely <jwakely (a] redhat.com>
723
724 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
725
726 Backport from mainline
727 2018-06-18 Jonathan Wakely <jwakely (a] redhat.com>
728
729 LWG 3050 Fix cv-qualification of convertibility constraints
730 * include/std/chrono (duration, operator*, operator/, operator%): Use
731 const-qualified type as source type in is_convertible constraints.
732 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
733 * testsuite/20_util/duration/cons/dr3050.cc: New.
734 * testsuite/20_util/duration/literals/range.cc: Rename to...
735 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
736 dg-error lineno.
737
738 Backport from mainline
739 2018-06-13 Jonathan Wakely <jwakely (a] redhat.com>
740
741 PR libstdc++/86127
742 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
743 unused typedef.
744 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
745 Use node allocator to create and destroy elements.
746 (forward_list::_Tp_alloc_type): Remove unused typedef.
747 (forward_list::_Alloc_traits): Use allocator_traits instead of
748 __gnu_cxx::__alloc_traits.
749 * include/bits/forward_list.tcc (_Fwd_list_base::_M_erase_after):
750 Use node allocator to create and destroy elements.
751
752 Backport from mainline
753 2018-05-29 Jonathan Wakely <jwakely (a] redhat.com>
754
755 * include/std/variant (__erased_dtor): Qualify call to __get.
756
757 Backport from mainline
758 2018-05-15 Jonathan Wakely <jwakely (a] redhat.com>
759
760 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
761 __invoke to prevent ADL.
762
763 Backport from mainline
764 2018-04-05 Jonathan Wakely <jwakely (a] redhat.com>
765
766 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
767 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
768
769 Backport from mainline
770 2018-03-26 Jonathan Wakely <jwakely (a] redhat.com>
771
772 * include/std/variant (__get): Qualify calls to avoid ADL.
773 (__select_index): Adjust whitespace.
774 (variant): Add using-declaration to workaround Clang bug.
775
776 Backport from mainline
777 2018-05-24 Maya Rashish <coypu (a] sdf.org>
778
779 PR target/85904
780 * crossconfig.m4: Test for aligned_alloc on netbsd.
781 * configure: Regenerate.
782
783 Backport from mainline
784 2018-05-18 Jonathan Wakely <jwakely (a] redhat.com>
785
786 PR libstdc++/85098
787 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
788 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
789 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
790 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
791 definitions.
792 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
793 whitespace.
794 * testsuite/28_regex/basic_regex/85098.cc: New
795
796 Backport from mainline
797 2018-05-07 Jonathan Wakely <jwakely (a] redhat.com>
798
799 PR libstdc++/85671
800 * include/experimental/bits/fs_path.h (operator/): Likewise.
801
802 Backport from mainline
803 2018-06-14 Daniel Trebbien <dtrebbien (a] gmail.com>
804 Jonathan Wakely <jwakely (a] redhat.com>
805
806 PR libstdc++/83982
807 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
808 Default-construct new elements before moving existing ones.
809 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
810 New.
811
812 Backport from mainline
813 2018-05-03 Jonathan Wakely <jwakely (a] redhat.com>
814
815 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
816 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
817 (append(const basic_string&, size_type, size_type)
818 (assign(const basic_string&, size_type, size_type)
819 (insert(size_type, const basic_string&, size_type, size_type)
820 (replace(size_type,size_type,const basic_string&,size_type,size_type)
821 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
822 Add default arguments (LWG 2268).
823 [_GLIBCXX_USE_CXX11_ABI=0]
824 (append(const basic_string&, size_type, size_type)
825 (assign(const basic_string&, size_type, size_type)
826 (insert(size_type, const basic_string&, size_type, size_type)
827 (replace(size_type,size_type,const basic_string&,size_type,size_type)
828 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
829 Likewise.
830 * testsuite/21_strings/basic_string/dr2268.cc: New test.
831
832 2018-06-22 Jakub Jelinek <jakub (a] redhat.com>
833
834 Backported from mainline
835 2018-04-18 David Malcolm <dmalcolm (a] redhat.com>
836
837 PR jit/85384
838 * configure: Regenerate.
839
840 2018-06-22 Jonathan Wakely <jwakely (a] redhat.com>
841
842 Backport from mainline
843 2018-06-22 Jonathan Wakely <jwakely (a] redhat.com>
844
845 PR libstdc++/86138
846 * include/bits/basic_string.tcc:
847 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
848 (basic_string<char>::_Rep::_S_empty_rep_storage)
849 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
850 instantiation declarations.
851 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
852 explicit instantiation declarations.
853 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
854 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
855
856 2018-06-21 Jonathan Wakely <jwakely (a] redhat.com>
857
858 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
859
860 2018-06-19 Jonathan Wakely <jwakely (a] redhat.com>
861
862 * include/std/utility: Remove unused <exception> header.
863
864 2018-06-15 Jonathan Wakely <jwakely (a] redhat.com>
865
866 PR libstdc++/86169
867 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
868 (basic_string::data()): Unshare string.
869 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
870 New.
871
872 2018-06-15 Jonathan Wakely <jwakely (a] redhat.com>
873
874 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
875 define for C++17 and above.
876
877 2018-05-17 Jonathan Wakely <jwakely (a] redhat.com>
878
879 PR libstdc++/85812
880 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
881 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
882 Refactor to separate non-throwing and throwing implementations.
883 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
884 if constructing the object throws.
885
886 2018-05-14 Jonathan Wakely <jwakely (a] redhat.com>
887
888 PR libstdc++/67554
889 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
890 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
891
892 PR libstdc++/82966
893 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
894 instead of type.
895 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
896
897 2018-05-10 Jonathan Wakely <jwakely (a] redhat.com>
898
899 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
900 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
901 of C++11 containers with Debug Mode support.
902 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
903 * doc/html/*: Regenerate.
904
905 2018-05-07 Edward Smith-Rowland <3dw4rd (a] verizon.net>
906 Jonathan Wakely <jwakely (a] redhat.com>
907
908 Backport from mainline
909 2018-05-07 Edward Smith-Rowland <3dw4rd (a] verizon.net>
910
911 PR libstdc++/80506
912 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic
913 number used in loop condition.
914 (gamma_distribution::__generate_impl()): Ditto.
915
916 2018-05-03 Jonathan Wakely <jwakely (a] redhat.com>
917
918 PR libstdc++/84769
919 * include/std/variant (visit): Qualify std::get call.
920
921 PR libstdc++/85632 use uintmax_t for arithmetic
922 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
923 arithmetic in result type.
924 * testsuite/experimental/filesystem/operations/space.cc: New.
925
926 2018-04-30 Edward Smith-Rowland <3dw4rd (a] verizon.net>
927
928 PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values
929 * include/tr1/ell_integral.tcc: Correct the nu sign convention
930 in ellint_3 and comp_ellint_3.
931 * testsuite/tr1/5_numerical_facilities/special_functions/
932 06_comp_ellint_3/check_value.cc: Regen with correct values.
933 * testsuite/tr1/5_numerical_facilities/special_functions/
934 14_ellint_3/check_value.cc: Ditto.
935 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto.
936 * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto.
937 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New.
938 * testsuite/special_functions/13_ellint_3/pr66689.cc: New.
939 * testsuite/tr1/5_numerical_facilities/special_functions/
940 06_comp_ellint_3/pr66689.cc: New.
941 * testsuite/tr1/5_numerical_facilities/special_functions/
942 14_ellint_3/pr66689.cc: New.
943
944 2018-04-30 Edward Smith-Rowland <3dw4rd (a] verizon.net>
945
946 PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
947 * include/tr1/exp_integral.tcc: Increase iteration limits.
948 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
949 pr68397.cc: New test.
950 * testsuite/special_functions/14_expint/pr68397.cc: New test.
951
952 2018-04-18 Jonathan Wakely <jwakely (a] redhat.com>
953 Jakub Jelinek <jakub (a] redhat.com>
954
955 PR libstdc++/85442
956 * src/c++11/Makefile.am: Don't generate debuginfo again for
957 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
958 * src/c++11/Makefile.in: Regenerate.
959
960 2018-04-13 Jonathan Wakely <jwakely (a] redhat.com>
961
962 * src/c++11/Makefile.am: Fix sed command.
963 * src/c++11/Makefile.in: Regenerate.
964
965 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
966 handle mangled names starting with double underscores on darwin.
967 * src/c++11/Makefile.in: Regenerate.
968
969 2018-04-12 Jonathan Wakely <jwakely (a] redhat.com>
970
971 * src/c++11/Makefile.am: Fix comment.
972 * src/c++11/Makefile.in: Regenerate.
973 * src/c++11/cxx11-ios_failure.cc: Fix comment.
974 * src/c++98/ios_failure.cc: Likewise.
975
976 Backport from mainline
977 2018-04-10 Jonathan Wakely <jwakely (a] redhat.com>
978
979 PR libstdc++/85222
980 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
981 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
982 * src/c++11/Makefile.in: Regenerate.
983 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
984 New types.
985 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
986 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
987 (_GLIBCXX_USE_CXX11_ABI): Don't define here.
988 * src/c++98/ios_failure.cc (__construct_ios_failure)
989 (__destroy_ios_failure, is_ios_failure_handler): New functions.
990 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
991 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
992 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
993 handler types, to always catch std::ios_base::failure.
994 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
995 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
996 exceptions_failbit.cc: Likewise.
997 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
998 exceptions_failbit.cc: Likewise.
999 * testsuite/27_io/basic_istream/extractors_other/char/
1000 exceptions_null.cc: Likewise.
1001 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1002 exceptions_null.cc: Likewise.
1003 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1004 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1005 * testsuite/27_io/basic_ostream/inserters_other/char/
1006 exceptions_null.cc: Likewise.
1007 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1008 exceptions_null.cc: Likewise.
1009 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1010
1011 2018-03-22 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
1012
1013 PR libstdc++/77691
1014 * testsuite/experimental/memory_resource/resource_adaptor.cc:
1015 xfail execution on 32-bit Solaris/x86.
1016
1017 2018-03-13 Jonathan Wakely <jwakely (a] redhat.com>
1018
1019 Backport from mainline
1020 2018-03-09 Jonathan Wakely <jwakely (a] redhat.com>
1021
1022 PR libstdc++/84769
1023 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
1024 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
1025
1026 2018-03-12 Jonathan Wakely <jwakely (a] redhat.com>
1027
1028 PR libstdc++/84773
1029 PR libstdc++/83662
1030 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
1031 * configure: Regenerate.
1032 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
1033 (aligned_alloc): Add using-declaration.
1034 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
1035
1036 2018-03-02 Jonathan Wakely <jwakely (a] redhat.com>
1037
1038 Backport from mainline
1039 2018-03-02 Jonathan Wakely <jwakely (a] redhat.com>
1040
1041 PR libstdc++/84671
1042 * include/bits/parse_numbers.h (_Number_help): Add partial
1043 specialization to handle digit separators. Adjust partial
1044 specialization for recursion temrination to require _Pow == 1ULL.
1045 * testsuite/20_util/duration/literals/84671.cc: New
1046
1047 2018-02-26 Jonathan Wakely <jwakely (a] redhat.com>
1048
1049 Backport from mainline
1050 2018-02-23 Jonathan Wakely <jwakely (a] redhat.com>
1051
1052 PR libstdc++/84532
1053 * include/std/thread (thread::__make_invoker): Construct tuple
1054 directly instead of using make_tuple.
1055 * testsuite/30_threads/async/84532.cc: New.
1056 * testsuite/30_threads/thread/84532.cc: New.
1057
1058 2018-02-19 Jonathan Wakely <jwakely (a] redhat.com>
1059
1060 Backport from mainline
1061 2018-02-15 Jonathan Wakely <jwakely (a] redhat.com>
1062
1063 PR libstdc++/81797
1064 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1065 * configure: Regenerate.
1066 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1067 defined.
1068 * include/Makefile.in: Regenerate.
1069
1070 2018-01-29 Jonathan Wakely <jwakely (a] redhat.com>
1071
1072 PR libstdc++/83833
1073 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1074 Add -ffloat-store to options for m68k and ia32.
1075
1076 PR libstdc++/83658
1077 * include/std/any (any::__do_emplace): Only set _M_manager after
1078 constructing the contained object.
1079 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
1080 * testsuite/20_util/any/modifiers/83658.cc: New test.
1081
1082 Backport from mainline
1083 2018-01-15 Jonathan Wakely <jwakely (a] redhat.com>
1084
1085 PR libstdc++/83833
1086 * include/bits/random.h (chi_squared_distribution::param): Update
1087 gamma distribution parameter.
1088 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
1089 test.
1090
1091 2018-01-25 Jonathan Wakely <jwakely (a] redhat.com>
1092
1093 PR libstdc++/81076
1094 * include/c_global/cstddef (__byte_operand): Define primary template.
1095 * testsuite/18_support/byte/81076.cc: New test.
1096
1097 Backport from mainline
1098 2018-01-15 Jonathan Wakely <jwakely (a] redhat.com>
1099
1100 PR libstdc++/83830
1101 * include/std/type_traits (has_unique_object_representations_v): Add
1102 variable template.
1103 * testsuite/20_util/has_unique_object_representations/value.cc: Check
1104 variable template.
1105
1106 2018-01-25 Release Manager
1107
1108 * GCC 7.3.0 released.
1109
1110 2018-01-19 Jonathan Wakely <jwakely (a] redhat.com>
1111
1112 Backport from mainline
1113 2018-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1114
1115 PR libstdc++/83834
1116 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1117 pattern with exact match for std::cerr.
1118
1119 2018-01-18 Jonathan Wakely <jwakely (a] redhat.com>
1120
1121 Backport from mainline
1122 2017-10-23 Jonathan Wakely <jwakely (a] redhat.com>
1123
1124 * doc/xml/manual/intro.xml: Include new section.
1125 * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
1126 status.
1127 * doc/html/*: Regenerate.
1128
1129 Backport from mainline
1130 2017-10-19 Jonathan Wakely <jwakely (a] redhat.com>
1131
1132 * doc/xml/manual/status_cxx2017.xml: Update references to C++17
1133 section numbers.
1134
1135 2018-01-16 Eric Botcazou <ebotcazou (a] adacore.com>
1136
1137 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1138
1139 2018-01-13 Jonathan Wakely <jwakely (a] redhat.com>
1140
1141 * python/libstdcxx/v6/printers.py (register_type_printers): Remove
1142 printer for experimental::any. Fix printers for experimental::optional
1143 and experimental::basic_string_view.
1144
1145 Backport from mainline
1146 2018-01-05 Jonathan Wakely <jwakely (a] redhat.com>
1147
1148 PR libstdc++/83626
1149 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
1150 unnecessary symlink_status call.
1151 (remove_all(const path&, error_code&)): Use filesystem::remove.
1152
1153 2018-01-05 Jonathan Wakely <jwakely (a] redhat.com>
1154
1155 Backport from mainline
1156 2017-10-19 Jonathan Wakely <jwakely (a] redhat.com>
1157
1158 * testsuite/experimental/filesystem/iterators/
1159 recursive_directory_iterator.cc: Ensure that error_code arguments are
1160 cleared when required.
1161 * testsuite/experimental/filesystem/operations/create_directory.cc:
1162 Remove redundant check.
1163 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1164 Ensure that error_code argument is cleared when required.
1165
1166 Backport from mainline
1167 2017-12-27 Jonathan Wakely <jwakely (a] redhat.com>
1168
1169 PR libstdc++/83600
1170 * include/bits/regex.h (match_results::end()): Return valid iterator
1171 when not ready.
1172 * testsuite/28_regex/match_results/ctors/char/default.cc: Check that
1173 unready objects are empty and have equal begin and end iterators.
1174 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
1175
1176 Backport from mainline
1177 2017-12-27 Jonathan Wakely <jwakely (a] redhat.com>
1178
1179 PR libstdc++/83598
1180 * include/bits/regex.h (basic_regex): Don't modify flags passed to
1181 constructors.
1182 * testsuite/28_regex/basic_regex/ctors/83598.cc: New test.
1183
1184 Backport from mainline
1185 2017-12-14 Jonathan Wakely <jwakely (a] redhat.com>
1186
1187 PR libstdc++/83279
1188 * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
1189 copying entire file.
1190
1191 Backport from mainline
1192 2018-01-04 Jonathan Wakely <jwakely (a] redhat.com>
1193
1194 * include/experimental/fs_ops.h (exists(const path&, error_code&))):
1195 Only check status_known once.
1196
1197 Backport from mainline
1198 2018-01-05 Jonathan Wakely <jwakely (a] redhat.com>
1199
1200 PR libstdc++/83626
1201 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
1202 report an error for ENOENT.
1203 (remove_all(const path&)): Fix type of result variable.
1204 (remove_all(const path&, error_code&)): Use non-throwing increment
1205 for directory iterator. Call POSIX remove directly to avoid redundant
1206 calls to symlink_status. Do not report errors for ENOENT.
1207 * testsuite/experimental/filesystem/operations/remove_all.cc: Test
1208 throwing overload.
1209
1210 Backport from mainline
1211 2018-01-04 Jonathan Wakely <jwakely (a] redhat.com>
1212
1213 PR libstdc++/83626
1214 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
1215 redundant call to ec.clear().
1216 (remove_all(const path&, error_code&))): Do not return an error for
1217 non-existent paths.
1218 * testsuite/experimental/filesystem/operations/remove.cc: New test.
1219 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
1220 expected results for non-existent paths.
1221
1222 Backport from mainline
1223 2017-10-25 Jonathan Wakely <jwakely (a] redhat.com>
1224
1225 PR libstdc++/79283
1226 * src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
1227
1228 2018-01-04 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1229
1230 Backport from mainline
1231 2018-01-03 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1232
1233 Protect optional's deduction guide with the feature macro
1234 * include/std/optional: Use the feature macro.
1235
1236 2017-12-28 Franois Dumont <fdumont (a] gcc.gnu.org>
1237
1238 Backport from mainline
1239 2017-12-20 Franois Dumont <fdumont (a] gcc.gnu.org>
1240
1241 PR libstdc++/82522
1242 * include/debug/map.h (map::insert(value_type&&))
1243 (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1244 * include/debug/multimap.h (multimap::insert(value_type&&))
1245 (multimap::insert(const_iterator, value_type&&)): Likewise.
1246 * include/debug/unordered_map (unordered_map::insert(value_type&&))
1247 (unordered_map::insert(const_iterator, value_type&&))
1248 (unordered_multimap::insert(value_type&&))
1249 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1250 * testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New.
1251 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02):
1252 New.
1253 * testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New.
1254 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02):
1255 New.
1256
1257 2017-12-14 Jonathan Wakely <jwakely (a] redhat.com>
1258
1259 PR libstdc++/83427
1260 * include/bits/refwrap.h (_Weak_result_type_impl)
1261 (_Reference_wrapper_base): Deduce noexcept for function types.
1262 * testsuite/20_util/bind/83427.cc: New test.
1263 * testsuite/20_util/reference_wrapper/83427.cc: New test.
1264
1265 PR libstdc++/59568
1266 * include/std/complex (operator>>): Only use putback if a character
1267 was successfully extracted and only set the value if a number was
1268 successfully extracted.
1269 * testsuite/26_numerics/complex/inserters_extractors/char/59568.cc:
1270 New test.
1271
1272 2017-12-12 Jonathan Wakely <jwakely (a] redhat.com>
1273
1274 PR libstdc++/83395
1275 * include/std/type_traits (__is_invocable_impl): Remove partial
1276 specialization for INVOKE<void> and restore is_void<R> check in
1277 primary template.
1278 (__is_nt_invocable_impl): Likewise.
1279 * testsuite/20_util/is_invocable/83395.cc: New test.
1280 * testsuite/20_util/is_nothrow_invocable/83395.cc: New test.
1281
1282 2017-12-01 Jonathan Wakely <jwakely (a] redhat.com>
1283
1284 Backport from mainline
1285 2017-10-13 Jonathan Wakely <jwakely (a] redhat.com>
1286
1287 PR libstdc++/82522
1288 * doc/xml/manual/intro.xml: Document LWG 2354 changes.
1289 * include/bits/stl_map.h (map::insert(value_type&&))
1290 (map::insert(const_iterator, value_type&&)): Add overload for rvalues.
1291 * include/bits/stl_multimap.h (multimap::insert(value_type&&))
1292 (multimap::insert(const_iterator, value_type&&)): Likewise.
1293 * include/bits/unordered_map.h (unordered_map::insert(value_type&&))
1294 (unordered_map::insert(const_iterator, value_type&&))
1295 (unordered_multimap::insert(value_type&&))
1296 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
1297 * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
1298 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
1299 test.
1300 * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
1301 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
1302 test.
1303
1304 Backport from mainline
1305 2017-11-23 Jonathan Wakely <jwakely (a] redhat.com>
1306
1307 PR libstdc++/83134
1308 * include/std/type_traits (__not_): Explicitly convert to bool.
1309 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
1310 * testsuite/20_util/logical_traits/83134.cc: New test.
1311 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1312 dg-error.
1313 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1314 Likewise.
1315
1316 Backport from mainline
1317 2017-12-01 Jonathan Wakely <jwakely (a] redhat.com>
1318
1319 * include/std/type_traits (integral_constant): Make member functions
1320 noexcept (LWG 2346).
1321 * include/std/utility (integer_sequence): Likewise.
1322
1323 Backport from mainline
1324 2017-11-16 Jonathan Wakely <jwakely (a] redhat.com>
1325
1326 * include/std/future (shared_future): Add noexcept to copy constructor
1327 and copy-assignment operator (LWG 2799).
1328
1329 Backport from mainline
1330 2017-11-15 Jonathan Wakely <jwakely (a] redhat.com>
1331
1332 * include/bits/range_access.h (size, empty, data): Add conditional
1333 noexcept to generic overloads.
1334
1335 Backport from mainline
1336 2017-10-24 Jonathan Wakely <jwakely (a] redhat.com>
1337
1338 PR libstdc++/82685
1339 * include/experimental/string_view (operator""sv): Add noexcept.
1340 * include/std/string_view (operator""sv): Likewise.
1341
1342 Backport from mainline
1343 2017-11-30 Jonathan Wakely <jwakely (a] redhat.com>
1344
1345 PR libstdc++/83226
1346 * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming
1347 pointer-to-reference types.
1348 * testsuite/23_containers/map/modifiers/insert/83226.cc: New test.
1349
1350 Backport from mainline
1351 2017-11-14 Jonathan Wakely <jwakely (a] redhat.com>
1352
1353 * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo.
1354 * testsuite/22_locale/conversions/buffer/3.cc: New test.
1355
1356 Backport from mainline
1357 2017-11-03 Jonathan Wakely <jwakely (a] redhat.com>
1358
1359 * include/bits/node_handle.h (_Node_insert_return::get): Remove, as
1360 per P0508R0.
1361
1362 2017-10-25 Jonathan Wakely <jwakely (a] redhat.com>
1363
1364 * doc/xml/manual/status_cxx1998.xml: Correct statement about
1365 what the doc covers.
1366 * doc/xml/manual/status_cxx2011.xml: Likewise.
1367 * doc/xml/manual/status_cxx2014.xml: Likewise.
1368 * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
1369 information on feature-test macros.
1370 * doc/xml/manual/status_cxxtr1.xml: Correct statement about what
1371 the doc covers.
1372 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1373 * doc/html/*: Regenerate.
1374
1375 2017-10-23 Jonathan Wakely <jwakely (a] redhat.com>
1376
1377 Backport from mainline
1378 2017-07-18 Jonathan Wakely <jwakely (a] redhat.com>
1379
1380 PR libstdc++/81395
1381 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer
1382 pointers for write mode after reading.
1383 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New.
1384
1385 2017-10-21 Jonathan Wakely <jwakely (a] redhat.com>
1386
1387 * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
1388 increment past-the-end iterators.
1389
1390 2017-10-20 Jonathan Wakely <jwakely (a] redhat.com>
1391
1392 * include/std/chrono (__cpp_lib_chrono): Update macro value to
1393 indicate support for P0505R0.
1394 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
1395 for updated macro.
1396
1397 * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
1398 * testsuite/18_support/byte/requirements.cc: Check macro.
1399
1400 Backport from mainline
1401 2017-10-13 Jonathan Wakely <jwakely (a] redhat.com>
1402
1403 PR libstdc++/82481
1404 * include/std/mutex (call_once): Suppress clang-tidy warnings about
1405 dangling references.
1406
1407 Backport from mainline
1408 2017-09-12 Jonathan Wakely <jwakely (a] redhat.com>
1409
1410 PR libstdc++/79433
1411 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
1412 * doc/html/*: Regenerate.
1413 * include/Makefile.am: Remove <bits/c++17_warning.h>.
1414 * include/Makefile.in: Regenerate.
1415 * include/bits/c++17_warning.h: Remove.
1416 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
1417 for pre-C++17 modes.
1418 * include/std/any: Likewise.
1419 (__cpp_lib_any): Define.
1420 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
1421 SD-6 draft.
1422 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
1423 draft.
1424 * include/std/optional: Do not include <bits/c++17_warning.h>.
1425 (__cpp_lib_optional): Define.
1426 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
1427 * include/std/string_view: Do not include <bits/c++17_warning.h>.
1428 (__cpp_lib_string_view): Define.
1429 * include/std/variant: Do not include <bits/c++17_warning.h>.
1430 (__cpp_lib_variant): Define.
1431 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
1432 numbers.
1433 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
1434 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
1435 numbers.
1436 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
1437 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
1438 numbers.
1439 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
1440 expected value of __cpp_lib_scoped_lock.
1441
1442 Backport from mainline
1443 2017-10-19 Jonathan Wakely <jwakely (a] redhat.com>
1444
1445 * include/experimental/bits/fs_path.h (path::iterator++(int))
1446 (path::iterator--(int)): Fix for paths with only one component.
1447 * testsuite/experimental/filesystem/path/itr/traversal.cc: Test
1448 post-increment and post-decrement.
1449
1450 2017-09-21 Jonathan Wakely <jwakely (a] redhat.com>
1451
1452 * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
1453 expected results when using predicate defining reverse order.
1454 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1455
1456 2017-09-20 Jonathan Wakely <jwakely (a] redhat.com>
1457
1458 Backport from mainline
1459 2017-06-14 Jonathan Wakely <jwakely (a] redhat.com>
1460
1461 * doc/xml/manual/test.xml: Correct instructions on running tests.
1462 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Adjust to pass when
1463 -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
1464 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
1465 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
1466 exceptions_failbit.cc: Likewise.
1467 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
1468 exceptions_failbit.cc: Likewise.
1469 * testsuite/27_io/basic_istream/extractors_other/char/
1470 exceptions_null.cc: Likewise.
1471 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
1472 exceptions_null.cc: Likewise.
1473 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
1474 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
1475 * testsuite/27_io/basic_ostream/inserters_other/char/
1476 exceptions_null.cc: Likewise.
1477 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
1478 exceptions_null.cc: Likewise.
1479 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
1480
1481 PR libstdc++/79162
1482 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1483 (basic_string::_If_sv): Remove from the overload set when the
1484 argument is derived from basic_string.
1485
1486 PR libstdc++/79162
1487 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
1488 overload set when the argument is derived from basic_string.
1489 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
1490 test.
1491 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1492 New test.
1493
1494 * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
1495 and dg-options directives. Fix invalid test.
1496
1497 Backport from mainline
1498 2017-09-20 Jonathan Wakely <jwakely (a] redhat.com>
1499
1500 PR libstdc++/82262
1501 * include/std/optional (__optional_hash_call_base): Add template
1502 parameter for remove_const_t<_Tp> and use it consistently.
1503 * testsuite/20_util/optional/hash.cc: Test optional<const T>.
1504
1505 Backport from mainline
1506 2017-09-19 Jonathan Wakely <jwakely (a] redhat.com>
1507
1508 PR libstdc++/82254
1509 * include/std/type_traits (__is_invocable): Add partial specialization
1510 for INVOKE<void> case and remove is_void<R> check from partial
1511 specialization for INVOKE<R> case.
1512 (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
1513 (is_nothrow_invocable_r): Use __is_nt_invocable_impl.
1514 * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
1515 conversions that can throw or fail to convert. Use static assert
1516 strings to explain negative results.
1517 * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
1518 is_nothrow_constructible in is_nt_invocable_conv.
1519
1520 2017-09-13 Jonathan Wakely <jwakely (a] redhat.com>
1521
1522 Backport from mainline
1523 2017-09-04 Daniel Kruegler <daniel.kruegler (a] gmail.com>
1524
1525 PR libstdc++/79162
1526 Implement LWG 2946, LWG 2758's resolution missed further corrections
1527 * include/bits/basic_string.h (basic_string::compare): Add missing
1528 required noexcept specifications.
1529 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper
1530 for implicit string_view conversion.
1531 (basic_string::basic_string): Fix explicit string_view conversion by
1532 implicit conversion using _S_to_string_view and __sv_wrapper.
1533 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc)
1534 constructor.
1535 (basic_string): Fix operator=(T) template by operator=(const T&)
1536 template for uncopyable types (PR 79162).
1537 (basic_string::operator+=, basic_string::append, basic_string::assign)
1538 (basic_string::insert, basic_string::replace, basic_string::find)
1539 (basic_string::rfind, basic_string::find_first_of)
1540 (basic_string::find_last_of, basic_string::find_first_not_of)
1541 (basic_string::find_last_not_of, basic_string::compare): Replace
1542 __sv_type argument by template const T& (LWG 2946) and correct
1543 documentation describing __sv_type argument.
1544 (basic_string::find, basic_string::rfind, basic_string::find_first_of)
1545 (basic_string::find_last_of, basic_string::find_first_not_of)
1546 (basic_string::find_last_not_of, basic_string::compare): Replace
1547 unconditional noexcept specification by conditional noexcept
1548 specification to partially balance the removal of noexcept by LWG 2946.
1549 * testsuite/21_strings/basic_string/79162.cc: New.
1550 * testsuite/21_strings/basic_string/lwg2946.cc: New.
1551
1552 2017-09-13 Jonathan Wakely <jwakely (a] redhat.com>
1553
1554 PR libstdc++/81468
1555 * include/std/chrono (time_point(const time_point<_Dur2>&)): Add
1556 missing constraint from LWG DR 1177.
1557 * testsuite/20_util/duration/cons/dr1177.cc: New.
1558 * testsuite/20_util/time_point/cons/81468.cc: New.
1559 * testsuite/20_util/duration/literals/range.cc: Update dg-error line.
1560
1561 * doc/doxygen/mainpage.html: Fix broken URLs.
1562
1563 PR libstdc++/81835
1564 * doc/xml/manual/extensions.xml: Replace unstable URL.
1565 * doc/html/manual/ext_demangling.html: Regenerate.
1566 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
1567
1568 2017-09-12 Jonathan Wakely <jwakely (a] redhat.com>
1569
1570 Backport from mainline
1571 2017-09-12 Jonathan Wakely <jwakely (a] redhat.com>
1572
1573 PR libstdc++/70483
1574 * include/experimental/bits/string_view.tcc (basic_string_view::find)
1575 (basic_string_view::rfind, basic_string_view::find_first_of)
1576 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1577 (basic_string_view::find_last_not_of): Add constexpr specifier.
1578 * include/experimental/string_view (basic_string_view::remove_prefix)
1579 (basic_string_view::remove_suffix, basic_string_view::swap)
1580 (basic_string_view::compare, basic_string_view::find)
1581 (basic_string_view::rfind, basic_string_view::find_first_of)
1582 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1583 (basic_string_view::find_last_not_of, operator==, operator!=)
1584 (operator<, operator>, operator<=, operator>=): Likewise.
1585 * testsuite/experimental/string_view/operations/compare/char/70483.cc:
1586 New.
1587
1588 Backport from mainline
1589 2017-09-11 Jonathan Wakely <jwakely (a] redhat.com>
1590
1591 PR libstdc++/70483
1592 * include/bits/string_view.tcc (basic_string_view::find)
1593 (basic_string_view::rfind, basic_string_view::find_first_of)
1594 (basic_string_view::find_last_of, basic_string_view::find_first_not_of)
1595 (basic_string_view::find_last_not_of): Add constexpr specifier.
1596 * include/std/string_view (basic_string_view::operator=)
1597 (basic_string_view::rbegin, basic_string_view::rend)
1598 (basic_string_view::crbegin, basic_string_view::crend)
1599 (basic_string_view::remove_prefix, basic_string_view::remove_suffix)
1600 (basic_string_view::swap, basic_string_view::compare)
1601 (basic_string_view::find, basic_string_view::rfind)
1602 (basic_string_view::find_first_of, basic_string_view::find_last_of)
1603 (basic_string_view::find_first_not_of)
1604 (basic_string_view::find_last_not_of, basic_string_view::_M_check)
1605 (basic_string_view::_M_limit, operator==, operator!=, operator<)
1606 (operator>, operator<=, operator>=): Likewise.
1607 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1608 char/1.cc: Repeat tests in constexpr context.
1609 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
1610 wchar_t/1.cc: Likewise.
1611 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1612 char/1.cc: Likewise.
1613 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
1614 wchar_t/1.cc: Likewise.
1615 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1616 Likewise.
1617 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1618 Likewise.
1619 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1620 Likewise.
1621 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1622 Likewise.
1623 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1624 Likewise.
1625 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1626 Likewise.
1627 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1628 Likewise.
1629 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1630 Likewise.
1631 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
1632 cbegin, cend, rbegin, rend, crbegin and crend.
1633 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1634 Likewise.
1635 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1636 Remove trailing whitespace.
1637 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1638 1.cc: Likewise.
1639 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1640 New.
1641 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1642 New.
1643 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1644 New.
1645 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1646 2.cc: New.
1647
1648 Backport from mainline
1649 2017-06-12 Pedro Alves <palves (a] redhat.com>
1650
1651 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
1652 char_traits status.
1653 * doc/html/*: Regenerate.
1654
1655 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
1656 not already defined.
1657 (__cpp_lib_constexpr_char_traits): Uncomment.
1658 (__constant_string_p, __constant_char_array_p): New.
1659 (std::char_traits<char>, std::char_traits<wchar_t>): Add
1660 _GLIBCXX17_CONSTEXPR on compare, length and find and use
1661 __constant_string_p, __constant_char_array_p and
1662 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile
1663 time.
1664
1665 * testsuite/21_strings/char_traits/requirements/
1666 constexpr_functions_c++17.cc: Uncomment
1667 __cpp_lib_constexpr_char_traits tests. Uncomment
1668 test_compare<char>, test_length<char>, test_find<char>,
1669 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
1670 static_assert tests.
1671
1672 2017-09-04 Jonathan Wakely <jwakely (a] redhat.com>
1673
1674 Backport from mainline
1675 2017-08-31 Jonathan Wakely <jwakely (a] redhat.com>
1676
1677 PR c++/82039
1678 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate):
1679 Adjust null pointer constant to avoid warning.
1680
1681 Backport from mainline
1682 2017-08-21 Jonathan Wakely <jwakely (a] redhat.com>
1683
1684 PR libstdc++/81912
1685 * include/bits/stl_iterator_base_types.h (__iterator_category): Add
1686 constexpr for C++11 and later.
1687 * testsuite/24_iterators/container_access.cc: Add target selector.
1688 * testsuite/24_iterators/range_access.cc: Fix clause number in
1689 comment.
1690 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1691 * testsuite/24_iterators/range_access_cpp17.cc: New.
1692
1693 Backport from mainline
1694 2017-08-09 Jonathan Wakely <jwakely (a] redhat.com>
1695
1696 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
1697 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
1698 __is_identifier to set it.
1699
1700 Backport from mainline
1701 2017-08-09 Katsuhiko Nishimra <ktns.87 (a] gmail.com>
1702
1703 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
1704 __is_identifier instead of __has_builtin.
1705
1706 Backport from mainline
1707 2017-08-18 Jonathan Wakely <jwakely (a] redhat.com>
1708
1709 PR libstdc++/81891
1710 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
1711 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
1712 const _ExtractKey&, const allocator_type&)): Let destructor do clean
1713 up if an exception is thrown.
1714 * testsuite/23_containers/unordered_map/cons/81891.cc: New.
1715
1716 Backport from mainline
1717 2017-07-31 Marek Polacek <polacek (a] redhat.com>
1718
1719 PR libstdc++/81599
1720 * include/bits/stl_stack.h: Fix typo.
1721
1722 Backport from mainline
1723 2017-07-10 Jonathan Wakely <jwakely (a] redhat.com>
1724
1725 PR libstdc++/81338
1726 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1727 Declare basic_stringbuf to be a friend.
1728 * include/bits/sstream.tcc (basic_stringbuf::overflow)
1729 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating.
1730 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string
1731 length to buffer length.
1732 * testsuite/27_io/basic_stringstream/assign/81338.cc: New.
1733
1734 2017-08-20 John David Anglin <danglin (a] gcc.gnu.org>
1735
1736 PR testsuite/81056
1737 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__.
1738
1739 2017-08-14 Jonathan Wakely <jwakely (a] redhat.com>
1740
1741 Backport from mainline
1742 2017-08-09 Jonathan Wakely <jwakely (a] redhat.com>
1743
1744 PR libstdc++/79820
1745 PR libstdc++/81751
1746 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
1747 Call fflush on the stream instead of calling sync() while _M_cfile is
1748 null. Restore original value of errno.
1749 * testsuite/ext/stdio_filebuf/char/79820.cc: New.
1750 * testsuite/ext/stdio_filebuf/char/81751.cc: New.
1751
1752 Backport from mainline
1753 2017-07-25 Jonathan Wakely <jwakely (a] redhat.com>
1754
1755 PR libstdc++/53984
1756 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment.
1757 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions
1758 during construction.
1759 * include/std/istream: Adjust comments for formatted input functions
1760 and unformatted input functions.
1761 * testsuite/27_io/basic_fstream/53984.cc: New.
1762 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New.
1763
1764 2017-08-14 Release Manager
1765
1766 * GCC 7.2.0 released.
1767
1768 2017-07-26 Richard Biener <rguenther (a] suse.de>
1769
1770 Backport from mainline
1771 2017-06-02 Richard Biener <rguenther (a] suse.de>
1772 Markus Eisenmann <meisenmann.lba (a] fh-salzburg.ac.at>
1773
1774 PR libstdc++/80721
1775 * libsupc++/eh_alloc.cc (pool::free): Keep list properly
1776 sorted and add missing freelist item merging cases.
1777
1778 2017-07-25 Jonathan Wakely <jwakely (a] redhat.com>
1779
1780 Backport from mainline
1781 2017-06-09 Jonathan Wakely <jwakely (a] redhat.com>
1782
1783 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
1784 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
1785 (LWG 2802).
1786 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
1787 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
1788 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.
1789
1790 Backport from mainline
1791 2017-06-05 Jonathan Wakely <jwakely (a] redhat.com>
1792
1793 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
1794 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
1795 specifiers as per LWG 2873 and LWG 2942.
1796 * testsuite/20_util/owner_less/noexcept.cc: New.
1797 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
1798 noexcept guarantees.
1799 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
1800
1801 Backport from mainline
1802 2017-04-28 Jonathan Wakely <jwakely (a] redhat.com>
1803
1804 PR libstdc++/80553
1805 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
1806 assertions to ensure type is destructible.
1807 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
1808 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
1809 Move to stl_construct.h.
1810 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1811 destroy_neg.cc: New test.
1812 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
1813
1814 Backport from mainline
1815 2017-05-16 Jonathan Wakely <jwakely (a] redhat.com>
1816
1817 * configure: Regenerate.
1818 * doc/xml/manual/status_cxx2017.xml: Update status table.
1819 * doc/html/*: Regenerate.
1820 * include/Makefile.am: Add new header.
1821 * include/Makefile.in: Regenerate.
1822 * include/experimental/source_location: New header implementing N4519.
1823 * testsuite/experimental/source_location/1.cc: New test.
1824
1825 Backport from mainline
1826 2017-07-06 Jonathan Wakely <jwakely (a] redhat.com>
1827
1828 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add
1829 deleted overload to prevent dangling references to rvalues.
1830 * include/experimental/memory_resource
1831 (polymorphic_allocator::construct): Do not call __use_alloc with
1832 rvalue arguments.
1833
1834 Backport from mainline
1835 2017-06-08 Jonathan Wakely <jwakely (a] redhat.com>
1836
1837 PR libstdc++/81017
1838 * include/bits/std_function.h (function::function(function&&))
1839 (function::operator=(funtion&&)): Add noexcept.
1840 * testsuite/20_util/function/assign/move.cc: Check for noexcept.
1841 * testsuite/20_util/function/cons/move.cc: Likewise.
1842
1843 Backport from mainline
1844 2017-07-15 Jonathan Wakely <jwakely (a] redhat.com>
1845
1846 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter
1847 as per P0739R0.
1848 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments.
1849 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction
1850 with std::adopt_lock_t.
1851 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check
1852 feature-test macro.
1853
1854 Backport from mainline
1855 2017-07-14 Jason Merrill <jason (a] redhat.com>
1856 Jonathan Wakely <jwakely (a] redhat.com>
1857
1858 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove
1859 the constructor for empty variants from the candidate functions
1860 during class template argument deduction.
1861 * testsuite/20_util/variant/deduction.cc: New.
1862
1863 Backport from mainline
1864 2017-06-02 Jonathan Wakely <jwakely (a] redhat.com>
1865
1866 PR libstdc++/80939
1867 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
1868 (__erased_hash): Remove constexpr specifier and qualify calls to
1869 __ref_cast.
1870 (__erased_dtor): Remove constexpr specifier and use _Destroy.
1871
1872 Backport from mainline
1873 2017-05-20 Tim Shen <timshen (a] google.com>
1874
1875 PR libstdc++/80737
1876 * include/std/variant(variant::variant): SFINAE on is_same first.
1877 * testsuite/20_util/variant/any.cc: test case.
1878
1879 2017-07-11 Jonathan Wakely <jwakely (a] redhat.com>
1880
1881 Backport from mainline
1882 2017-04-21 Jonathan Wakely <jwakely (a] redhat.com>
1883
1884 PR libstdc++/80316
1885 * include/std/future (_State_baseV2::_Setter::operator()): Remove
1886 _S_check calls that are done after the pointer to the shared state is
1887 already dereferenced.
1888 (_State_baseV2::_Setter<_Res, void>): Define specialization for void
1889 as partial specialization so it can be defined within the definition
1890 of _State_baseV2.
1891 (_State_baseV2::__setter): Call _S_check.
1892 (_State_baseV2::__setter(promise<void>*)): Add overload for use by
1893 promise<void>::set_value and promise<void>::set_value_at_thread_exit.
1894 (promise<T>, promise<T&>, promise<void>): Make _State a friend.
1895 (_State_baseV2::_Setter<void, void>): Remove explicit specialization.
1896 (promise<void>::set_value, promise<void>::set_value_at_thread_exit):
1897 Use new __setter overload.
1898 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
1899 * testsuite/30_threads/promise/members/set_exception.cc: Test
1900 promise<T&> and promise<void> specializations.
1901 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1902 Test for no_state error condition.
1903 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1904
1905 2017-06-27 Jonathan Wakely <jwakely (a] redhat.com>
1906
1907 PR libstdc++/81221
1908 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
1909 std.
1910 * testsuite/25_algorithms/sample/81221.cc: New.
1911
1912 2017-06-21 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1913
1914 Backport from mainline
1915 2017-06-21 Ville Voutilainen <ville.voutilainen (a] gmail.com>
1916
1917 PR libstdc++/80675
1918 PR libstdc++/80940
1919 * include/std/istream:
1920 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
1921 (__do_is_convertible_to_basic_istream_impl): Likewise.
1922 (__is_convertible_to_basic_istream_impl): Likewise.
1923 (__is_convertible_to_basic_istream): Use the new base.
1924 (__rvalue_istream_type): New.
1925 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias
1926 for the SFINAE check, convert to the helper alias type before
1927 doing the actual extraction.
1928 * include/std/ostream:
1929 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
1930 (__do_is_convertible_to_basic_ostream_impl): Likewise.
1931 (__is_convertible_to_basic_ostream_impl): Likewise.
1932 (__is_convertible_to_basic_ostream): Use the new base.
1933 (__rvalue_ostream_type): New.
1934 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
1935 for the SFINAE check, convert to the helper alias type before
1936 doing the actual insertion.
1937 * testsuite/27_io/rvalue_streams-2.cc: Add new tests.
1938
1939 2017-06-21 Uros Bizjak <ubizjak (a] gmail.com>
1940
1941 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1942
1943 2017-06-21 Jonathan Wakely <jwakely (a] redhat.com>
1944
1945 PR libstdc++/81092
1946 * configure: Regenerate.
1947
1948 2017-06-19 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
1949
1950 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
1951 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
1952 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
1953 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
1954 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
1955 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
1956 Likewise.
1957 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
1958 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
1959 Likewise.
1960
1961 2017-06-18 H.J. Lu <hongjiu.lu (a] intel.com>
1962
1963 PR libstdc++/81092
1964 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
1965
1966 2017-06-16 Jakub Jelinek <jakub (a] redhat.com>
1967
1968 PR libstdc++/81092
1969 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1970
1971 2017-06-16 Jonathan Wakely <jwakely (a] redhat.com>
1972
1973 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
1974 * testsuite/22_locale/conversions/buffer/2.cc: New.
1975
1976 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad
1977 names, and link to the test docs and note higher DejaGnu version
1978 requirement.
1979 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
1980 * doc/xml/manual/mt_allocator.xml: Likewise.
1981 * doc/xml/manual/test.xml: Correct instructions on running tests.
1982 * doc/html/*: Regenerate.
1983
1984 PR libstdc++/81092
1985 * acinclude.m4: Bump libtool_VERSION.
1986 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1987 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1988 * config/abi/pre/gnu.ver: Add wstring constructor symbols to new
1989 GLIBCXX_3.4.24 version.
1990 * doc/xml/manual/abi.xml: Document new versions.
1991 * doc/html/*: Regenerate.
1992 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
1993 constructors to ensure required symbols are exported.
1994 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
1995 * testsuite/util/testsuite_abi.cc: Add new version.
1996
1997 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
1998 return statement.
1999 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2000 Return void.
2001 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2002 Likewise.
2003 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
2004 missing return statements.
2005 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2006 Likewise.
2007 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
2008 Return void.
2009 * testsuite/special_functions/14_expint/pr68397.cc: Likewise.
2010
2011 2017-06-07 Jonathan Wakely <jwakely (a] redhat.com>
2012
2013 PR libstdc++/81002
2014 * include/bits/regex_compiler.h (__compile_nfa): Add template argument
2015 list to specify traits type.
2016 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
2017
2018 2017-05-19 Jonathan Wakely <jwakely (a] redhat.com>
2019
2020 PR libstdc++/80796
2021 * include/bits/stl_algo.h (search): Add new overload for C++17.
2022 * testsuite/25_algorithms/search/searcher.cc: New.
2023
2024 2017-05-18 Jonathan Wakely <jwakely (a] redhat.com>
2025
2026 PR libstdc++/80478
2027 * include/std/functional (_Mem_fn_traits_base): Add specializations
2028 for noexcept member function types.
2029 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test.
2030
2031 2017-05-18 Jonathan Wakely <jwakely (a] redhat.com>
2032
2033 * doc/xml/manual/policy_data_structures.xml: Fix typo.
2034 * doc/xml/manual/test_policy_data_structures.xml: Likewise.
2035 * doc/html/*: Regenerate.
2036
2037 * doc/xml/manual/abi.xml: Document latest library versions.
2038 * doc/xml/manual/build_hacking.xml: Document requirement to update
2039 abi.xml when bumping library versions.
2040 * doc/html/*: Regenerate.
2041
2042 2017-05-15 Jonathan Wakely <jwakely (a] redhat.com>
2043
2044 PR libstdc++/80761
2045 * include/bits/node_handle.h (_Node_insert_return): Reorder members.
2046 (tuple_size, tuple_element): Remove partial specializations.
2047 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
2048 const_iterator for std::set.
2049 * testsuite/23_containers/map/modifiers/extract.cc: New.
2050 * testsuite/23_containers/set/modifiers/extract.cc: New.
2051 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
2052 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
2053
2054 2017-05-12 Jonathan Wakely <jwakely (a] redhat.com>
2055
2056 PR libstdc++/78939
2057 * include/std/utility (tuple_size<cv T>) [__cplusplus > 201402L]:
2058 Only define partial specializations when tuple_size<T>::value is
2059 valid.
2060 * testsuite/20_util/tuple/78939.cc: New.
2061
2062 2017-05-02 Release Manager
2063
2064 * GCC 7.1.0 released.
2065
2066 2017-04-19 Jonathan Wakely <jwakely (a] redhat.com>
2067
2068 * doc/xml/manual/abi.xml: Rephrase one of the references to the
2069 Itanium C++ ABI.
2070 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
2071 * doc/html/*: Regenerate.
2072
2073 * libsupc++/new: Update comment on #endif directive.
2074
2075 PR libstdc++/80448
2076 * include/experimental/bits/fs_dir.h (directory_iterator)
2077 (recursive_directory_iterator): Remove noexcept from defaulted
2078 constructors.
2079
2080 PR libstdc++/80446
2081 * include/std/type_traits (is_aggregate): Change __has_builtin checks.
2082 * libsupc++/new (launder): Likewise.
2083
2084 2017-04-18 Jonathan Wakely <jwakely (a] redhat.com>
2085
2086 * include/std/functional (default_searcher, __boyer_moore_array_base)
2087 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher)
2088 (boyer_moore_horspool_searcher): Remove redundant namespace
2089 qualification.
2090 (default_searcher::operator()): Construct return value early and
2091 advance second member in-place.
2092 (boyer_moore_horspool_searcher::operator()): Increment random access
2093 iterator directly instead of using std::next.
2094 (boyer_moore_searcher::operator()): Fix return value.
2095 * testsuite/20_util/function_objects/searchers.cc: Check both parts
2096 of return values.
2097
2098 2017-04-12 Gerald Pfeifer <gerald (a] pfeifer.com>
2099
2100 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium.
2101 * doc/xml/manual/abi.xml. Ditto (thrice).
2102
2103 2017-04-03 Jonathan Wakely <jwakely (a] redhat.com>
2104
2105 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry.
2106 * doc/html/*: Regenerate.
2107
2108 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
2109 that no longer fail.
2110
2111 * include/bits/ios_base.h: Correct comment.
2112 * testsuite/util/testsuite_hooks.h: Likewise.
2113
2114 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2115 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add
2116 directories for debug, parallel and profile headers.
2117 * doc/html/*: Regenerate.
2118
2119 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add
2120 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length.
2121 (std::char_traits<char>, std::char_traits<wchar_t>): Add
2122 _GLIBCXX17_CONSTEXPR on assign.
2123 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add
2124 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length.
2125 * testsuite/21_strings/char_traits/requirements/
2126 constexpr_functions_c++17.cc: New test.
2127
2128 2017-04-03 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2129
2130 PR libstdc++/79141
2131 * include/bits/stl_pair.h (__nonesuch_no_braces): New.
2132 (operator=(typename conditional<
2133 __and_<is_copy_assignable<_T1>,
2134 is_copy_assignable<_T2>>::value,
2135 const pair&, const __nonesuch&>::type)): Change __nonesuch
2136 to __nonesuch_no_braces.
2137 (operator=(typename conditional<
2138 __not_<__and_<is_copy_assignable<_T1>,
2139 is_copy_assignable<_T2>>>::value,
2140 const pair&, const __nonesuch&>::type)): Likewise.
2141 (operator=(typename conditional<
2142 __and_<is_move_assignable<_T1>,
2143 is_move_assignable<_T2>>::value,
2144 pair&&, __nonesuch&&>::type)): Likewise.
2145 * testsuite/20_util/pair/79141.cc: New.
2146
2147 2017-04-03 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2148
2149 Implement std::is_aggregate.
2150 * include/std/type_traits (is_aggregate, is_aggregate_v): New.
2151 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2152 New.
2153 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise.
2154 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2155
2156 2017-03-29 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2157
2158 Adjust optional's pretty printer for LWG 2900.
2159 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
2160 Look at the nested payload in case of non-experimental optional.
2161
2162 2017-03-29 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2163
2164 Implement LWG 2900, The copy and move constructors
2165 of optional are not constexpr.
2166 * include/std/optional (_Optional_payload): New.
2167 (_Optional_base): Remove the bool parameter.
2168 (_Optional_base<_Tp, false>): Remove.
2169 (_Optional_base()): Adjust.
2170 (_Optional_base(nullopt_t)): Likewise.
2171 (_Optional_base(in_place_t, _Args&&...)): Likewise.
2172 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
2173 Likewise.
2174 (_Optional_base(const _Optional_base&)): Likewise.
2175 (_Optional_base(_Optional_base&&)): Likewise.
2176 (operator=(const _Optional_base&)): Likewise.
2177 (operator=(_Optional_base&&)): Likewise.
2178 (~_Optional_base()): Remove.
2179 (_M_is_engaged()): Adjust.
2180 (_M_get()): Likewise.
2181 (_M_construct(_Args&&...)): Likewise.
2182 (_M_destruct()): Likewise.
2183 (_M_reset()): Likewise.
2184 (_Optional_base::_Empty_byte): Remove.
2185 (_Optional_base::_M_empty): Remove.
2186 (_Optional_base::_M_payload): Adjust.
2187 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2188 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.
2189
2190 2017-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2191
2192 PR libstdc++/80137
2193 * include/bits/random.tcc (generate_canonical): Use std::nextafter
2194 or numeric_limits::epsilon() to reduce out-of-range values.
2195 * testsuite/26_numerics/random/uniform_real_distribution/operators/
2196 64351.cc: Verify complexity requirement is met.
2197
2198 * doc/xml/manual/abi.xml: Add xml:id anchor.
2199 * doc/xml/manual/using.xml (manual.intro.using.macros): Document
2200 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
2201 (concurrency.io.structure): Add markup.
2202 * doc/html/*: Regenerate.
2203
2204 PR libstdc++/80229
2205 * include/bits/shared_ptr_base.h
2206 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
2207 non-const and then use remove_cv to get unqualified type.
2208 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
2209 cast away constness on object created const.
2210 * testsuite/20_util/shared_ptr/cons/80229.cc: New test.
2211
2212 2017-03-26 Markus Trippelsdorf <markus (a] trippelsdorf.de>
2213
2214 PR libstdc++/80183
2215 * include/bits/stl_tree.h:
2216 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.
2217
2218 2017-03-23 Jonathan Wakely <jwakely (a] redhat.com>
2219
2220 * testsuite/23_containers/array/tuple_interface/
2221 tuple_element_debug_neg.cc: Adjust dg-error.
2222 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to
2223 define a valid strict weak ordering.
2224 * testsuite/23_containers/priority_queue/67085.cc: Disable test for
2225 Debug Mode, due to debug checks making extra copies of predicate.
2226 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2227 Likewise.
2228
2229 * doc/xml/faq.xml: Add link.
2230 * doc/xml/manual/backwards_compatibility.xml: Remove outdated
2231 information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
2232 * doc/xml/manual/io.xml: Update broken link.
2233 * doc/html/*: Regenerate.
2234
2235 2017-03-23 Daniel Kruegler <daniel.kruegler (a] gmail.com>
2236
2237 Implement LWG 2686, Why is std::hash specialized for error_code,
2238 but not error_condition?
2239 * include/std/system_error (hash<error_condition>): Define for C++17.
2240 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
2241 Instantiate test for error_condition.
2242 * testsuite/20_util/hash/requirements/explicit_instantiation.cc
2243 (hash<error_condition>): Instantiate hash<error_condition>.
2244
2245 * include/bits/c++config (_GLIBCXX17_INLINE): Define.
2246 * include/bits/regex_constants.h (All std::regex_constants constants):
2247 Add _GLIBCXX17_INLINE as per P0607R0.
2248 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
2249 Likewise.
2250 * include/bits/stl_pair.h (piecewise_construct): Likewise.
2251 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
2252 (__is_uses_allocator_constructible_v)
2253 (__is_nothrow_uses_allocator_constructible_v): Likewise.
2254 * include/std/chrono (treat_as_floating_point_v): Likewise.
2255 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2256 Likewise.
2257 * include/std/optional (nullopt): Likewise.
2258 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
2259 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
2260 * include/std/system_error (is_error_code_enum_v)
2261 (is_error_condition_enum_v): Likewise.
2262 * include/std/tuple (tuple_size_v, ignore): Likewise.
2263 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment
2264 constexpr as per LWG 2933.
2265 * include/std/type_traits (All variable templates): Add
2266 _GLIBCXX17_INLINE as per P0607R0.
2267 * include/std/variant (variant_size_v, variant_npos, __index_of_v)
2268 (__tuple_count_v, __exactly_once): Likewise.
2269 * testsuite/18_support/headers/new/synopsis.cc
2270 (hardware_destructive_interference_size)
2271 (hardware_constructive_interference_size): Likewise for commented-out
2272 variables.
2273 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
2274 test function for constexpr std::ignore (LWG 2773).
2275 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
2276 test for LWG 2933.
2277
2278 2017-03-22 Jonathan Wakely <jwakely (a] redhat.com>
2279
2280 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
2281 guides for C++17.
2282 * include/bits/std_function.h (function): Likewise.
2283 * include/bits/stl_pair.h (pair): Likewise.
2284 * include/debug/array (__gnu_debug::array): Likewise.
2285 * include/std/array (array): Likewise.
2286 * include/std/functional (make_default_searcher)
2287 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
2288 Remove generator functions.
2289 * include/std/tuple (tuple): Add deduction guides.
2290 * include/std/valarray (valarray): Likewise.
2291 * testsuite/20_util/function_objects/searchers.cc: Adjust to use
2292 class template argument deduction instead of generator functions.
2293 * testsuite/20_util/function/cons/deduction.cc: New test.
2294 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
2295 * testsuite/20_util/optional/cons/deduction.cc: ... here.
2296 * testsuite/20_util/pair/cons/deduction.cc: New test.
2297 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
2298 * testsuite/20_util/tuple/cons/deduction.cc: New test.
2299 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
2300 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
2301 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
2302 * testsuite/23_containers/array/cons/deduction.cc: New test.
2303 * testsuite/23_containers/array/cons/deduction_neg.cc: New test.
2304 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
2305 Adjust dg-error.
2306 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
2307 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2308 Likewise.
2309 * testsuite/26_numerics/valarray/deduction.cc: New test.
2310 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
2311 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
2312 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
2313
2314 2017-03-20 Franois Dumont <fdumont (a] gcc.gnu.org>
2315
2316 * include/bits/stl_deque.h (deque): Access allocator value_type only if
2317 concept checks are enabled.
2318 * include/bits/stl_stack.h (stack): Likewise.
2319 * include/bits/stl_vector.h (vector): Likewise.
2320 * include/bits/stl_list.h (list): Likewise and check
2321 _SGIAssignableConcept only in C++03.
2322 * include/bits/stl_map.h (map): Likewise.
2323 * include/bits/stl_set.h (set): Likewise.
2324 * include/bits/stl_multimap.h (multimap): Likewise.
2325 * include/bits/stl_multiset.h (multiset): Likewise.
2326 * include/bits/stl_queue.h (queue, priority_queue): Likewise.
2327
2328 2017-03-18 Gerald Pfeifer <gerald (a] pfeifer.com>
2329
2330 * doc/xml/manual/appendix_contributing.xml: Convert link to
2331 ansi.org to https.
2332 Update link to the C++ standard at ansi.org.
2333
2334 * doc/xml/faq.xml: Remove information redundant with the above;
2335 instead add a reference.
2336
2337 2017-03-17 Jonathan Wakely <jwakely (a] redhat.com>
2338
2339 * src/c++11/codecvt.cc (range): Add non-type template parameter and
2340 define oerloaded operators for reading and writing code units.
2341 (range<Elem, false>): Define partial specialization for accessing
2342 wide characters in potentially unaligned byte ranges.
2343 (ucs2_span(const char16_t*, const char16_t*, ...))
2344 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
2345 to range<const char16_t, false> in order to avoid unaligned reads.
2346 (__codecvt_utf16_base<char16_t>::do_out)
2347 (__codecvt_utf16_base<char32_t>::do_out)
2348 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
2349 unaligned data to avoid unaligned writes.
2350 (__codecvt_utf16_base<char16_t>::do_in)
2351 (__codecvt_utf16_base<char32_t>::do_in)
2352 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
2353 error if there are unprocessable trailing bytes.
2354 (__codecvt_utf16_base<char16_t>::do_length)
2355 (__codecvt_utf16_base<char32_t>::do_length)
2356 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
2357 range<const char16_t, false> to span functions.
2358 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.
2359
2360 2017-03-16 Jonathan Wakely <jwakely (a] redhat.com>
2361
2362 PR libstdc++/79980
2363 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.
2364
2365 PR libstdc++/80041
2366 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
2367 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
2368 char16_t to work with UTF-16 instead of UTF-8.
2369 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
2370
2371 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
2372 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
2373 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
2374 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
2375 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
2376 (__codecvt_utf8_utf16_base<char32_t>)
2377 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
2378 do_max_length() return values.
2379 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
2380 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
2381 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
2382
2383 PR libstdc++/79980
2384 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
2385 error path.
2386 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
2387 for manipulating codecvt_mode values.
2388 (read_utf16_bom): Compare input to BOM constants instead of integral
2389 constants that depend on endianness. Take mode parameter by
2390 reference and adjust it, to distinguish between no BOM present and
2391 UTF-16BE BOM present.
2392 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
2393 (surrogates): New enumeration type.
2394 (utf16_in, utf16_out): Add surrogates parameter to choose between
2395 UTF-16 and UCS2 behaviour.
2396 (utf16_span, ucs2_span): Use std::min not std::max.
2397 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs.
2398 (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
2399 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
2400 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
2401
2402 PR libstdc++/79511
2403 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
2404 as a surrogate pair.
2405 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
2406 for internal representation.
2407 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
2408 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
2409
2410 PR libstdc++/80064
2411 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
2412 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
2413 invalid instantiations using function types for _Compare argument.
2414 * testsuite/25_algorithms/make_heap/80064.cc: New test.
2415
2416 PR libstdc++/67440
2417 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
2418 for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
2419
2420 2017-03-15 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2421
2422 Implement LWG 2857, {variant,optional,any}::emplace should
2423 return the constructed value.
2424 * include/std/any (emplace(_Args&&...)): Change the return type and
2425 return a reference to the constructed value.
2426 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2427 * include/std/optional (emplace(_Args&&...)): Likewise.
2428 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2429 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
2430 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
2431 (emplace<_Np>(_Args&&...)): Likewise.
2432 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
2433 * testsuite/20_util/any/assign/emplace.cc: Add tests for
2434 checking the return value of emplace.
2435 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2436 * testsuite/20_util/optional/assignment/6.cc: Add tests for
2437 checking the return value of emplace.
2438 * testsuite/20_util/variant/run.cc: Likewise.
2439
2440 2017-03-15 Xi Ruoyao <ryxi (a] stu.xidian.edu.cn>
2441
2442 PR libstdc++/62045
2443 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
2444 (is_heap): Remove.
2445 (push_heap): Remove the wrong checking using is_heap.
2446 (make_heap): Remove the assertion using is_heap.
2447 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
2448 (modify): Ditto.
2449 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
2450 calling make_heap.
2451
2452 2017-03-15 Jonathan Wakely <jwakely (a] redhat.com>
2453
2454 PR libstdc++/62045
2455 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
2456 New test.
2457 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
2458 error in comment.
2459
2460 2017-03-15 Jonathan Wakely <jwakely (a] redhat.com>
2461
2462 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
2463 comment.
2464 * config.h.in: Regenerate.
2465 * configure: Regenerate.
2466 * doc/Makefile.in: Regenerate.
2467
2468 2017-03-14 Jonathan Wakely <jwakely (a] redhat.com>
2469
2470 PR libstdc++/79162
2471 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2472 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
2473 with a constrained template.
2474 [!_GLIBCXX_USE_CXX11_ABI]
2475 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
2476 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
2477 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
2478
2479 2017-03-13 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2480
2481 PR libstdc++/80034
2482 * include/bits/list.tcc (merge(list&&)): Use const for the size_t
2483 in the catch-block.
2484 (merge(list&&, _StrictWeakOrdering)): Likewise.
2485 * testsuite/23_containers/list/operations/80034.cc: New.
2486
2487 2017-03-13 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2488
2489 Implement LWG 2806, Base class of bad_optional_access.
2490 * include/std/optional (bad_optional_access):
2491 Derive from std::exception.
2492 (bad_optional_access::bad_optional_access): Adjust.
2493 (bad_optional_access::what): New.
2494 (__throw_bad_optional_access(const char*)):
2495 Remove the parameter and adjust calls.
2496 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
2497 * testsuite/20_util/optional/typedefs.cc: Likewise.
2498
2499 2017-03-12 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2500
2501 Implement LWG 2934, optional<const T> doesn't compare with T.
2502 * include/std/optional
2503 (operator==(const optional<_Tp>&, const optional<_Tp>&)):
2504 Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
2505 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2506 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
2507 (operator<(const optional<_Tp>&, const optional<_Tp>&)):
2508 Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
2509 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2510 Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
2511 (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
2512 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
2513 (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
2514 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
2515 (operator==(const optional<_Tp>&, const _Tp&)):
2516 Turn into operator==(const optional<_Tp>&, const _Up&).
2517 (operator==(const _Tp&, const optional<_Tp>&)):
2518 Turn into operator==(const _Up&, const optional<_Tp>&).
2519 (operator!=(const optional<_Tp>&, const _Tp&)):
2520 Turn into operator!=(const optional<_Tp>&, const _Up&).
2521 (operator!=(const _Tp&, const optional<_Tp>&)):
2522 Turn into operator!=(const _Up&, const optional<_Tp>&).
2523 (operator<(const optional<_Tp>&, const _Tp&)):
2524 Turn into operator<(const optional<_Tp>&, const _Up&).
2525 (operator<(const _Tp&, const optional<_Tp>&)):
2526 Turn into operator<(const _Up&, const optional<_Tp>&).
2527 (operator>(const optional<_Tp>&, const _Tp&)):
2528 Turn into operator>(const optional<_Tp>&, const _Up&).
2529 (operator>(const _Tp&, const optional<_Tp>&)):
2530 Turn into operator>(const _Up&, const optional<_Tp>&).
2531 (operator<=(const optional<_Tp>&, const _Tp&)):
2532 Turn into operator<=(const optional<_Tp>&, const _Up&).
2533 (operator<=(const _Tp&, const optional<_Tp>&)):
2534 Turn into operator<=(const _Up&, const optional<_Tp>&).
2535 (operator>=(const optional<_Tp>&, const _Tp&)):
2536 Turn into operator>=(const optional<_Tp>&, const _Up&).
2537 (operator>=(const _Tp&, const optional<_Tp>&)):
2538 Turn into operator>=(const _Up&, const optional<_Tp>&).
2539 * testsuite/20_util/optional/relops/7.cc: New.
2540
2541 2017-03-10 Jonathan Wakely <jwakely (a] redhat.com>
2542
2543 * testsuite/17_intro/names.cc: Undefine macros that clash with
2544 identifiers in AIX system headers.
2545
2546 * include/bits/invoke.h (__invoke): Use __invoke_result instead of
2547 result_of, and __is_nothrow_invocable instead of
2548 __is_nothrow_callable.
2549 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
2550 instead of __is_callable.
2551 * include/std/functional (invoke): use invoke_result_t instead of
2552 result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
2553 (_Not_fn): Use __invoke_result instead of result_of.
2554 * include/std/type_traits (__result_of_memobj, __result_of_memfun):
2555 Remove partial specializations for reference_wrapper types.
2556 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
2557 (__invoke_result): Define replacement for result_of and then use it to
2558 define result_of.
2559 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
2560 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
2561 respectively.
2562 (invoke_result, invoke_result_t): Define for C++17.
2563 (is_callable, is_nothrow_callable): Replace with is_invocable,
2564 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
2565 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
2566 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
2567 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
2568 instead of is_nothrow_callable_v.
2569 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2570 main function.
2571 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
2572 instead of is_callable.
2573 * testsuite/20_util/is_callable/*: Rename directory and adjust tests
2574 to use new traits.
2575 * testsuite/20_util/is_nothrow_callable/*: Likewise.
2576 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
2577 is_callable.
2578 * testsuite/20_util/variant/hash.cc: Likewise.
2579
2580 2017-03-10 George Lander <george.lander (a] arm.com>
2581
2582 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
2583 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
2584 * configure: Regenerate.
2585
2586 2017-03-09 Jonathan Wakely <jwakely (a] redhat.com>
2587
2588 * include/std/functional (_Not_fn): Define macro to simplify
2589 repetitive function definitions.
2590
2591 * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
2592 * include/c_global/cstddef (std::byte): Define for C++17.
2593 * testsuite/18_support/byte/global_neg.cc: New test.
2594 * testsuite/18_support/byte/ops.cc: New test.
2595 * testsuite/18_support/byte/requirements.cc: New test.
2596
2597 2017-03-05 Jonathan Wakely <jwakely (a] redhat.com>
2598
2599 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
2600 * doc/html/*: Regenerate.
2601 * include/std/mutex (scoped_lock): Implement new C++17 template.
2602 * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
2603 * testsuite/30_threads/scoped_lock/requirements/
2604 explicit_instantiation.cc: New test.
2605 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
2606
2607 2017-03-02 Gerald Pfeifer <gerald (a] pfeifer.com>
2608 Franois Dumont <frs.dumont (a] gmail.com>
2609 Jonathan Wakely <jwakely (a] redhat.com>
2610
2611 * doc/xml/manual/debug_mode.xml: Update and simplify note
2612 on link- and run-time coexistence.
2613
2614 2017-03-02 Jonathan Wakely <jwakely (a] redhat.com>
2615
2616 * testsuite/17_intro/headers/names.cc: Rename to ...
2617 * testsuite/17_intro/names.cc: ... here.
2618
2619 PR libstdc++/79789
2620 * include/bits/hashtable_policy.h (__clp2): Use reserved names for
2621 parameters and local variables.
2622 * include/bits/ios_base.h (make_error_code, make_error_condition):
2623 Likewise.
2624 * include/bits/list.tcc (list::sort): Likewise.
2625 * include/bits/mask_array.h (mask_array): Likewise.
2626 * include/bits/regex.h (regex_token_iterator): Likewise.
2627 * include/bits/slice_array.h (slice_array): Likewise.
2628 * include/bits/stl_algo.h (__sample): Likewise.
2629 * include/std/memory (undeclare_no_pointers): Likewise.
2630 * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
2631 Likewise.
2632 * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
2633 * testsuite/17_intro/headers/names.cc: New test.
2634
2635 PR libstdc++/79798
2636 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
2637 result_of that loses top-level cv-qualifiers.
2638 * testsuite/20_util/bind/79798.cc: New test.
2639
2640 2017-03-01 Gerald Pfeifer <gerald (a] pfeifer.com>
2641
2642 * doc/xml/manual/documentation_hacking.xml: Tweak link to
2643 doxygen.org.
2644
2645 2017-02-23 Jonathan Wakely <jwakely (a] redhat.com>
2646
2647 * include/experimental/iterator: Include <iterator>.
2648 * testsuite/experimental/iterator/requirements.cc: Check for contents
2649 of <iterator>.
2650
2651 2017-02-19 Dinka Ranns <dinka.ranns (a] googlemail.com>
2652
2653 C++17 GB50 resolution
2654 * include/std/chrono (duration::operator++()): Add
2655 _GLIBCXX17_CONSTEXPR.
2656 (duration::operator++(int)): Likewise.
2657 (duration::operator--()): Likewise.
2658 (duration::operator--(int)): Likewise.
2659 (duration::operator+=(const duration&)): Likewise.
2660 (duration::operator-=(const duration&)): Likewise.
2661 (duration::operator*=(const rep&)): Likewise.
2662 (duration::operator/=(const rep&)): Likewise.
2663 (duration::operator%=(const rep&)): Likewise.
2664 (duration::operator%=(const duration&)): Likewise.
2665 (time_point::operator+=(const duration&)): Likewise.
2666 (time_point::operator-=(const duration&)): Likewise.
2667 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
2668 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
2669 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
2670
2671 2017-02-19 Gerald Pfeifer <gerald (a] pfeifer.com>
2672
2673 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
2674
2675 2017-02-18 Gerald Pfeifer <gerald (a] pfeifer.com>
2676
2677 * doc/xml/manual/io.xml: Update link to groups.google.com.
2678 Tweak link description.
2679
2680 2017-02-18 Gerald Pfeifer <gerald (a] pfeifer.com>
2681
2682 * doc/xml/manual/profile_mode.xml: Fix link.
2683
2684 2017-02-16 Gerald Pfeifer <gerald (a] pfeifer.com>
2685
2686 * doc/xml/manual/policy_data_structures.xml: Simplify and
2687 standardize references to boost.org.
2688 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
2689 * doc/xml/manual/shared_ptr.xml: Ditto.
2690
2691 2017-02-16 Jonathan Wakely <jwakely (a] redhat.com>
2692
2693 PR libstdc++/60936
2694 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
2695 written to buffer, not length remaining in buffer.
2696
2697 2017-02-15 Tim Shen <timshen (a] google.com>
2698
2699 PR libstdc++/78723
2700 * include/std/variant (operator<(), operator>(), operator<=(),
2701 operator>=(), operator==(), operator!=()): Implement P0393R3.
2702 * testsuite/20_util/variant/compile.cc: Adjust tests.
2703 * testsuite/20_util/variant/run.cc: Adjust tests.
2704
2705 2017-02-15 Tim Shen <timshen (a] google.com>
2706
2707 PR libstdc++/79513
2708 * include/std/variant (visit()): Forward variant types to the return
2709 type detection code.
2710 * testsuite/20_util/variant/compile.cc: Add test cases.
2711
2712 2017-02-13 H.J. Lu <hongjiu.lu (a] intel.com>
2713
2714 PR libstdc++/79348
2715 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2716
2717 2017-02-13 Jakub Jelinek <jakub (a] redhat.com>
2718
2719 PR libstdc++/79348
2720 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2721 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2722 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
2723 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2724 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
2725 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
2726 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
2727 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
2728 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2729
2730 2017-02-13 Jonathan Wakely <jwakely (a] redhat.com>
2731
2732 PR libstdc++/79486
2733 * include/std/future (__future_base::_Task_state::_M_run)
2734 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
2735 result_of expressions.
2736 * testsuite/30_threads/packaged_task/79486.cc: New.
2737
2738 2017-02-11 Jonathan Wakely <jwakely (a] redhat.com>
2739
2740 PR libstdc++/79467
2741 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
2742 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
2743 __is_callable check.
2744 * testsuite/20_util/shared_ptr/cons/79467.cc: New.
2745
2746 * include/bits/atomic_base.h: Re-indent.
2747
2748 2017-02-10 Gerald Pfeifer <gerald (a] pfeifer.com>
2749
2750 * doc/xml/manual/profile_mode.xml: Update a paper reference.
2751
2752 2017-02-08 Gerald Pfeifer <gerald (a] pfeifer.com>
2753
2754 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
2755
2756 2017-02-08 Jonathan Wakely <jwakely (a] redhat.com>
2757
2758 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
2759 name.
2760 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
2761 broken links to texts that are no longer online.
2762 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
2763 LCPC 2006 paper.
2764 * doc/xml/manual/using.xml: Update links to memory model information.
2765 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
2766 Standard-Library Exception Safety".
2767 * doc/html/*: Regenerate.
2768
2769 2017-02-08 Gerald Pfeifer <gerald (a] pfeifer.com>
2770
2771 * doc/xml/manual/profile_mode.xml: Unbreak link to
2772 "Optimizing Sorting with Machine Learning Algorithms".
2773
2774 2017-02-08 Gerald Pfeifer <gerald (a] pfeifer.com>
2775
2776 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
2777
2778 2017-02-08 Gerald Pfeifer <gerald (a] pfeifer.com>
2779
2780 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
2781 Migration Guide".
2782
2783 2017-02-07 Gerald Pfeifer <gerald (a] pfeifer.com>
2784
2785 * doc/html/ext/lwg-active.html: Remove.
2786 * doc/html/ext/lwg-closed.html: Ditto.
2787 * doc/html/ext/lwg-defects.html: Ditto.
2788
2789 * doc/Makefile.am (xml_extradir): Remove.
2790 (xml_extra): Ditto.
2791 (stamp-html-docbook-lwg): Remove recipe...
2792 (stamp-html-docbook-data): ...and its use here.
2793 * doc/Makefile.in: Regenerate.
2794
2795 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
2796 the relationship to the upstream working group.
2797 Replace a local link to ../ext/lwg-active.html by the upstream one.
2798 Replace all reference to ../ext/lwg-defects.html by a new entity
2799 &DR; which refers to the upstream address.
2800
2801 2017-02-07 Gerald Pfeifer <gerald (a] pfeifer.com>
2802
2803 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
2804
2805 2017-02-06 Jonathan Wakely <jwakely (a] redhat.com>
2806
2807 PR libstdc++/79323
2808 * testsuite/20_util/duration/literals/range.cc: Prune extra output
2809 at -O0.
2810
2811 2017-02-06 Gerald Pfeifer <gerald (a] pfeifer.com>
2812
2813 * doc/xml/manual/documentation_hacking.xml: Update URL of the
2814 DocBook Element Reference. Use that term as link description
2815 instead of "online".
2816 epubcheck has moved to GitHub.
2817 Remove obsolete link to DocBook Publishing Tools.
2818
2819 2017-02-03 Jonathan Wakely <jwakely (a] redhat.com>
2820
2821 PR libstdc++/66145
2822 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
2823 so new ios::failure can be caught even when old ABI is the default.
2824 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
2825 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
2826 exceptions_failbit.cc: Likewise.
2827 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
2828 exceptions_failbit.cc: Likewise.
2829 * testsuite/27_io/basic_istream/extractors_other/char/
2830 exceptions_null.cc: Likewise.
2831 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
2832 exceptions_null.cc: Likewise.
2833 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
2834 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
2835 * testsuite/27_io/basic_ostream/inserters_other/char/
2836 exceptions_null.cc: Likewise.
2837 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
2838 exceptions_null.cc: Likewise.
2839 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
2840
2841 PR libstdc++/60936
2842 * src/c++11/Makefile.am: Add new files.
2843 * src/c++11/Makefile.in: Regenerate.
2844 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2845 (operator<<, operator>>, getline): Move explicit instantiations to ...
2846 * src/c++11/cow-string-io-inst.cc: ... new file.
2847 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
2848 (operator<<, operator>>, getline): Move explicit instantiations to ...
2849 * src/c++11/cow-wstring-io-inst.cc: ... new file.
2850 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
2851 (__throw_future_error, __throw_bad_function_call):
2852 (__throw_regex_error): Move functions for C++11 exceptions to the
2853 files that define the exception types.
2854 * src/c++11/functional.cc (__throw_bad_function_call): Move here.
2855 * src/c++11/future.cc (__throw_future_error): Likewise.
2856 * src/c++11/ios.cc (__throw_ios_failure): Likewise.
2857 * src/c++11/regex.cc (__throw_regex_error): Likewise.
2858 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
2859 representation directly instead of calling __int_to_char.
2860 * src/c++11/sso_string.cc (__sso_string): New file for definition
2861 of __sso_string type.
2862 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2863 explicit instantiations of narrow string I/O functions.
2864 * src/c++11/system_error.cc (__throw_system_error): Move here.
2865 (__sso_string): Move to new file.
2866 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
2867 explicit instantiations of wide string I/O functions.
2868 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
2869 (operator>>, getline): Remove explicit instantiations from here.
2870
2871 2017-02-02 H.J. Lu <hongjiu.lu (a] intel.com>
2872
2873 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2874
2875 2017-02-02 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
2876
2877 * configure.host: Separate Solaris/SPARC and x86 baselines.
2878 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
2879 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
2880 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
2881 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
2882 ... here.
2883 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
2884 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
2885 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
2886 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
2887 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
2888 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
2889 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
2890 ... here.
2891 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
2892 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
2893 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
2894
2895 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2896 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2897 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2898 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2899 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2900 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2901
2902 2017-02-01 Jonathan Wakely <jwakely (a] redhat.com>
2903
2904 PR libstdc++/78346
2905 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
2906 not its referent.
2907 (_Iter_comp_to_iter): Likewise.
2908 * testsuite/25_algorithms/search/78346.cc: New test.
2909
2910 PR libstdc++/79254
2911 * config/abi/pre/gnu.ver: Remove recently added symbols.
2912 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2913 (basic_string::_M_copy_assign): Remove.
2914 (basic_string::operator=(const basic_string&)): Don't dispatch to
2915 _M_copy_assign. If source object is small just deallocate, otherwise
2916 perform new allocation before making any changes.
2917 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2918 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2919 Remove.
2920 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2921 Test cases where the allocators are equal or the string is small.
2922 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2923 Likewise.
2924
2925 2017-01-30 Ville Voutilainen <ville.voutilainen (a] gmail.com>
2926
2927 Implement LWG 2825, LWG 2756 breaks class template argument
2928 deduction for optional.
2929 * include/std/optional: Add a deduction guide.
2930 * testsuite/20_util/optional/cons/deduction_guide.cc: New.
2931
2932 2017-01-27 Jonathan Wakely <jwakely (a] redhat.com>
2933
2934 PR libstdc++/79254
2935 * config/abi/pre/gnu.ver: Add new symbols.
2936 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2937 (basic_string::_M_copy_assign): New overloaded functions to perform
2938 copy assignment.
2939 (basic_string::operator=(const basic_string&)): Dispatch to
2940 _M_copy_assign.
2941 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
2942 (basic_string::_M_copy_assign(const basic_string&, true_type)):
2943 Define, performing rollback on exception.
2944 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
2945 Test exception-safety guarantee.
2946 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2947 Likewise.
2948 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
2949 std::swap visible.
2950
2951 2017-01-26 Jonathan Wakely <jwakely (a] redhat.com>
2952
2953 PR libstdc++/70607
2954 * include/tr1/complex (conj): Remove using-declaration and restore
2955 overloads, reverting previous change.
2956
2957 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
2958 mode.
2959 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
2960 Mark as unsupported in C++98 mode.
2961 * testsuite/23_containers/queue/requirements/constructible.cc:
2962 Likewise.
2963 * testsuite/23_containers/stack/requirements/constructible.cc:
2964 Likewise.
2965 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
2966
2967 PR libstdc++/79243
2968 * include/bits/c++config (literals::string_view_literals::__7): Add.
2969 Only declare versioned namespaces for the relevant C++ dialects.
2970 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
2971 Add versioning macros.
2972 * include/experimental/bits/lfts_config.h:
2973 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
2974 * include/experimental/string_view (fundamentals_v2::__detail):
2975 Add versioning macros.
2976 (fundamentals_v2::__detail::__identity): Remove.
2977 (fundamentals_v2::__detail::__idt): Use common_type instead of
2978 __detail::__identity.
2979 * include/std/string_view (__detail::__identity, __detail::__idt):
2980 Likewise.
2981 (literals::string_view_literals): Fix nesting of versioning macros.
2982
2983 PR libstdc++/79190
2984 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
2985 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
2986 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
2987 Retrieve original pointer value allocated by malloc.
2988 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
2989 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
2990 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
2991 Define, adjusting pointer value allocated by malloc and storing for
2992 retrieval by operator delete.
2993
2994 2017-01-26 Jakub Jelinek <jakub (a] redhat.com>
2995
2996 * libsupc++/eh_atomics.h: Update copyright years.
2997 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
2998
2999 2017-01-25 Jonathan Wakely <jwakely (a] redhat.com>
3000
3001 PR libstdc++/61791
3002 PR libstdc++/70607
3003 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
3004 (proj(T), conj(T)): Change return types per DR 1522.
3005 * include/tr1/complex (conj): Remove overloads and use std::conj.
3006 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
3007 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
3008 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
3009 real(T) and imag(T). Allow testing for C++11 too.
3010
3011 2017-01-24 Jonathan Wakely <jwakely (a] redhat.com>
3012
3013 PR libstdc++/79206
3014 * include/experimental/string_view (operator==): Check sizes first.
3015 * include/std/string_view (operator==): Likewise.
3016
3017 2017-01-23 Jonathan Wakely <jwakely (a] redhat.com>
3018
3019 * testsuite/experimental/array/make_array.cc: Restore <functional>
3020 inclusion.
3021
3022 2017-01-23 Thomas Preud'homme <thomas.preudhomme (a] arm.com>
3023
3024 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
3025
3026 2017-01-23 Jonathan Wakely <jwakely (a] redhat.com>
3027
3028 PR libstdc++/79195
3029 * include/experimental/array (__make_array_elem): New class template
3030 and partial specialization.
3031 (__is_reference_wrapper): Move into __make_array_elem specialization.
3032 (make_array): Use __make_array_elem to determine element type and move
3033 static assertion into specialization. Qualify std::forward call.
3034 (to_array): Add exception specifiation.
3035 * testsuite/experimental/array/make_array.cc: Test argument types
3036 without a common type.
3037 * testsuite/experimental/array/neg.cc: Adjust expected error message.
3038
3039 2017-01-22 Gerald Pfeifer <gerald (a] pfeifer.com>
3040
3041 * doc/xml/manual/debug.xml: code.google.com uses https now.
3042
3043 2017-01-22 Gerald Pfeifer <gerald (a] pfeifer.com>
3044
3045 * doc/xml/manual/test.xml: Fix link into gccint online manual.
3046
3047 2017-01-21 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3048
3049 Make poisoned hashes SFINAE away the call operator of the hash.
3050 * include/bits/functional_hash.h
3051 (__poison_hash::__enable_hash_call): New.
3052 * include/std/optional (__optional_hash_call_base): New.
3053 (hash<optional<_Tp>>): Derive from the new base,
3054 move the hash function into that base.
3055 * include/std/variant (__variant_hash_call_base_impl): New.
3056 (__variant_hash_call_base): Likewise.
3057 (hash<variant<_Types...>>): Derive from the new base,
3058 move the hash function into that base.
3059 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
3060 * testsuite/20_util/variant/hash.cc: Likewise.
3061
3062 2017-01-20 Joe Seymour <joe.s (a] somniumtech.com>
3063
3064 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
3065 * configure: Regenerate.
3066
3067 2017-01-20 Jonathan Wakely <jwakely (a] redhat.com>
3068
3069 PR libstdc++/69240
3070 * include/bits/random.h (uniform_real_distribution::param_type)
3071 (normal_distribution::param_type, lognormal_distribution::param_type)
3072 (gamma_distribution::param_type, chi_squared_distribution::param_type)
3073 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3074 (student_t_distribution::param_type)
3075 (bernoulli_distribution::param_type, binomial_distribution::param_type)
3076 (geometric_distribution::param_type)
3077 (negative_binomial_distribution::param_type)
3078 (poisson_distribution::param_type)
3079 (exponential_distribution::param_type)
3080 (weibull_distribution::param_type)
3081 (extreme_value_distribution::param_type)
3082 (discrete_distribution::param_type)
3083 (piecewise_constant_distribution::param_type)
3084 (piecewise_linear_distribution::param_type): Define operator!=.
3085 * include/bits/uniform_int_dist.h
3086 (uniform_int_distribution::param_type): Likewise.
3087 * include/ext/random (beta_distribution::param_type)
3088 (rice_distribution::param_type, nakagami_distribution::param_type)
3089 (pareto_distribution::param_type, k_distribution::param_type)
3090 (arcsine_distribution::param_type, hoyt_distribution::param_type)
3091 (triangular_distribution::param_type)
3092 (von_mises_distribution::param_type)
3093 (hypergeometric_distribution::param_type)
3094 (logistic_distribution::param_type)
3095 (uniform_on_sphere_distribution::param_type)
3096 (uniform_inside_sphere_distribution::param_type): Likewise.
3097 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
3098 Test construction with param_type.
3099 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
3100 Likewise.
3101 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
3102 Likewise.
3103 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
3104 Likewise.
3105 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
3106 Likewise.
3107 * testsuite/26_numerics/random/extreme_value_distribution/cons/
3108 parms.cc: Likewise.
3109 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
3110 Likewise.
3111 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
3112 Likewise.
3113 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
3114 Likewise.
3115 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
3116 Likewise.
3117 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
3118 parms.cc: Likewise.
3119 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
3120 Likewise.
3121 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
3122 Likewise.
3123 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
3124 Likewise.
3125 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
3126 Likewise.
3127 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
3128 Likewise.
3129 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
3130 Likewise.
3131 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
3132 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
3133 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3134 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
3135 Likewise.
3136 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
3137 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
3138 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
3139 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
3140 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
3141 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
3142 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
3143 Likewise.
3144 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
3145 parms.cc: Likewise.
3146 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
3147
3148 PR libstdc++/72792
3149 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
3150 (__allocator_traits_base::__size_type): Remove.
3151 (allocator_traits::_Ptr): New class template to detect const and void
3152 pointer types without instantiating pointer_traits::rebind
3153 unnecessarily.
3154 (allocator_traits::_Diff): Likewise for detecting difference_type.
3155 (allocator_traits::_Size): New class template to detect size_type
3156 without instantiating make_unsigned unnecessarily.
3157 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
3158 __detected_or_t instead of __detected_or_t_.
3159 * include/std/type_traits (__detected_or_t_): Remove.
3160 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
3161
3162 PR libstdc++/72792
3163 PR libstdc++/72793
3164 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
3165 Replace with class template using void_t.
3166 (__alloc_rebind): Define in terms of
3167 __allocator_traits_base::__rebind.
3168 (allocator_traits): Remove unconditional static_assert for
3169 rebind_alloc.
3170 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
3171 (pointer_traits::__rebind): Replace with class template using void_t.
3172 (pointer_traits::rebind): Define in terms of __rebind.
3173 (pointer_traits): Remove unconditional static_assert for rebind.
3174 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
3175 * testsuite/20_util/pointer_traits/rebind.cc: New test.
3176
3177 PR libstdc++/69321
3178 * include/experimental/any (__any_caster): Avoid instantiating
3179 manager function for types that can't be stored in any.
3180 * include/std/any (__any_caster): Likewise.
3181 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
3182 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3183
3184 PR libstdc++/64903
3185 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
3186 std::advance.
3187
3188 2017-01-19 Jonathan Wakely <jwakely (a] redhat.com>
3189
3190 PR libstdc++/79156
3191 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
3192 Fix return type.
3193 (__enable_shared_from_this): Declare __shared_ptr as a friend.
3194 * testsuite/ext/shared_ptr/1.cc: New test.
3195
3196 PR libstdc++/64903
3197 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
3198 point.
3199 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
3200
3201 * doc/xml/manual/abi.xml: Fix typo.
3202 * doc/html/manual/abi.html: Likewise.
3203
3204 PR libstdc++/67085
3205 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
3206 converting constructors from _Iter_less_iter.
3207 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
3208 _Iter_comp_iter.
3209 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
3210 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
3211 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
3212 (__make_heap, __sort_heap): Change _Compare parameters to references.
3213 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
3214 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
3215 functions as lvalues.
3216 (is_heap): Call __is_heap_until directly to avoid copying __comp.
3217 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
3218 count copies during construction with empty sequence.
3219
3220 PR libstdc++/67085
3221 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
3222 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
3223 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
3224 number of copies.
3225 * testsuite/25_algorithms/make_heap/movable.cc: New test.
3226
3227 PR libstdc++/67085
3228 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
3229 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
3230 _GLIBCXX_MOVE when passing comparison function to other functions.
3231 (is_heap_until, is_heap): Use std::move when passing comparison
3232 function.
3233 * testsuite/23_containers/priority_queue/67085.cc: New test.
3234
3235 PR libstdc++/78905
3236 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
3237 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
3238 Document that the deprecated _GLIBCXX_VERSION macro was removed for
3239 the 4.0.0 release.
3240 * doc/html/*: Regenerate.
3241 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
3242 * include/Makefile.in: Regenerate.
3243 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
3244 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
3245 dg-error.
3246
3247 2017-01-18 Jonathan Wakely <jwakely (a] redhat.com>
3248
3249 PR libstdc++/69301
3250 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
3251 aligned buffer instead of default-initialized variable.
3252 * testsuite/29_atomics/atomic/69301.cc: New test.
3253 * include/experimental/memory (observer_ptr::release): Use reserved
3254 name.
3255 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
3256 (_Pointer_adapter::operator--(int)): Likewise.
3257
3258 PR libstdc++/68925
3259 * include/experimental/random (randint): Use temporary instead of
3260 thread_local static.
3261
3262 2017-01-17 Joshua Conner <joshconner (a] google.com>
3263
3264 * crossconfig.m4: Add fuchsia OS.
3265 * configure: Regenerate.
3266
3267 2017-01-17 Jonathan Wakely <jwakely (a] redhat.com>
3268
3269 PR libstdc++/69699
3270 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
3271 __GLIBCXX__ macro is not useful. Remove redundant date information
3272 and link to the GCC release timeline.
3273 (abi.versioning.active): Move partial sentence into the previous
3274 paragraph.
3275 * doc/html/*: Regenerate.
3276
3277 PR libstdc++/79114
3278 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
3279 of remove_reference.
3280 * testsuite/18_support/nested_exception/79114.cc: New test.
3281
3282 2017-01-17 Jakub Jelinek <jakub (a] redhat.com>
3283
3284 PR other/79046
3285 * configure.ac: Add GCC_BASE_VER.
3286 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3287 get version from BASE-VER file.
3288 * po/Makefile.in: Regenerated.
3289 * libsupc++/Makefile.in: Regenerated.
3290 * testsuite/Makefile.in: Regenerated.
3291 * src/Makefile.in: Regenerated.
3292 * configure: Regenerated.
3293 * Makefile.in: Regenerated.
3294 * include/Makefile.in: Regenerated.
3295 * doc/Makefile.in: Regenerated.
3296 * python/Makefile.in: Regenerated.
3297 * src/c++11/Makefile.in: Regenerated.
3298 * src/c++98/Makefile.in: Regenerated.
3299 * src/filesystem/Makefile.in: Regenerated.
3300
3301 2017-01-16 Jonathan Wakely <jwakely (a] redhat.com>
3302
3303 PR libstdc++/66145
3304 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
3305 exceptions.
3306 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
3307 for test, so new ios::failure can be caught.
3308 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3309 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3310 exceptions_failbit.cc: Likewise.
3311 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3312 exceptions_failbit.cc: Likewise.
3313 * testsuite/27_io/basic_istream/extractors_other/char/
3314 exceptions_null.cc: Likewise.
3315 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3316 exceptions_null.cc: Likewise.
3317 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3318 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3319 * testsuite/27_io/basic_ostream/inserters_other/char/
3320 exceptions_null.cc: Likewise.
3321 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3322 exceptions_null.cc: Likewise.
3323 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3324
3325 PR libstdc++/78702
3326 * include/bits/locale_classes.h (locale::facet::__shim): Change from
3327 private to protected.
3328 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
3329 make locale::facet::__shim accessible.
3330
3331 2017-01-16 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3332
3333 PR libstdc++/78389
3334 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
3335 (merge(list&&, _StrictWeakOrdering)): Likewise.
3336 * testsuite/23_containers/list/operations/78389.cc: Add
3337 better test for the sizes.
3338
3339 2017-01-14 Jonathan Wakely <jwakely (a] redhat.com>
3340
3341 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3342 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
3343 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3344 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3345 Likewise.
3346 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
3347 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
3348 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
3349 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3350 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3351 Likewise.
3352 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
3353 Likewise.
3354 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
3355 Likewise.
3356 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3357 Likewise.
3358 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3359 Likewise.
3360 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
3361 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
3362 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
3363 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
3364 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
3365 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
3366 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3367 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
3368 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
3369 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3370 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
3371 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3372 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3373
3374 2017-01-13 Jonathan Wakely <jwakely (a] redhat.com>
3375
3376 PR libstdc++/65411
3377 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
3378 retry fclose on EINTR.
3379
3380 * include/profile/base.h: Remove unused header that leads to header
3381 cycle in C++17 mode.
3382
3383 PR libstdc++/79075
3384 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
3385 Make _If_sv private.
3386 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
3387 basic_string_view arguments.
3388
3389 PR libstdc++/79075
3390 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
3391 redundant option from cxxflags.
3392 (check_effective_target_cxx11-abi): Define.
3393 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
3394 effective target.
3395 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
3396 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
3397 Likewise.
3398 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
3399 Likewise.
3400 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
3401 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
3402 Likewise.
3403 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
3404 Likewise.
3405 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
3406 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
3407 Likewise.
3408 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
3409 Likewise.
3410 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
3411 Likewise.
3412 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
3413 Likewise.
3414 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
3415 Likewise.
3416 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
3417 Likewise.
3418 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
3419 Likewise.
3420 * testsuite/23_containers/list/61347.cc: Likewise.
3421 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
3422 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
3423
3424 2017-01-13 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3425
3426 PR libstdc++/78389
3427 * include/bits/list.tcc (merge(list&&)):
3428 Adjust list sizes if the comparator throws.
3429 (merge(list&&, _StrictWeakOrdering)): Likewise.
3430 (sort()): Splice elements back from the scratch buffers
3431 if the comparator throws.
3432 (sort(_StrictWeakOrdering)): Likewise.
3433 * testsuite/23_containers/list/operations/78389.cc: New.
3434
3435 2017-01-13 Jonathan Wakely <jwakely (a] redhat.com>
3436
3437 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
3438 XFAIL for C++17 until node reinsertion supports fancy pointers.
3439
3440 PR libstdc++/78361
3441 * testsuite/20_util/add_pointer/value.cc: Test forming function
3442 pointers.
3443
3444 2017-01-13 Michael Brune <lucdanton (a] free.fr>
3445
3446 PR libstdc++/78361
3447 * include/std/type_traits (__is_referenceable): Handle noexcept
3448 function types.
3449
3450 2017-01-12 Jonathan Wakely <jwakely (a] redhat.com>
3451
3452 PR libstdc++/77528
3453 * include/bits/stl_queue.h (queue, priority_queue): Remove default
3454 member-initializers and define default constructors as templates with
3455 constraints.
3456 * include/bits/stl_stack.h (stack): Likewise.
3457 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
3458 New.
3459 * testsuite/23_containers/priority_queue/requirements/
3460 explicit_instantiation/1.cc: Test more instantiations.
3461 * testsuite/23_containers/priority_queue/requirements/
3462 explicit_instantiation/1_c++98.cc: Likewise.
3463 * testsuite/23_containers/queue/requirements/constructible.cc: New.
3464 * testsuite/23_containers/stack/requirements/constructible.cc: New.
3465
3466 PR libstdc++/66284
3467 * doc/xml/manual/intro.xml: Document LWG 2781 change.
3468 * doc/html/*: Regenerate.
3469 * include/std/functional (_Function_base::_Ref_manager): Remove.
3470 (_Function_handler): Remove partial specializations for
3471 reference_wrapper.
3472 (function::target): Remove special case for const qualification.
3473 * testsuite/20_util/function/6.cc: Adjust tests for target type.
3474 * testsuite/20_util/function/7.cc: Likewise.
3475 * testsuite/20_util/function/8.cc: Likewise.
3476
3477 2017-01-11 Jonathan Wakely <jwakely (a] redhat.com>
3478
3479 PR libstdc++/78134
3480 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
3481 (map::equal_range): Fix return type of heterogeneous overloads.
3482 * include/bits/stl_multimap.h (multimap::lower_bound)
3483 (multimap::upper_bound, multimap::equal_range): Likewise.
3484 * include/bits/stl_multiset.h (multiset::lower_bound)
3485 (multiset::upper_bound, multiset::equal_range): Likewise.
3486 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
3487 (set::equal_range): Likewise.
3488 * testsuite/23_containers/map/operations/2.cc
3489 * testsuite/23_containers/multimap/operations/2.cc
3490 * testsuite/23_containers/multiset/operations/2.cc
3491 * testsuite/23_containers/set/operations/2.cc
3492
3493 PR libstdc++/78273
3494 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
3495 the heterogeneous comparison can only find one match.
3496 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
3497 * testsuite/23_containers/map/operations/2.cc: Test count works with
3498 comparison function that just partitions rather than sorting.
3499 * testsuite/23_containers/set/operations/2.cc: Likewise.
3500
3501 2017-01-11 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3502
3503 Reduce the size of variant, it doesn't need an index of
3504 type size_t internally.
3505 * include/std/variant (parse_numbers.h): New include.
3506 (__select_index): New.
3507 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
3508 _index_type for comparison with variant_npos.
3509 (_Variant_storage<false, _Types...>::__index_type): New.
3510 (_Variant_storage<false, _Types...>::_M_index): Change the
3511 type from size_t to __index_type.
3512 (_Variant_storage<true, _Types...>::__index_type): New.
3513 (_Variant_storage<true, _Types...>::_M_index): Change the
3514 type from size_t to __index_type.
3515 (_Variant_base::_M_valid): Use _Storage::__index_type
3516 for comparison with variant_npos.
3517 (variant::index): Use _Base::_Storage::__index_type
3518 for comparison with variant_npos.
3519 * testsuite/20_util/variant/index_type.cc: New.
3520
3521 2017-01-10 Jonathan Wakely <jwakely (a] redhat.com>
3522
3523 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
3524 effective target selector to prevent running in C++17 mode.
3525
3526 PR libstdc++/77528
3527 * include/bits/stl_queue.h (queue::c): Add default member initializer.
3528 (queue::queue()): Add constructor and define as defaulted.
3529 (queue::queue(_Sequence&&)): Remove default argument.
3530 (priority_queue::c, priority_queue::comp): Add default member
3531 initializers.
3532 (priority_queue::priority_queue()): Add constructor and define as
3533 defaulted.
3534 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
3535 Remove default argument for first parameter.
3536 * include/bits/stl_stack.h (stack::c): Add default member initializer.
3537 (stack::stack()): Add constructor and define as defaulted.
3538 (stack::stack(const _Sequence&)): Remove default argument.
3539 * testsuite/23_containers/priority_queue/requirements/
3540 explicit_instantiation/1.cc: Test explicit instantiation with
3541 non-DefaultConstructible sequence.
3542 * testsuite/23_containers/priority_queue/77528.cc: New test.
3543 * testsuite/23_containers/priority_queue/requirements/
3544 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
3545 * testsuite/23_containers/queue/77528.cc: New test.
3546 * testsuite/23_containers/queue/requirements/explicit_instantiation/
3547 1.cc: Test explicit instantiation with non-DefaultConstructible
3548 sequence.
3549 * testsuite/23_containers/queue/requirements/explicit_instantiation/
3550 1_c++0x.cc: Replace with 1_c++98.cc.
3551 * testsuite/23_containers/stack/77528.cc: New test.
3552 * testsuite/23_containers/stack/requirements/explicit_instantiation/
3553 1.cc: Test explicit instantiation with non-DefaultConstructible
3554 sequence.
3555 * testsuite/23_containers/stack/requirements/explicit_instantiation/
3556 1_c++0x.cc: Replace with 1_c++98.cc.
3557
3558 2017-01-10 Felipe Magno de Almeida <felipe (a] expertisesolutions.com.br>
3559
3560 * include/bits/locale_facets_nonio.tcc
3561 (time_get::_M_extract_via_format): Avoid compilation errors with
3562 non-standard struct tm.
3563
3564 2017-01-10 Franois Dumont <fdumont (a] gcc.gnu.org>
3565 Jonathan Wakely <jwakely (a] redhat.com>
3566
3567 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
3568 (is_specialization, strip_versioned_namespace): New helpers functions
3569 to work with symbols in the versioned namespace.
3570 (Printer.add_version): Add second name using versioned namespace.
3571 (add_one_template_type_printer, add_one_type_printer): Add second
3572 type printers using versioned namespace.
3573 (register_type_printers): Add template type printer for basic_string.
3574 (build_libstdcxx_dictionary): Remove dead code.
3575 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
3576 versioned namespace.
3577 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
3578 results.
3579 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
3580
3581 2017-01-09 Jonathan Wakely <jwakely (a] redhat.com>
3582
3583 PR libstdc++/79017
3584 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
3585 functions separately on darwin and if they're missing define
3586 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
3587 * config.h.in: Regenerate.
3588 * configure: Regenerate.
3589 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
3590 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
3591
3592 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
3593 to detect correct thread_local destructors.
3594 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
3595 Define.
3596
3597 2017-01-09 Jonathan Wakely <jwakely (a] redhat.com>
3598 Aditya Kumar <hiraditya (a] msn.com>
3599
3600 PR libstdc++/66414
3601 * include/bits/basic_string.tcc
3602 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
3603
3604 2017-01-06 Jonathan Wakely <jwakely (a] redhat.com>
3605
3606 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
3607 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
3608
3609 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
3610 Include <cassert> header.
3611
3612 PR libstdc++/78968
3613 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
3614 * configure: Regenerate.
3615
3616 2017-01-06 Barrett Adair <barrettellisadair (a] gmail.com>
3617 Jonathan Wakely <jwakely (a] redhat.com>
3618
3619 * include/std/variant (variant, swap): Replace __and_ usage with fold
3620 expressions.
3621
3622 2017-01-06 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3623
3624 PR go/78978
3625 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
3626 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
3627 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
3628 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
3629 HWCAP_FLAGS.
3630 * aclocal.m4: Regenerate.
3631 * configure: Regenerate.
3632 * Makefile.in, doc/Makefile.in, include/Makefile.in,
3633 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
3634 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
3635 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
3636
3637 2017-01-06 Jonathan Wakely <jwakely (a] redhat.com>
3638
3639 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
3640
3641 PR libstdc++/78991
3642 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
3643 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
3644 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
3645 move function objects.
3646 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
3647 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
3648 * testsuite/25_algorithms/sort/78991.cc: New test.
3649
3650 2017-01-05 Jonathan Wakely <jwakely (a] redhat.com>
3651
3652 * include/bits/std_function.h (function::_Signature_type): Remove.
3653 (function::function(_Functor)): Adjust.
3654
3655 2017-01-05 Tim Shen <timshen (a] google.com>
3656
3657 PR libstdc++/78996
3658 * include/std/variant (__gen_vtable_impl): rename __unused to
3659 __dimensions to avoid naming conflict.
3660
3661 2017-01-04 Jonathan Wakely <jwakely (a] redhat.com>
3662
3663 PR libstdc++/78968
3664 * config.h.in: Regenerate.
3665 * configure: Likewise.
3666 * configure.ac: Check for __cxa_thread_atexit.
3667 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
3668 Don't define __cxa_thread_atexit if libc provides it.
3669
3670 2017-01-04 Ville Voutilainen <ville.voutilainen (a] gmail.com>
3671
3672 Implement 2801, Default-constructibility of unique_ptr.
3673 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
3674 (unique_ptr::_DeleterConstraint): Likewise.
3675 (unique_ptr()): Constrain.
3676 (unique_ptr(pointer)): Likewise.
3677 (unique_ptr(nullptr_t)): Likewise.
3678 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
3679 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
3680 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
3681 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
3682 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
3683 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
3684 * testsuite/20_util/unique_ptr/cons/default.cc: New.
3685 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
3686
3687 2017-01-04 Pauli Nieminen <suokkos (a] gmail.com>
3688 Jonathan Wakely <jwakely (a] redhat.com>
3689
3690 PR libstdc++/64735
3691 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
3692 * config.h.in: Regenerate.
3693 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
3694 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
3695 exports for exception_ptr, nested_exception, and future conditional.
3696 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
3697 exports for exception_ptr, nested_exception, and future conditional.
3698 * configure: Regenerate.
3699 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
3700 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
3701 * libsupc++/eh_atomics.h: New file for internal use only.
3702 (__eh_atomic_inc, __eh_atomic_dec): New.
3703 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
3704 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
3705 (rethrow_exception): Use eh_atomics.h reference counting helpers.
3706 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
3707 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
3708 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
3709 * libsupc++/exception_ptr.h: Likewise.
3710 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
3711 * libsupc++/nested_exception.cc: Remove check for
3712 ATOMIC_INT_LOCK_FREE.
3713 * libsupc++/nested_exception.h: Likewise.
3714 * src/c++11/future.cc: Likewise.
3715 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
3716 * testsuite/18_support/nested_exception/*: Likewise.
3717 * testsuite/30_threads/async/*: Likewise.
3718 * testsuite/30_threads/future/*: Likewise.
3719 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
3720 * testsuite/30_threads/packaged_task/*: Likewise.
3721 * testsuite/30_threads/promise/*: Likewise.
3722 * testsuite/30_threads/shared_future/*: Likewise.
3723
3724 2017-01-03 Gerald Pfeifer <gerald (a] pfeifer.com>
3725
3726 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
3727 defaults to https; adjust reference.
3728
3729 2017-01-03 Jonathan Wakely <jwakely (a] redhat.com>
3730
3731 PR libstdc++/78956
3732 * include/std/thread (thread(const thread&&)): Add deleted
3733 constructor.
3734 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
3735
3736 * doc/xml/manual/spine.xml: Update copyright years.
3737 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
3738 * doc/xml/manual/test.xml: Likewise.
3739 * doc/html/*: Regenerate.
3740
3741 2017-01-01 Gerald Pfeifer <gerald (a] pfeifer.com>
3742
3743 * doc/xml/faq.xml: Update address of C++ ABI link.
3744 * doc/xml/manual/abi.xml: Ditto.
3745
3746 2017-01-01 Jakub Jelinek <jakub (a] redhat.com>
3747
3748 Update copyright years.
3749
3751 Copyright (C) 2017 Free Software Foundation, Inc.
3752
3753 Copying and distribution of this file, with or without modification,
3754 are permitted in any medium without royalty provided the copyright
3755 notice and this notice are preserved.
3756