Test begin and end functions for directory iterators
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobfdcb9cae2beb34cd08dbdf5f53f97569b50147bb
1 2016-05-10  Jonathan Wakely  <jwakely@redhat.com>
3         * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
4         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
5         Test begin and end functions.
6         * testsuite/experimental/filesystem/iterators/
7         recursive_directory_iterator.cc: Likewise.
9         PR libstdc++/71038
10         * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
11         * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
13         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
14         Overload operator* to move from rvalues.
16         PR libstdc++/71036
17         * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
18         * testsuite/experimental/filesystem/operations/create_directory.cc:
19         New test.
21         PR libstdc++/71037
22         * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
23         base path to exception.
24         * testsuite/experimental/filesystem/operations/canonical.cc: Test
25         paths contained in exception.
27         * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
28         using declaration.
30         PR libstdc++/71005
31         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
32         New type.
33         (directory_iterator::operator++(int)): Return proxy.
34         (recursive_directory_iterator::operator++(int)): Likewise.
35         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
36         Test post-increment.
37         * testsuite/experimental/filesystem/iterators/
38         recursive_directory_iterator.cc: Likewise.
40 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
42         PR libstdc++/71004
43         * testsuite/experimental/filesystem/iterators/
44         recursive_directory_iterator.cc: Fix test02 to not call member
45         functions on invalid iterator, and use VERIFY not assert.
47 2016-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
49         Avoid endless run-time recursion for copying single-element
50         tuples where the element type is by-value constructible
51         from any type.
52         * include/std/tuple (_NotSameTuple): New.
53         * include/std/tuple (tuple(_UElements&&...): Use it.
54         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
56 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
58         PR libstdc++/71004
59         * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
60         Initialize scalar member variables in default constructor.
61         * testsuite/experimental/filesystem/iterators/
62         recursive_directory_iterator.cc: Test default construction.
64 2016-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
66         * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
68 2016-05-05  Jonathan Wakely  <jwakely@redhat.com>
70         * testsuite/experimental/filesystem/path/native/string.cc: Add
71         dg-require-filesystem-ts directive.
73 2016-05-04  Jonathan Wakely  <jwakely@redhat.com>
75         PR libstdc++/70940
76         * include/experimental/memory_resource
77         (__resource_adaptor_imp::do_allocate): Do not default-construct
78         rebound allocator.
79         (__resource_adaptor_imp::do_deallocate): Likewise. Use
80         allocator_traits to get pointer type.
81         (__null_memory_resource::do_allocate): Remove unused parameters.
82         (__null_memory_resource::do_deallocate): Likewise.
83         (__null_memory_resource::do_is_equal): Likewise. Add return statement.
84         * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
85         * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
86         move to ...
87         * testsuite/experimental/memory_resource/1.cc: Here.
88         * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
89         * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
91 2016-04-29  Chris Gregory  <czipperz@gmail.com>
93         * config/*: Remove trailing whitespace.
94         * src/*: Likewise.
95         * testsuite/tr1/*: Likewise.
96         * testsuite/util/*: Likewise.
98 2016-04-28  Jonathan Wakely  <jwakely@redhat.com>
100         PR libstdc++/70766
101         * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
102         __addressof.
103         * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
104         Likewise.
105         * include/std/atomic (atomic<_Tp>): Likewise.
106         * include/std/shared_mutex (shared_lock): Likewise.
107         * testsuite/24_iterators/istream_iterator/70766.cc: New test.
108         * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
109         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
110         * testsuite/29_atomics/atomic/70766.cc: New test.
111         * testsuite/30_threads/shared_lock/70766.cc: New test.
113         * include/bits/hashtable_policy.h (__detail::_Insert_base,
114         __detail::_Insert): Improve comments.
116 2016-04-27  Jonathan Wakely  <jwakely@redhat.com>
118         PR libstdc++/70767
119         * include/std/limits: Update comments about DRs.
120         (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
121         numeric_limits<const volatile _Tp>): Define unconditionally.
123 2016-04-24  Jonathan Wakely  <jwakely@redhat.com>
125         PR libstdc++/70762
126         * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
127         static counter to return a different path on every call.
129 2016-04-22  Tim Shen  <timshen@google.com>
131         PR libstdc++/70745
132         * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
133         Fix the match_not_bow and match_not_eow behavior.
134         * testsuite/28_regex/regression.cc: Add testcase.
136 2016-04-20  Jonathan Wakely  <jwakely@redhat.com>
138         PR libstdc++/69703
139         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
140         __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
142 2016-04-19  Jonathan Wakely  <jwakely@redhat.com>
144         PR libstdc++/69703
145         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
146         Override endianness bit in mode.
147         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
148         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
149         that little_endian mode is ignored.
150         * testsuite/experimental/filesystem/path/native/string.cc: New test.
152         PR libstdc++/70609
153         * src/filesystem/ops.cc (close_fd): New function.
154         (do_copy_file): Set permissions before copying file contents. Check
155         result of closing file descriptors. Don't copy streambuf when file
156         is empty.
157         (copy(const path&, const path&, copy_options, error_code&)): Use
158         lstat for source file when copy_symlinks is set.
159         * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
161         * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
162         operator~ operator&=, operator|=, operator^=): Add noexcept to
163         overloaded operators for copy_options, perms and directory_options.
164         * src/filesystem/ops.cc (make_file_type, make_file_status,
165         is_not_found_errno, file_time): Add noexcept.
167 2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>
169         * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
171 2016-04-18  Jonathan Wakely  <jwakely@redhat.com>
173         PR libstdc++/41759
174         * include/bits/random.h: Reword static assertion messages to state
175         positive conditions.
176         * include/bits/random.tcc: Likewise.
177         * include/bits/uniform_int_dist.h: Likewise.
178         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
179         patterns.
181         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
183         * config/cpu/sh/atomicity.h: Fix typo in comment.
185         PR libstdc++/70294
186         * include/std/thread (operator<, operator==): Move definitions to
187         namespace-scope.
188         * testsuite/30_threads/thread/id/70294.cc: New test.
190         * testsuite/18_support/bad_exception/23591_thread-1.c: Add
191         -Wno-pedantic to dg-options.
192         * testsuite/20_util/align/2.cc: Use type as operand of alignof.
193         * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
194         to dg-options.
195         * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
196         Remove extra semi-colon.
197         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
198         Always supply second argument to static_assert.
199         * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
200         semi-colon.
201         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
202         dg-options.
203         * testsuite/26_numerics/complex/literals/values.cc: Likewise.
204         * testsuite/29_atomics/atomic/60695.cc: Likewise.
205         * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
206         alignof when operand is an object not a type.
207         * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
208         * testsuite/decimal/make-decimal.cc: Likewise.
209         * testsuite/experimental/type_traits/value.cc: Always supply second
210         argument to static_assert.
211         * testsuite/util/testsuite_common_types.h: Use __extension__ for
212         __int128 types.
214         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
215         internal header.
216         * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
217         * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
218         * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
219         Likewise. Add licence and change to compile-only test.
221         * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
222         unused parameter.
223         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
225         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
226         warnings.
228 2016-04-17  Edward Smith-Rowland  <3dw4rd@verizon.net>
230         * include/bits/specfun.h: Trivial comment misspelling.
232 2016-04-14  Jason Merrill  <jason@redhat.com>
234         Revert Jonathan's empty ABI change from yesterday.
236 2016-04-13  Martin Sebor  <msebor@redhat.com>
238         PR c++/69517
239         * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
240         upper bound is positive.
242 2016-04-13  Jonathan Wakely  <jwakely@redhat.com>
244         * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
245         _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
246         * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
247         of functions taking empty structs by value. Add a template parameter
248         to overloads without hints. Rename overloads with hints to
249         _M_emplace_hint.
250         (_Hashtable::_M_erase(true_type, const_iterator),
251         _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
252         by reordering parameters.
253         * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
254         _M_emplace_hint instead of _M_emplace.
255         * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
256         shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
257         * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
258         __shared_ptr): Likewise.
259         * include/bits/stl_algo.h (replace_if): Likewise.
260         * include/bits/stl_pair.h (piecewise_construct_t,
261         piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
262         * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
263         __uses_alloc0): Likewise.
264         * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
265         * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
266         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
267         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
268         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
269         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
270         * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
272 2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>
274         Document C++17/TR29124 C++ Special Math Functions.
275         * include/bits/specfun.h: Add Doxygen markup.
277 2016-04-07  Jonathan Wakely  <jwakely@redhat.com>
279         * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
281 2016-04-06  Eric Botcazou  <ebotcazou@adacore.com>
283         * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
284         * src/Makefile.in: Regenerate.
286 2016-04-05  Jonathan Wakely  <jwakely@redhat.com>
288         PR libstdc++/70554
289         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
290         __atomic_fetch_add for bool.
291         * configure: Regenerate.
293         * testsuite/30_threads/thread/70503.cc: Require -static to work.
295         PR libstdc++/70503
296         * src/c++11/thread.cc (execute_native_thread_routine,
297         execute_native_thread_routine_compat): Give internal linkage.
298         * testsuite/30_threads/thread/70503.cc: New test.
300 2016-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
302         PR libstdc++/70437
303         * include/bits/stl_pair.h (_ConstructiblePair,
304         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
305         _ImplicitlyMoveConvertiblePair): Add shortcut conditions
306         for same-type cases.
307         * testsuite/20_util/pair/70437.cc: New.
309 2016-03-24  Jonathan Wakely  <jwakely@redhat.com>
311         PR libstdc++/69945
312         * config/abi/pre/gnu.ver: Add new symbol.
313         * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
314         * testsuite/18_support/free_eh_pool.cc: New test.
316 2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
318         * include/Makefile.am (install-freestanding-headers): Add
319         concept_check.h and move.h to the installed headers.
320         * include/Makefile.in: Regenerated.
321         * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
322         freestanding implementations.
323         * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
324         that this macro has no effect for freestanding implementations.
325         * doc/html/manual/using_macros.html: Likewise.
327 2016-02-24  Jonathan Wakely  <jwakely@redhat.com>
329         PR libstdc++/69939
330         * include/experimental/tuple (__apply_impl): Qualify get and forward.
332 2016-02-23  Jonathan Wakely  <jwakely@redhat.com>
334         * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
335         * doc/html/*: Regenerate.
337         PR libstdc++/69893
338         * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
339         exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
340         llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
341         nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
342         trunc) [__cplusplus >= 201103L]: Import from namespace std.
343         (fabs) [__cplusplus < 201103L]: Import from namespace std.
344         * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
345         Likewise.
346         * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
347         namespace before including TR1 headers.
348         * testsuite/tr1/headers/c++200x/math.cc: New test.
350 2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
352         PR libstdc++/69881
353         * include/c_global/cstdarg: Undefine __need___va_list.
354         * include/c_global/cstddef: Undefine all kinds of __need_*.
356 2016-02-16  Tim Shen  <timshen@google.com>
358         PR libstdc++/69794
359         * include/bits/regex_scanner.h: Add different special character
360         sets for grep and egrep regex.
361         * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
362         * testsuite/28_regex/regression.cc: Add new testcase.
364 2016-02-08  Jonathan Wakely  <jwakely@redhat.com>
366         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
367         added 'constexpr' in previous commit.
368         * configure: Regenerate.
370         PR libstdc++/48891
371         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
372         checks for all targets except *-*-solaris2.* and ensure we find the
373         libc math.h header not our own.
374         * configure: Regenerate.
376 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
378         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
379         New file.  Copied over from s390-linux-gnu.
381 2016-02-04  Jonathan Wakely  <jwakely@redhat.com>
383         PR libstdc++/69626
384         * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
385         with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
386         * config.h.in: Regenerate.
387         * configure: Regenerate.
388         * testsuite/21_strings/c_strings/char/69626.cc: New.
390         * doc/html/index.html: Regenerate.
392         * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
393         * doc/xml/manual/spine.xml: Update copyright years and author blurb.
394         * doc/html/*: Regenerate.
396 2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
398         PR libstdc++/69581
399         * include/c_compatibility/math.h: Move header guards.
400         * include/c_compatibility/stdlib.h: Likewise.
402 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
404         PR libstdc++/69506
405         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
407 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
409         PR libstdc++/69450
410         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
411         isinf and isnan functions into two independent checks.  Check on hpux.
412         * config.h.in: Regenerate.
413         * configure: Regenerate.
414         * include/c_global/cmath (isinf(double), isnan(double)): Use
415         _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
416         respectively.
418 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
420         * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
422 2016-01-27  Jonathan Wakely  <jwakely@redhat.com>
424         PR libstdc++/69295
425         * testsuite/ext/special_functions/hyperg/check_value.cc: Use
426         -ffp-contract=off, and -ffloat-store to disable excess precision.
427         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
428         -ffp-contract=off.
430 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
432         PR libstdc++/69478
433         * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
434         random_access_iterator_tag>): Check is_move_assignable when moving.
435         (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
436         Likewise.
437         * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
438         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
439         * testsuite/25_algorithms/move/69478.cc: New.
440         * testsuite/25_algorithms/move_backward/69478.cc: new.
442 2016-01-26  Andris Pavenis  <andris.pavenis@iki.fi>
444         * include/c_compatibility/stdlib.h: Include wide character related
445         definitions only when they are available in cstdlib.
447 2016-01-25  Jonathan Wakely  <jwakely@redhat.com>
449         PR libstdc++/69464
450         * include/Makefile.am: Add new header.
451         * include/Makefile.in: Regenerate.
452         * include/bits/random.h (uniform_int_distribution): Move to
453         bits/uniform_int_dist.h.
454         * include/bits/random.tcc (uniform_int_distribution::operator(),
455         uniform_int_distribution::__generate_impl): Likewise.
456         * include/bits/uniform_int_dist.h: New header.
457         * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
458         <bits/uniform_int_dist.h> instead of <random>.
459         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
460         move_iterators/1.cc: Include correct header for uninitialized_copy.
461         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
462         move_iterators/1.cc: Likewise.
463         * testsuite/25_algorithms/nth_element/58800.cc: Include correct
464         header for vector.
465         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
467 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
469         PR libstdc++/69446
470         * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
472 2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
474         TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
475         * include/c_compatibility/math.h: Import the TR29124 functions
476         into the global namespace.
477         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
478         xfail and make compile-only.
479         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
480         * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
481         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
482         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
483         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
484         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
485         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
486         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
487         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
488         * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
489         * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
490         * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
491         * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
492         * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
493         * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
494         * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
495         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
496         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
497         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
498         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
500 2016-01-22  Jonathan Wakely  <jwakely@redhat.com>
502         PR libstdc++/69116
503         * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
504         define result_type for types which can be safely used with valarrays.
505         * testsuite/26_numerics/valarray/69116.cc: New.
507         PR libstdc++/69413
508         * config/os/gnu-linux/os_defines.h: Define
509         _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
510         * include/c_global/cmath (isinf, isnan): Check it.
511         * doc/xml/manual/internals.xml: Document it.
512         * doc/html/*: Regenerate.
514 2016-01-21  Jonathan Wakely  <jwakely@redhat.com>
516         PR libstdc++/69406
517         * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
518         * include/ext/type_traits.h: Likewise.
519         * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
520         for presence of C headers.
521         * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
522         dg-error line number.
523         * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
524         * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
525         * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
527 2016-01-20  Torvald Riegel  <triegel@redhat.com>
529         PR libstdc++/69310
530         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
532 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
534         PR libstdc++/60401
535         * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
536         copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
537         lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
538         nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
539         tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
540         Add using declarations.
541         * testsuite/26_numerics/headers/cmath/60401.cc: New.
543         PR libstdc++/69386
544         * include/c_global/ccomplex: Ensure C++ language linkage.
545         * include/c_global/cmath: Likewise.
546         * include/c_global/cstdlib: Likewise.
547         * include/c_global/ctgmath: Likewise.
548         * testsuite/17_intro/headers/c++2011/linkage.cc: New.
550 2016-01-19  Jonathan Wakely  <jwakely@redhat.com>
552         PR libstdc++/14608
553         PR libstdc++/60401
554         * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
555         --enable-cheaders=c_global configs.
556         * include/Makefile.in: Regenerate.
557         * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
558         test and allow inclusion from C files.
559         * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
560         (at_quick_exit, quick_exit): Add using directives.
561         * include/c_global/cmath: Use #include_next for math.h.
562         * include/c_global/cstdlib: Use #include_next for stdlib.h.
563         * testsuite/26_numerics/headers/cmath/14608.cc: New.
564         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
565         Remove xfail for most targets.
566         * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
568 2016-01-18  Torvald Riegel  <triegel@redhat.com>
570         * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
571         (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
572         and move after its definition.
573         * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
574         * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
575         __GXX_WEAK__, and only provide transactional clones if
576         _GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
577         functions.
579 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
581         PR libstdc++/60637
582         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
584         PR libstdc++/69243
585         * include/std/functional (_Function_base::_M_not_empty_function):
586         Change overloads for pointers to take arguments by value.
587         * testsuite/20_util/function/cons/57465.cc: Add tests for
588         pointer-to-member cases.
590         PR libstdc++/69340
591         * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
592         Use macros for exception handling and fix unused parameter warning.
594 2016-01-17  John David Anglin  <danglin@gcc.gnu.org>
596         PR libstdc++/68734
597         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
599 2016-01-17  Torvald Riegel  <triegel@redhat.com>
601         * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
603 2016-01-16  H.J. Lu  <hongjiu.lu@intel.com>
605         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
606         __int128 symbols.
608 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
610         PR libstdc++/69293
611         * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
612         static assertion that type is constructible from the arguments.
613         * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
614         * testsuite/20_util/uses_allocator/69293_neg.cc: New.
615         * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
617         PR libstdc++/69294
618         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
619         and isnan on AIX. Quote variables.
620         * configure: Regenerate.
622 2016-01-15  Torvald Riegel  <triegel@redhat.com>
624         * include/bits/basic_string.h (basic_string): Declare friends.
625         * include/bits/c++config (_GLIBCXX_TXN_SAFE,
626         _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
627         * include/std/stdexcept (logic_error, domain_error, invalid_argument,
628         length_error, out_of_range, runtime_error, range_error,
629         underflow_error, overflow_error): Declare members as transaction-safe.
630         (logic_error, runtime_error): Declare friend functions.
631         * libsupc++/exception (exception, bad_exception): Declare members as
632         transaction-safe.
633         * src/c++11/cow-stdexcept.cc: Define transactional clones for the
634         transaction-safe members of exceptions and helper functions.
635         * libsupc++/eh_exception.cc: Adjust and define transactional clones.
636         * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
637         (CXXABI_1.3.10): New.
638         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
639         (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
640         * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
641         * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
642         * include/Makefile.in: Regenerate.
643         * config.h.in: Regenerate.
644         * configure: Regenerate.
645         * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
647 2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
649         * include/ext/random.tcc: Use __builtin_isfinite instead of
650         std::isfinite.
652 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
654         * include/bits/std_mutex.h: Fix Doxygen @file name.
656 2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
657             Jonathan Wakely  <jwakely@redhat.com>
658             Florian Goth <CaptainSifff@gmx.de>
660         Implement TR29124 C++ special Math Functions.
661         * include/Makefile.am: Add new headers.
662         * include/Makefile.in: Regenerate.
663         * include/bits/specfun.h: New.
664         * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
665         * include/tr1/bessel_function.tcc: Ditto.
666         * include/tr1/beta_function.tcc: Ditto.
667         * include/tr1/cmath: Ditto.
668         * include/tr1/ell_integral.tcc: Ditto.
669         * include/tr1/exp_integral.tcc: Ditto.
670         * include/tr1/gamma.tcc: Ditto.
671         * include/tr1/hypergeometric.tcc: Ditto.
672         * include/tr1/legendre_function.tcc: Ditto.
673         * include/tr1/modified_bessel_func.tcc: Ditto.
674         * include/tr1/poly_hermite.tcc: Ditto.
675         * include/tr1/poly_laguerre.tcc: Ditto.
676         * include/tr1/riemann_zeta.tcc: Ditto.
677         * include/tr1/special_function_util.h: Ditto.
678         * testsuite/ext/special_functions/conf_hyperg: New.
679         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
680         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
681         * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
682         * testsuite/ext/special_functions/hyperg: New.
683         * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
684         * testsuite/ext/special_functions/hyperg/check_value.cc: New.
685         * testsuite/ext/special_functions/hyperg/compile.cc: New.
686         * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
687         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
688         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
689         * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
690         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
691         * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
692         * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
693         * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
694         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
695         * testsuite/special_functions/03_beta/check_nan.cc: New.
696         * testsuite/special_functions/03_beta/check_value.cc: New.
697         * testsuite/special_functions/03_beta/compile.cc: New.
698         * testsuite/special_functions/03_beta/compile_2.cc: New.
699         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
700         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
701         * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
702         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
703         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
704         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
705         * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
706         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
707         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
708         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
709         * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
710         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
711         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
712         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
713         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
714         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
715         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
716         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
717         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
718         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
719         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
720         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
721         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
722         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
723         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
724         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
725         * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
726         * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
727         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
728         * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
729         * testsuite/special_functions/11_ellint_1/check_value.cc: New.
730         * testsuite/special_functions/11_ellint_1/compile.cc: New.
731         * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
732         * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
733         * testsuite/special_functions/12_ellint_2/check_value.cc: New.
734         * testsuite/special_functions/12_ellint_2/compile.cc: New.
735         * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
736         * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
737         * testsuite/special_functions/13_ellint_3/check_value.cc: New.
738         * testsuite/special_functions/13_ellint_3/compile.cc: New.
739         * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
740         * testsuite/special_functions/14_expint/check_nan.cc: New.
741         * testsuite/special_functions/14_expint/check_value.cc: New.
742         * testsuite/special_functions/14_expint/compile.cc: New.
743         * testsuite/special_functions/14_expint/compile_2.cc: New.
744         * testsuite/special_functions/15_hermite/check_nan.cc: New.
745         * testsuite/special_functions/15_hermite/check_value.cc: New.
746         * testsuite/special_functions/15_hermite/compile.cc: New.
747         * testsuite/special_functions/15_hermite/compile_2.cc: New.
748         * testsuite/special_functions/16_laguerre/check_nan.cc: New.
749         * testsuite/special_functions/16_laguerre/check_value.cc: New.
750         * testsuite/special_functions/16_laguerre/compile.cc: New.
751         * testsuite/special_functions/16_laguerre/compile_2.cc: New.
752         * testsuite/special_functions/17_legendre/check_nan.cc: New.
753         * testsuite/special_functions/17_legendre/check_value.cc: New.
754         * testsuite/special_functions/17_legendre/compile.cc: New.
755         * testsuite/special_functions/17_legendre/compile_2.cc: New.
756         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
757         * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
758         * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
759         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
760         * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
761         * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
762         * testsuite/special_functions/19_sph_bessel/compile.cc: New.
763         * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
764         * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
765         * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
766         * testsuite/special_functions/20_sph_legendre/compile.cc: New.
767         * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
768         * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
769         * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
770         * testsuite/special_functions/21_sph_neumann/compile.cc: New.
771         * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
772         * testsuite/util/specfun_testcase.h: New.
773         * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
774         * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
775         * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
776         * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
777         * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
778         * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
779         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
781 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
783         PR libstdc++/48891
784         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
785         and isnan functions.
786         * config.h.in: Regenerate.
787         * configure: Regenerate.
788         * include/c_global/cmath (isinf(double), isnan(double))
789         [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
790         * testsuite/26_numerics/headers/cmath/48891.cc: New.
792 2016-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
794         PR libstdc++/66006
795         * configure.host (abi_baseline_pair): Use separate baseline for
796         Solaris 11+ and Solaris 10 with gld.
797         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
798         * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
799         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
801 2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>
803         PR libstdc++/68877
804         * include/std/type_traits: Following N4511, reimplement __is_swappable
805         and __is_nothrow_swappable. Move __is_swappable to namespace std,
806         adjust callers. Use __is_nothrow_swappable in swap.
807         * include/bits/move.h: Use __is_nothrow_swappable in swap.
808         * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
809         __is_swappable related tests.
810         * testsuite/20_util/is_swappable/value.cc: New.
811         * testsuite/20_util/is_swappable/requirements/
812         explicit_instantiation.cc: New.
813         * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
814         * testsuite/25_algorithms/swap/68877.cc: New.
816 2016-01-12  Jonathan Wakely  <jwakely@redhat.com>
818         * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
820         PR libstdc++/69005
821         PR libstdc++/69222
822         * include/std/functional (function::_Invoke): Remove, use result_of.
823         (function::_Callable): Replace alias template with class template
824         and use partial specialization instead of _NotSelf alias template.
825         (function(_Functor)): Add "not self" constraint so that _Callable is
826         not used while type is incomplete.
827         * testsuite/20_util/function/69222.cc: New.
829 2016-01-11  Jonathan Wakely  <jwakely@redhat.com>
831         PR libstdc++/60976
832         * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
833         Define partial specialization.
834         * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
835         destroy members to std::allocator explicit specialization.
837 2016-01-08  Jonathan Wakely  <jwakely@redhat.com>
839         * testsuite/26_numerics/headers/cmath/
840         c99_classification_macros_c++.cc: Rename to ...
841         * testsuite/26_numerics/headers/cmath/
842         c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
843         * testsuite/26_numerics/headers/cmath/
844         c99_classification_macros_c++0x.cc: Rename to ...
845         * testsuite/26_numerics/headers/cmath/
846         c99_classification_macros_c++11.cc: Here.
848         PR libstdc++/69190
849         * include/bits/uses_allocator.h: Add missing include.
851 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
853         PR libstdc++/69105
854         PR libstdc++/69106
855         PR libstdc++/69114
856         * include/bits/stl_iterator.h (back_insert_iterator,
857         front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
858         * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
859         * include/std/future (__future::base::_State_baseV2::__setter):
860         Likewise.
861         * include/std/scoped_allocator (__outermost): Likewise.
862         * testsuite/20_util/scoped_allocator/69114.cc: New.
863         * testsuite/20_util/uses_allocator/69114.cc: New.
864         * testsuite/30_threads/promise/69106.cc: New.
866 2016-01-06  Jonathan Wakely  <jwakely@redhat.com>
868         PR libstdc++/69092
869         * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
870         Remove _GLIBCXX_NOEXCEPT.
871         testsuite/21_strings/basic_string/cons/char/69092.cc: New.
873         * include/Makefile.am: Adjust.
874         * include/Makefile.in: Regenerate.
875         * include/bits/mutex.h: Rename to bits/std_mutex.h.
876         * include/std/condition_variable: Adjust include.
877         * include/std/mutex: Likewise.
879 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
881         Update copyright years.
883 Copyright (C) 2016 Free Software Foundation, Inc.
885 Copying and distribution of this file, with or without modification,
886 are permitted in any medium without royalty provided the copyright
887 notice and this notice are preserved.