]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Move comparison object in map/set move assignment
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
4 comparison object.
5 * testsuite/23_containers/set/move_comparison.cc: New test.
6
7 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
8 New test.
9
10 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
11
12 PR libstdc++/77395
13 * include/std/type_traits (is_constructible): Forward-declare...
14 (__is_base_to_derived_ref): ...and use here.
15 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
16 * testsuite/20_util/is_constructible/77395.cc: New.
17 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
18 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
19 Likewise.
20 * testsuite/20_util/tuple/77395.cc: New.
21
22 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
23
24 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
25 directive above dg-require-namedlocale directive.
26 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
27 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
28 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
29 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
30 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
31
32 2016-08-27 Tim Shen <timshen@google.com>
33
34 PR libstdc++/77356
35 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
36 _M_expression_term): Modify to support dash literal.
37 * include/bits/regex_scanner.h: Add dash as a token type to make
38 a different from the mandated dash literal by escaping.
39 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
40 token in bracket expression parsing.
41 * testsuite/28_regex/regression.cc: Add new testcases.
42
43 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
44
45 PR libstdc++/51960
46 * doc/xml/manual/intro.xml: Document DR 2127 change.
47 * doc/html/*: Regenerate.
48 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
49 (operator++(), operator++(int)): Use injected class name.
50 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
51
52 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
53 using -std in dg-options.
54
55 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
56 Pedro Alves <palves@redhat.com>
57
58 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
59 and restore dg-interpreter-batch-mode.
60 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
61 gdb-dg-runtest instead of dg-runtest.
62 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
63
64 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
65
66 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
67 precise patterns for basic_string constructors.
68 (GLIBCXX_3.4.23): Export new constructors.
69 * doc/xml/manual/intro.xml: Document LWG 2583 status.
70 * doc/html/*: Regenerate.
71 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
72 (basic_string(const basic_string&, size_type, const Alloc&)): Add
73 new constructor for LWG 2583.
74 (basic_string(const basic_string&, size_type, size_type)): Remove
75 default argument.
76 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
77 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
78 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
79 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
80
81 2016-08-24 Aditya Kumar <hiraditya@msn.com>
82
83 * include/bits/algorithmfwd.h: Remove trailing whitespace.
84 * include/bits/shared_ptr_base.h: Likewise.
85
86 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
87
88 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
89 * include/profile/array (array): Likewise.
90 (array::swap): Fix exception specification for zero-sized arrays.
91
92 PR libstdc++/77334
93 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
94 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
95 * testsuite/23_containers/map/77334.cc: New test.
96
97 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
98 * doc/html/*: Regenerate.
99
100 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
101 * testsuite/experimental/feat-lib-fund.cc: Likewise.
102
103 PR libstdc++/71771
104 * include/bits/stl_iterator.h
105 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
106 define for C++98 mode.
107 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
108 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
109 -std=gnu++98.
110 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
111 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
112 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
113 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
114 difference operator.
115 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
116 difference operator for C++98.
117 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
118
119 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
120 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
121 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
122 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
123 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
124 Likewise.
125 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
126 _GLIBCXX14_CONSTEXPR.
127 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
128 * include/std/array (array::begin, array::end, array::rbegin)
129 (array::rend, array::cbegin, array:cend, array::crbegin)
130 (array::crend, array::operator[], array::at, array::front)
131 (array::back, array::data): Likewise.
132 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
133 with separate tests for C++11, C++14, and C++17.
134 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
135 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
136 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
137
138 2016-08-22 Tim Shen <timshen@google.com>
139
140 Split _M_dfs() into smaller functions.
141 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
142 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
143 (_M_handle_line_end_assertion, _M_handle_word_boundary)
144 (_M_handle_subexpr_lookahead, _M_handle_match)
145 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
146 Add separate function declarations.
147 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
148
149 2016-08-22 Gleb Natapov <gleb@scylladb.com>
150
151 PR libstdc++/68297
152 * config/abi/pre/gnu-versioned-namespace.ver: Export
153 __cxa_init_primary_exception and std::exception_ptr(void*).
154 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
155 export __cxa_init_primary_exception and std::exception_ptr(void*).
156 * include/Makefile.am: Add new headers.
157 * include/Makefile.in: Regenerate.
158 * libsupc++/Makefile.am: Add new headers.
159 * libsupc++/Makefile.in: Regenerate.
160 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
161 * libsupc++/cxxabi_init_exception.h: New header.
162 (__cxa_init_primary_exception): Declare.
163 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
164 (__cxa_throw): Use __cxa_init_primary_exception.
165 * libsupc++/exception (std::exception): Move to ...
166 * libsupc++/exception.h: New header.
167 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
168 friend declaration.
169 (__exception_ptr::__dest_thunk): New function template.
170 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
171 Use __cxa_allocate_exception and __cxa_init_primary_exception to
172 create exception_ptr.
173 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
174 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
175
176 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
177
178 * doc/xml/api.xml: Replace hardcoded links for specific versions with
179 link to docs for all releases.
180 * doc/html/*: Regenerate.
181
182 PR libstdc++/77322
183 * doc/xml/manual/intro.xml: Document DR 2062 change.
184 * include/std/functional (function::swap): Add noexcept.
185 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
186 * testsuite/20_util/function/77322.cc: New test.
187
188 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
189
190 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
191 *-*-solaris* instead of -pthreads.
192 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
193 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
194 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
195 * testsuite/23_containers/list/pthread1.cc: Likewise.
196 * testsuite/23_containers/list/pthread5.cc: Likewise.
197 * testsuite/23_containers/map/pthread6.cc: Likewise.
198 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
199 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
200 * testsuite/30_threads/shared_mutex/*: Likewise.
201 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
202 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
203 default_weaktoshared.cc: Likewise.
204 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
205 mutex_weaktoshared.cc: Likewise.
206 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
207 dg-require-effective-target instead of using -std option.
208 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
209 Likewise.
210 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
211 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
212 Likewise.
213 * testsuite/30_threads/async/*: Likewise.
214 * testsuite/30_threads/call_once/*: Likewise.
215 * testsuite/30_threads/condition_variable/*: Likewise.
216 * testsuite/30_threads/condition_variable_any/*: Likewise.
217 * testsuite/30_threads/future/*: Likewise.
218 * testsuite/30_threads/lock/*: Likewise.
219 * testsuite/30_threads/mutex/*: Likewise.
220 * testsuite/30_threads/packaged_task/*: Likewise.
221 * testsuite/30_threads/promise/*: Likewise.
222 * testsuite/30_threads/recursive_mutex/*: Likewise.
223 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
224 * testsuite/30_threads/shared_future/*: Likewise.
225 * testsuite/30_threads/shared_lock/*: Likewise.
226 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
227 * testsuite/30_threads/this_thread/*: Likewise.
228 * testsuite/30_threads/thread/*: Likewise.
229 * testsuite/30_threads/timed_mutex/*: Likewise.
230 * testsuite/30_threads/try_lock/*: Likewise.
231 * testsuite/30_threads/unique_lock/*: Likewise.
232
233 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
234 * doc/html/*: Regenerate.
235 * include/experimental/functional (_Not_fn, not_fn): Match C++17
236 semantics.
237 * include/std/functional (_Not_fn, not_fn): Define for C++17.
238 * testsuite/20_util/not_fn/1.cc: New.
239 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
240 Remove test for volatile-qualified wrapper.
241
242 * include/std/atomic (atomic::is_always_lock_free): Define.
243 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
244 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
245 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
246 * doc/xml/manual/status_cxx2017.xml: Update status.
247 * doc/html/*: Regenerate.
248
249 * include/experimental/tuple (apply): Qualify call to __apply_impl.
250 * include/std/tuple (apply): Likewise.
251 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
252 C++17 mode.
253 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
254 * testsuite/experimental/type_traits/value.cc: Likewise.
255
256 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
257 and variant.
258 * doc/html/*: Regenerate.
259
260 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
261
262 Implement the latest proposed resolution of LWG 2756.
263 * include/std/optional (Optional_base(const _Tp&))
264 (Optional_base(_Tp&&), using _Base::_Base): Remove.
265 (optional(nullopt_t)): New.
266 (optional(_Up&&)): Invoke base directly with in_place
267 rather than creating a temporary, add default template
268 argument, change constraints.
269 (optional(const optional<_Up>&)): Invoke base directly
270 with in_place, remove unnecessary constraints.
271 (optional(optional<_Up>&& __t)): Likewise.
272 (optional(in_place_t, _Args&&...)): New.
273 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
274 (operator=(_Up&&)): Add default template argument, change constraints.
275 (operator=(const optional<_Up>&)): Put is_same first in the
276 constraints.
277 (operator=(optional<_Up>&&)): Likewise.
278 * testsuite/20_util/optional/assignment/5.cc: Add a test to
279 verify assignment from something that can't be perfect-forwarded.
280 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
281 that a nested optional is disengaged when constructed
282 from a disengaged element type, and to verify that assignments
283 from an engaged element type engage the optional.
284
285 2016-08-18 Tim Shen <timshen@google.com>
286
287 Implement <variant>
288
289 * include/Makefile.am: Add new file std/variant.
290 * include/Makefile.in: Generated from Makefile.am.
291 * include/bits/enable_special_members.h: Add a tag type to allow
292 the construction in non-default constructor.
293 * include/bits/uses_allocator.h: Add convenience traits to
294 detect constructibility.
295 * include/std/variant: Implement <variant>.
296 * testsuite/20_util/variant/compile.cc: Compile-time tests.
297 * testsuite/20_util/variant/run.cc: Runtime tests.
298
299 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
300
301 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
302 (test.new_tests): Rewrite section.
303 (tests.dg.directives): New section.
304 * doc/html/*: Regenerate.
305
306 * doc/xml/manual/test.xml: Improve documentation of test targets.
307 Document new-abi-baseline, check-debug, and check-parallel targets.
308
309 * doc/xml/manual/build_hacking.xml: New section on shared library
310 versioning.
311
312 * doc/xml/manual/build_hacking.xml: Improve markup.
313 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
314 to "Testing".
315 * doc/xml/faq.xml: Change link text to "Testing".
316
317 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
318 dg-options directive.
319
320 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
321
322 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
323 directive and use effective target instead of dg-options.
324
325 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
326 instead of -std in dg-options.
327 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
328 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
329 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
330 * testsuite/20_util/hash/quality.cc: Likewise.
331 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
332 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
333 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
334 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
335 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
336 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
337
338 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
339 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
340 * testsuite/27_io/rvalue_streams.cc: Likewise.
341
342 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
343
344 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
345 Remove duplicate dg-options directive.
346
347 * testsuite/ext/profile/all.cc: Use effective target instead of
348 -std=gnu++11. Use dg-additional-options instead of repeating options.
349
350 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
351 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
352 instead of dg-excess-errors.
353
354 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
355 test for C++17.
356 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
357 * testsuite/experimental/ratio/value.cc: Likewise.
358 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
359 C++17.
360 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
361 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
362 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
363 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
364 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
365 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
366 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
367 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
368 * testsuite/tr1/5_numerical_facilities/special_functions/
369 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
370 C++17 compatibility.
371
372 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
373 expected signatures for C++14 compatibility.
374
375 PR libstdc++/77264
376 * include/bits/basic_string.h (operator=(__sv_type)
377 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
378 (replace(size_type, size_type, __sv_type))
379 (replace(const_iterator, const_iterator, __sv_type))
380 (find(__sv_type, size_type), rfind(__sv_type, size_type))
381 (compare(size_type, size_type, __sv_type)): Reformat.
382 (_If_sv): Define helper for SFINAE constaints.
383 (append(const _Tp&, size_type, size_type))
384 (assign(const _Tp&, size_type, size_type))
385 (insert(size_type, const _Tp&, size_type, size_type))
386 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
387 Use _If_sv.
388 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
389 SFINAE constraints.
390 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
391 Likewise.
392 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
393 Likewise.
394 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
395 Likewise.
396 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
397 Likewise.
398 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
399 Likewise.
400 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
401 Likewise.
402 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
403 Likewise.
404 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
405 Likewise.
406 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
407 Likewise.
408 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
409 Likewise.
410
411 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
412
413 PR libstdc++/72847
414 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
415 pointers to start and end of storage.
416 * testsuite/23_containers/vector/bool/72847.cc: New test.
417 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
418 _M_finish after deallocating.
419 (vector<bool>::_M_fill_insert): Likewise.
420 (vector<bool>::_M_insert_range): Likewise.
421 (vector<bool>::_M_insert_aux): Likewise.
422
423 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
424
425 Implement LWG 2744 and LWG 2754.
426 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
427 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
428 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
429 Likewise.
430 (emplace(_Args&&...)): Likewise.
431 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
432 * include/std/utility: (__is_in_place_type_impl): New.
433 (__is_in_place_type): Likewise.
434 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
435 emplace.
436 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
437 in_place constructor.
438 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
439 * testsuite/20_util/any/requirements.cc: Add a test for
440 in_place-constructing a non-default-constructible type.
441
442 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
443
444 Add a feature macro for C++17 make_from_tuple.
445 * include/std/tuple (__cpp_lib_make_from_tuple): New.
446 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
447 Qualify the call to get<>().
448 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
449
450 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
451
452 * src/filesystem/ops.cc: Always include ostream and
453 ext/stdio_filebuf.h.
454 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
455 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
456 sendfile fails with ENOSYS or EINVAL.
457
458 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
459
460 PR libstdc++/72840
461 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
462 syntax.
463
464 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
465
466 Implement C++17 make_from_tuple.
467 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
468 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
469
470 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
471
472 Implement LWG 2758.
473 * include/bits/basic_string.h
474 (append(__sv_type, size_type, size_type)): Turn into a template,
475 change parameter type, constrain, add a conversion to __sv_type
476 from the dependent parameter type.
477 (assign(__sv_type, size_type, size_type)): Likewise.
478 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
479 (replace(size_type, size_type, __sv_type, size_type, size_type)):
480 Likewise.
481 (compare(size_type, size_type,__sv_type, size_type, size_type)):
482 Likewise.
483 * testsuite/21_strings/basic_string/lwg2758.cc: New.
484
485 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
486
487 * doc/xml/manual/status_cxx2017.xml: Update status table.
488 * doc/html/manual/status.html: Regenerate.
489
490 * testsuite/lib/libstdc++.exp: Fix typo in comment.
491
492 PR libstdc++/72820
493 * include/std/functional (_Function_base::_Base_manager::_M_clone):
494 Qualify new operator.
495 * testsuite/20_util/function/cons/72820.cc: New test.
496
497 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
498 * doc/html/manual/status.html: Regenerate.
499 * include/Makefile.am: Add new header.
500 * include/Makefile.in: Regenerate.
501 * include/bits/invoke.h: New header.
502 (__invoke): Make constexpr. Add && to types in exception specification.
503 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
504 names. Include <bits/invoke.h> and use std::__invoke.
505 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
506 new header.
507 (invoke): Add && to types in exception specification.
508 * include/std/tuple (apply, __apply_impl): Define for C++17.
509 * testsuite/20_util/tuple/apply/1.cc: New test.
510 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
511 lineno.
512
513 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
514
515 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
516 * doc/html/manual/status.html: Regenerate.
517
518 * include/std/chrono (floor, ceil, round, abs): New for C++17.
519 * testsuite/20_util/duration_cast/rounding.cc: New test.
520 * testsuite/20_util/time_point_cast/rounding.cc: New test.
521 * doc/xml/manual/status_cxx2017.xml: Update status table.
522 * doc/html/manual/status.html: Regenerate.
523 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
524 dg-error lineno.
525 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
526 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
527 * testsuite/20_util/duration/literals/range.cc: Likewise.
528
529 * include/std/functional (__callable_functor): Remove.
530 (_Function_handler::_M_invoke): Use __invoke instead of
531 __callable_functor or mem_fn.
532 (function::_Callable): Use lvalue in result_of expression.
533 (function): Remove TODO comments about allocators.
534 * testsuite/20_util/function/cons/refqual.cc: New test.
535
536 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
537
538 * doc/xml/manual/status_cxx2017.xml: Update status table.
539 * include/std/functional (__inv_unwrap): Move to <type_traits>.
540 (__invoke_impl): Remove exception specifications.
541 (__invoke, invoke): Add exception specifications using
542 __is_nothrow_callable.
543 * include/std/type_traits (__inv_unwrap): Move from <functional>.
544 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
545 (__is_callable, __is_nothrow_callable): New traits.
546 (is_callable, is_callable_v): New C++17 traits.
547 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
548 * testsuite/20_util/is_callable/requirements/
549 explicit_instantiation.cc: New test.
550 * testsuite/20_util/is_callable/requirements/
551 explicit_instantiation_ext.cc: New test.
552 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
553 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
554 test.
555 * testsuite/20_util/is_callable/value.cc: New test.
556 * testsuite/20_util/is_callable/value_ext.cc: New test.
557 * testsuite/20_util/is_nothrow_callable/requirements/
558 explicit_instantiation.cc: New test.
559 * testsuite/20_util/is_nothrow_callable/requirements/
560 explicit_instantiation_ext.cc: New test.
561 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
562 New test.
563 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
564 New test.
565 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
566 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
567
568 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
569 * doc/html/manual/status.html: Regenerate.
570
571 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
572 effective target not dg-options. Move check for feature-test macro to:
573 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
574 New test.
575
576 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
577 (__invfwd): Adjust.
578 (__invoke_impl): Remove unused template parameters.
579 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
580 parameter.
581 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
582 and test __invoke extension for C++11.
583
584 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
585
586 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
587 Define feature-test macro.
588 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
589 for the macro.
590
591 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
592 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
593 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
594 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
595 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
596
597 * include/std/utility (as_const): Define.
598 * testsuite/20_util/as_const/1.cc: New test.
599 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
600
601 * include/bits/shared_ptr.h (owner_less): Add default template
602 argument.
603 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
604 specialization.
605 (owner_less<void>): Define specialization.
606 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
607 Update value.
608 * testsuite/20_util/owner_less/void.cc: New test.
609 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
610
611 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
612 Define feature-test macro.
613 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
614 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
615 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
616 (__cpp_lib_type_trait_variable_templates): Define.
617
618 * include/bits/stl_function.h: Remove commented-out macro.
619 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
620 Define feature-test macro.
621 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
622
623 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
624 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
625 true.
626 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
627 do #error for C++17.
628 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
629 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
630 * include/tr1/bessel_function.tcc: Likewise.
631 * include/tr1/beta_function.tcc: Likewise.
632 * include/tr1/cmath: Likewise.
633 * include/tr1/ell_integral.tcc: Likewise.
634 * include/tr1/exp_integral.tcc: Likewise.
635 * include/tr1/gamma.tcc: Likewise.
636 * include/tr1/hypergeometric.tcc: Likewise.
637 * include/tr1/legendre_function.tcc: Likewise.
638 * include/tr1/modified_bessel_func.tcc: Likewise.
639 * include/tr1/poly_hermite.tcc: Likewise.
640 * include/tr1/poly_laguerre.tcc: Likewise.
641 * include/tr1/riemann_zeta.tcc: Likewise.
642 * include/tr1/special_function_util.h: Likewise.
643 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
644
645 * include/std/type_traits (has_trivial_default_constructor): Remove.
646 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
647 * testsuite/20_util/has_trivial_copy_assign/requirements/
648 explicit_instantiation.cc: Remove test.
649 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
650 line number.
651 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
652 Likewise.
653 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
654 * testsuite/20_util/has_trivial_copy_constructor/requirements/
655 explicit_instantiation.cc: Likewise.
656 * testsuite/20_util/has_trivial_copy_constructor/requirements/
657 typedefs.cc: Likewise.
658 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
659 * testsuite/20_util/has_trivial_default_constructor/requirements/
660 explicit_instantiation.cc: Likewise.
661 * testsuite/20_util/has_trivial_default_constructor/requirements/
662 typedefs.cc: Likewise.
663 * testsuite/20_util/has_trivial_default_constructor/value.cc:
664 Likewise.
665 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
666 Check has_trivial_default_constructor, has_trivial_copy_constructor,
667 and has_trivial_copy_assign are not defined.
668 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
669 tests.
670 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
671 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
672 dg-error line number.
673 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
674 Likewise.
675
676 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
677
678 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
679 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
680 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
681 Likewise.
682 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
683 Likewise.
684 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
685 Likewise.
686 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
687 Likewise.
688 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
689 Likewise.
690 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
691 Likewise.
692
693 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
694 comments.
695
696 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
697 dg-error to relevant line.
698 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
699 Likewise.
700 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
701
702 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
703
704 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
705 options are present that aren't valid for C.
706 * testsuite/abi/header_cxxabi.c: Likewise.
707
708 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
709 check_value.cc: Do not add special functions to namespace std in TR1
710 test.
711
712 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
713 run for C++11 and later.
714 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
715 Likewise.
716 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
717 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
718 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
719 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
720 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
721 Likewise.
722 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
723 Likewise.
724 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
725 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
726 Likewise.
727 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
728 Likewise.
729 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
730 Likewise.
731 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
732 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
733 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
734 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
735 * testsuite/special_functions/03_beta/compile.cc: Likewise.
736 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
737 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
738 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
739 Likewise.
740 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
741 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
742 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
743 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
744 Likewise.
745 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
746 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
747 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
748 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
749 Likewise.
750 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
751 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
752 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
753 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
754 Likewise.
755 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
756 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
757 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
758 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
759 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
760 Likewise.
761 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
762 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
763 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
764 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
765 Likewise.
766 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
767 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
768 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
769 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
770 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
771 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
772 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
773 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
774 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
775 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
776 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
777 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
778 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
779 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
780 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
781 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
782 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
783 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
784 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
785 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
786 * testsuite/special_functions/14_expint/compile.cc: Likewise.
787 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
788 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
789 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
790 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
791 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
792 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
793 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
794 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
795 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
796 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
797 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
798 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
799 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
800 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
801 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
802 Likewise.
803 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
804 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
805 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
806 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
807 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
808 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
809 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
810 * testsuite/special_functions/20_sph_legendre/check_value.cc:
811 Likewise.
812 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
813 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
814 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
815 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
816 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
817 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
818
819 * testsuite/tr1/5_numerical_facilities/special_functions/
820 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
821 of [[gnu::unused]].
822 * testsuite/tr1/5_numerical_facilities/special_functions/
823 09_cyl_bessel_j/check_value.cc: Likewise.
824 * testsuite/tr1/5_numerical_facilities/special_functions/
825 10_cyl_bessel_k/check_value.cc: Likewise.
826 * testsuite/tr1/5_numerical_facilities/special_functions/
827 11_cyl_neumann/check_value.cc: Likewise.
828 * testsuite/tr1/5_numerical_facilities/special_functions/
829 21_sph_bessel/check_value.cc: Likewise.
830 * testsuite/tr1/5_numerical_facilities/special_functions/
831 23_sph_neumann/check_value.cc: Likewise.
832
833 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
834
835 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
836 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
837 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
838 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
839 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
840 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
841
842 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
843
844 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
845 test if -flto used.
846
847 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
848 additional flags for compiling libtestc++.a objects.
849
850 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
851
852 * include/bits/basic_string.h (data() const): Update comment.
853 (data()): Add non-const overload for C++17.
854 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
855 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
856
857 * include/bits/basic_string.tcc: Disable explicit instantiation
858 declarations for C++17.
859
860 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
861 ignored "xfail" from { dg-do compile { xfail selector } } directive.
862 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
863 Likewise.
864 * testsuite/26_numerics/headers/cmath/
865 c99_classification_macros_c++11.cc: Likewise.
866 * testsuite/26_numerics/headers/cmath/
867 c99_classification_macros_c++98.cc: Likewise.
868 * testsuite/26_numerics/headers/cmath/
869 c99_classification_macros_c.cc: Likewise.
870
871 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
872 for different construct/destroy counts in C++98 mode.
873
874 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
875
876 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
877 later.
878 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
879 Likewise.
880
881 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
882 C++98-compatible initialization for array.
883
884 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
885 unused header and variable from compile-only test.
886 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
887 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
888 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
889 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
890 Likewise.
891
892 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
893 Remove duplicate dg-options directive.
894
895 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
896 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
897
898 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
899 linker options from compile-only tests.
900 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
901 Likewise.
902
903 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
904 supported for C++11 and later.
905 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
906 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
907
908 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
909
910 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
911
912 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
913
914 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
915 compile-only test.
916
917 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
918 Ensure test is compiled with optimization.
919
920 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
921 Adjust dg-prune-output pattern for error in C++98 mode.
922
923 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
924 run for C++11 or later.
925
926 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
927 test to not rely on GNU extension (escaped normal characters in POSIX
928 BRE). Enable tests for other strings which are now supported.
929
930 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
931 c++11 instead of setting -std=gnu++14.
932
933 PR libstdc++/72745
934 * include/std/array (get): Use positive message for static assertions.
935 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
936 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
937 specialization for invalid indices, with static assertion.
938 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
939
940 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
941 dg-error to relevant line.
942 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
943 Likewise.
944 * testsuite/23_containers/forward_list/requirements/dr438/
945 assign_neg.cc: Likewise.
946 * testsuite/23_containers/forward_list/requirements/dr438/
947 constructor_1_neg.cc: Likewise.
948 * testsuite/23_containers/forward_list/requirements/dr438/
949 constructor_2_neg.cc: Likewise.
950 * testsuite/23_containers/forward_list/requirements/dr438/
951 insert_neg.cc: Likewise.
952 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
953 Likewise.
954 * testsuite/26_numerics/random/linear_congruential_engine/
955 requirements/non_uint_neg.cc: Likewise.
956 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
957 Likewise. Also test for std::atomic_address.
958
959 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
960
961 Add missing variable traits, fix testsuite failures.
962 * include/bits/uses_allocator.h (uses_allocator_v): New.
963 * include/std/functional (is_bind_expression_v, is_placeholder_v):
964 Likewise.
965 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
966 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
967 * testsuite/20_util/duration/literals/range.cc: Likewise.
968 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
969 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
970 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
971 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
972 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
973 Likewise.
974 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
975 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
976 New.
977
978 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
979
980 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
981 not test 128-bit types.
982 * testsuite/20_util/is_floating_point/value.cc: Likewise.
983 * testsuite/20_util/is_integral/value.cc: Likewise.
984 * testsuite/20_util/is_signed/value.cc: Likewise.
985 * testsuite/20_util/is_unsigned/value.cc: Likewise.
986 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
987 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
988 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
989 Likewise.
990 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
991 Likewise.
992
993 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
994
995 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
996
997 Implement C++17 variable templates for type traits.
998 * include/std/chrono (treat_as_floating_point_v): New.
999 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1000 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1001 (ratio_greater_equal_v): Likewise.
1002 * include/std/system_error (is_error_code_enum_v)
1003 (is_error_condition_enum_v): Likewise.
1004 * include/std/tuple (tuple_size_v): Likewise.
1005 * type_traits (conjunction_v, disjunction_v, negation_v)
1006 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1007 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1008 (is_rvalue_reference_v, is_member_object_pointer_v)
1009 (is_member_function_pointer_v, is_enum_v, is_union_v)
1010 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1011 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1012 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1013 (is_trivially_copyable_v, is_standard_layout_v)
1014 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1015 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1016 (is_constructible_v, is_default_constructible_v)
1017 (is_copy_constructible_v, is_move_constructible_v)
1018 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1019 (is_destructible_v, is_trivially_constructible_v)
1020 (is_trivially_default_constructible_v)
1021 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1022 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1023 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1024 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1025 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1026 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1027 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1028 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1029 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1030 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1031 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1032 Likewise.
1033 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1034 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1035 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1036
1037 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1038
1039 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1040 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1041 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1042
1043 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1044
1045 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1046 * doc/html/manual/abi.html: Regenerate.
1047
1048 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1049 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1050 symbols.
1051 * configure: Regenerate.
1052 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1053
1054 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1055 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1056 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1057 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1058 Likewise.
1059 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1060 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1061 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1062
1063 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1064
1065 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1066 Adjust dg-prune-output pattern for error in C++98 mode.
1067 * testsuite/23_containers/deque/requirements/dr438/
1068 constructor_1_neg.cc: Likewise.
1069 * testsuite/23_containers/deque/requirements/dr438/
1070 constructor_2_neg.cc: Likewise.
1071 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1072 Likewise.
1073 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1074 Likewise.
1075 * testsuite/23_containers/list/requirements/dr438/
1076 constructor_1_neg.cc: Likewise.
1077 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1078 Likewise.
1079 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1080 Likewise.
1081 * testsuite/23_containers/vector/requirements/dr438/
1082 constructor_1_neg.cc: Likewise.
1083 * testsuite/23_containers/vector/requirements/dr438/
1084 constructor_2_neg.cc: Likewise.
1085 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1086 Likewise.
1087
1088 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1089 for different construct/destroy counts in C++98 mode.
1090
1091 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1092 dg-options to dg-additional-options so that default options are used.
1093 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1094 Likewise.
1095 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1096 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1097 Likewise.
1098 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1099 Use dg-additional-options instead of repeating the common options.
1100
1101 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1102 dg-do compile directive.
1103 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1104 dg-do directive.
1105 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1106
1107 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1108
1109 Implement std::string_view and P0254r2,
1110 Integrating std::string_view and std::string.
1111 * include/Makefile.am: Add string_view and string_view.tcc
1112 to the exported headers.
1113 * include/Makefile.in: Likewise.
1114 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1115 (__sv_type): New.
1116 (basic_string(__sv_type, const _Alloc&)): Likewise.
1117 (operator=(__sv_type)): Likewise.
1118 (operator __sv_type()): Likewise.
1119 (operator+=(__sv_type)): Likewise.
1120 (append(__sv_type __sv)): Likewise.
1121 (append(__sv_type, size_type, size_type)): Likewise.
1122 (assign(__sv_type)): Likewise.
1123 (assign(__sv_type, size_type, size_type)): Likewise.
1124 (insert(size_type, __sv_type)): Likewise.
1125 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1126 (replace(size_type, size_type, __sv_type)): Likewise.
1127 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1128 Likewise.
1129 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1130 (find(__sv_type, size_type)): Likewise.
1131 (rfind(__sv_type, size_type)): Likewise.
1132 (find_first_of(__sv_type, size_type)): Likewise.
1133 (find_last_of(__sv_type, size_type)): Likewise.
1134 (find_first_not_of(__sv_type, size_type)): Likewise.
1135 (find_last_not_of(__sv_type, size_type)): Likewise.
1136 (compare(__sv_type)): Likewise.
1137 (compare(size_type, size_type, __sv_type)): Likewise.
1138 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1139 Likewise.
1140 * include/bits/string_view.tcc: New.
1141 * include/std/string_view: Likewise.
1142 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1143 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1144 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1145 Likewise.
1146 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1147 Likewise.
1148 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1149 Likewise.
1150 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1151 Likewise.
1152 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1153 Likewise.
1154 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1155 Likewise.
1156 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1157 Likewise.
1158 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1159 Likewise.
1160 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1161 Likewise.
1162 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1163 Likewise.
1164 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1165 Likewise.
1166 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1167 Likewise.
1168 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1169 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1170 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1171 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1172 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1173 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1174 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1175 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1176 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1177 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1178 Likewise.
1179 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1180 Likewise.
1181 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1182 Likewise.
1183 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1184 Likewise.
1185 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1186 Likewise.
1187 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1188 Likewise.
1189 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1190 Likewise.
1191 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1192 Likewise.
1193 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1194 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1195 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1196 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1197 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1198 Likewise.
1199 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1200 Likewise.
1201 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1202 Likewise.
1203 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1204 Likewise.
1205 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1206 Likewise.
1207 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1208 Likewise.
1209 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1210 Likewise.
1211 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1212 Likewise.
1213 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1214 Likewise.
1215 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1216 Likewise.
1217 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1218 Likewise.
1219 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1220 Likewise.
1221 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1222 Likewise.
1223 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1224 Likewise.
1225 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1226 Likewise.
1227 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1228 Likewise.
1229 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1230 Likewise.
1231 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1232 Likewise.
1233 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1234 Likewise.
1235 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1236 Likewise.
1237 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1238 Likewise.
1239 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1240 Likewise.
1241 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1242 Likewise.
1243 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1244 Likewise.
1245 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1246 Likewise.
1247 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1248 Likewise.
1249 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1250 Likewise.
1251 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1252 Likewise.
1253 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1254 Likewise.
1255 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1256 Likewise.
1257 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1258 Likewise.
1259 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1260 Likewise.
1261 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1262 Likewise.
1263 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1264 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1265 Likewise.
1266 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1267 Likewise.
1268 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1269 Likewise.
1270 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1271 Likewise.
1272 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1273 Likewise.
1274 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1275 Likewise.
1276 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1277 Likewise.
1278 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1279 Likewise.
1280 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1281 Likewise.
1282 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1283 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1284
1285 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
1286
1287 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
1288
1289 2016-07-25 Georeth Chow <georeth2010@gmail.com>
1290
1291 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
1292 _S_concat enumerator.
1293 * testsuite/ext/rope/6.cc: New test.
1294
1295 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
1296
1297 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
1298 std::mt19937, std::thread and std::atomic to simplify test.
1299 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1300
1301 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
1302
1303 PR libstdc++/71964
1304 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1305 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
1306 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
1307 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
1308 * testsuite/23_containers/set/allocator/71964.cc: New test.
1309
1310 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
1311 delete[] instead of delete.
1312
1313 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
1314
1315 * include/experimental/propagate_const (propagate_const::__t): Rename
1316 to _M_t and remove comment. Qualify std::move and std::forward.
1317 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
1318
1319 * testsuite/23_containers/vector/zero_sized_allocations.cc:
1320 Define sized deallocation function.
1321 * testsuite/util/testsuite_new_operators.h:
1322 (operator delete(void*, const std::nothrow_t&)): Define nothrow
1323 deallocation function.
1324
1325 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
1326 reads past the end of strings.
1327 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
1328 Likewise.
1329 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
1330 invalid array accesses.
1331 * testsuite/experimental/string_view/operations/compare/char/1.cc:
1332 Fix read past the end of string.
1333 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
1334
1335 * testsuite/24_iterators/container_access.cc: Fix missing returns.
1336 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1337
1338 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
1339 leak) memory for arguments to placement delete.
1340 * testsuite/20_util/addressof/1.cc: Don't leak memory.
1341 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
1342 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
1343 Likewise.
1344
1345 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
1346
1347 * doc/xml/manual/intro.xml: Document DR 2684 status.
1348 * doc/html/*: Regenerate.
1349
1350 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
1351 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
1352 (atomic_uint64_t): Define (LWG 2441).
1353 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
1354 lines.
1355 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
1356 the new types.
1357 * doc/xml/manual/intro.xml: Document DR 2441 status.
1358
1359 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
1360 to use perfect forwarding (LWG 2328).
1361 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
1362 * doc/xml/manual/intro.xml: Document DR 2328 status.
1363
1364 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
1365 static objects for catching nullptr as pointer to member types.
1366
1367 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1368
1369 Clean up optional's comments.
1370 * include/std/optional: Remove incorrect section headers
1371 from comments when redundant, replace bare section
1372 headers with more descriptive comments.
1373
1374 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
1375
1376 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
1377 * include/bits/move.h: Likewise.
1378 * include/bits/postypes.h: Likewise.
1379 * include/debug/bitset: Likewise.
1380 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
1381 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
1382 comment.
1383 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
1384 * testsuite/util/thread/all.h: Likewise.
1385
1386 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
1387 and adjust comment.
1388
1389 PR c++/58796
1390 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
1391 nullptr match handlers of pointer type.
1392
1393 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
1394
1395 Implement C++17 P0025 clamp.
1396 * include/bits/algorithmfwd.h: Declare clamp overloads.
1397 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
1398 * testsuite/25_algorithms/clamp/1.cc: New test.
1399 * testsuite/25_algorithms/clamp/2.cc: New test.
1400 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
1401 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1402 1.cc: New test.
1403 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1404 pod.cc: New test.
1405
1406 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
1407
1408 Fix the constraints for any's assignment operator template to properly
1409 reject assignment from a non-copyable lvalue.
1410 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
1411 type for is_copy_constructible,
1412 * testsuite/20_util/any/requirements.cc: Add a test for
1413 non-copyable lvalues.
1414
1415 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
1416
1417 * include/experimental/functional: Include <parallel/algorithm> in
1418 Parallel Mode.
1419
1420 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
1421 for std::search.
1422
1423 PR libstdc++/70716
1424 * include/bits/forward_list.h (forward_list): Update doxygen comments
1425 to reflect allocator propagation semantics. Remove ambiguous
1426 statements about data being lost.
1427 * include/bits/stl_deque.h (deque): Likewise.
1428 * include/bits/stl_list.h (list): Likewise.
1429 * include/bits/stl_map.h (map): Likewise.
1430 * include/bits/stl_multimap.h (multimap): Likewise.
1431 * include/bits/stl_multiset.h (multiset): Likewise.
1432 * include/bits/stl_set.h (set): Likewise.
1433 * include/bits/stl_vector.h (vector): Likewise.
1434 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
1435 Likewise.
1436 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
1437 Likewise.
1438
1439 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
1440
1441 Implement P0032R3, Homogeneous interface for variant, any and optional,
1442 for the parts concerning any and optional.
1443 * include/std/any (_Storage()): Make constexpr and have it
1444 initialize _M_ptr.
1445 (any()): Make constexpr.
1446 (any(const any&)): Adjust.
1447 (any(any&&)): Likewise.
1448 (__any_constructible_t): New.
1449 (any(_ValueType&&)): Constrain.
1450 (any(in_place_type_t<_Tp>, _Args&&...)): New.
1451 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
1452 Likewise.
1453 (~any()): Adjust.
1454 (operator=(const any&)): Likewise.
1455 (operator=(any&&)): Likewise.
1456 (operator=(_ValueType&&)): Constrain.
1457 (emplace(_Args&&...)): New.
1458 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1459 (clear()): Remove.
1460 (reset()): New.
1461 (swap(any&)): Adjust.
1462 (empty()): Remove.
1463 (has_value()): New.
1464 (type()): Adjust.
1465 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
1466 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
1467 (make_any(_Args&&...)): Likewise.
1468 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
1469 * include/std/optional (in_place_t, in_place): Remove.
1470 (bad_optional_access): Add a comment referring to LEWG 72.
1471 (emplace(_Args&&...)): Constrain.
1472 (has_value()): New.
1473 (reset()): Likewise.
1474 (make_optional(_Args&&...)): Likewise.
1475 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
1476 * include/std/utility (in_place_tag): New.
1477 (__in_place, __in_place_type, __in_place_index): Likewise.
1478 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
1479 (in_place(__in_place*)): Likewise.
1480 (in_place(__in_place_type<_Tp>*)): Likewise.
1481 (in_place(__in_place_index<_Idx>*)): Likewise.
1482 * testsuite/20_util/any/assign/1.cc: Adjust.
1483 * testsuite/20_util/any/assign/emplace.cc: New.
1484 * testsuite/20_util/any/assign/self.cc: Adjust.
1485 * testsuite/20_util/any/cons/1.cc: Likewise.
1486 * testsuite/20_util/any/cons/in_place.cc: New.
1487 * testsuite/20_util/any/make_any.cc: Likewise.
1488 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1489 * testsuite/20_util/any/misc/swap.cc: Likewise.
1490 * testsuite/20_util/any/modifiers/1.cc: Likewise.
1491 * testsuite/20_util/any/requirements.cc: New.
1492 * testsuite/20_util/in_place/requirements.cc: Likewise.
1493 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
1494 * testsuite/20_util/optional/in_place.cc: Likewise.
1495 * testsuite/20_util/optional/make_optional.cc: Add tests for
1496 the new overloads of make_optional.
1497
1498 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1499
1500 Implement P0307R2, Making Optional Greater Equal Again.
1501 * include/experimental/optional (_Has_addressof): Fix the comment.
1502 * include/std/optional (_Has_addressof): Likewise.
1503 (operator=(_Up&&)): Constrain.
1504 (operator=(const optional<_Up>&)): Likewise.
1505 (operator=(optional<_Up>&&)): Likewise.
1506 (__optional_relop_t): New.
1507 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1508 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1509 Constrain and make transparent.
1510 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1511 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1512 Constrain and make transparent.
1513 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1514 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1515 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1516 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1517 (operator!=(const optional<_Tp>&, _Tp const&)):
1518 Constrain and make transparent.
1519 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1520 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1521 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1522 (operator>(const optional<_Tp>&, const _Tp&)):
1523 Constrain and make transparent.
1524 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1525 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1526 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1527 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1528 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1529 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1530 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1531 * testsuite/20_util/optional/relops/1.cc: Likewise.
1532 * testsuite/20_util/optional/relops/2.cc: Likewise.
1533 * testsuite/20_util/optional/relops/3.cc: Likewise.
1534 * testsuite/20_util/optional/relops/4.cc: Likewise.
1535 * testsuite/20_util/optional/requirements.cc: Add tests to verify
1536 that optional's relops are transparent and don't synthesize
1537 operators. Also test that assignment sfinaes.
1538
1539 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
1540
1541 PR libstdc++/71856
1542 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
1543 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
1544 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
1545 on _GLIBCXX_ASSERTIONS.
1546 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
1547 Include <unistd.h> for sleep.
1548 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
1549 * include/parallel/merge.h: Likewise.
1550 * include/parallel/multiway_merge.h: Likewise.
1551 * include/parallel/partition.h: Likewise.
1552 * include/parallel/queue.h: Likewise.
1553 * include/parallel/sort.h: Likewise.
1554 * testsuite/25_algorithms/headers/algorithm/
1555 parallel_algorithm_assert.cc: New.
1556
1557 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1558 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
1559 Forward to different overload.
1560
1561 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
1562 static.
1563
1564 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
1565
1566 Revert "Add non-const overload of std::string::data()".
1567
1568 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1569
1570 Implement P0307R2, Making Optional Greater Equal Again.
1571 * include/experimental/optional (_Has_addressof): Fix the comment.
1572 * include/std/optional (_Has_addressof): Likewise.
1573 (operator=(_Up&&)): Constrain.
1574 (operator=(const optional<_Up>&)): Likewise.
1575 (operator=(optional<_Up>&&)): Likewise.
1576 (__optional_relop_t): New.
1577 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1578 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1579 Constrain and make transparent.
1580 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1581 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1582 Constrain and make transparent.
1583 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1584 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1585 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1586 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1587 (operator!=(const optional<_Tp>&, _Tp const&)):
1588 Constrain and make transparent.
1589 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1590 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1591 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1592 (operator>(const optional<_Tp>&, const _Tp&)):
1593 Constrain and make transparent.
1594 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1595 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1596 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1597 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1598 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1599 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1600 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1601 * testsuite/20_util/optional/relops/1.cc: Likewise.
1602 * testsuite/20_util/optional/relops/2.cc: Likewise.
1603 * testsuite/20_util/optional/relops/3.cc: Likewise.
1604 * testsuite/20_util/optional/relops/4.cc: Likewise.
1605 * testsuite/20_util/optional/requirements.cc: Add tests to verify
1606 that optional's relops are transparent and don't synthesize
1607 operators. Also test that assignment sfinaes.
1608
1609 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
1610
1611 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
1612 New function.
1613 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
1614 instead of _M_data().
1615 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
1616 Likewise.
1617 (append(const basic_string&)): Likewise.
1618 (append(const basic_string&, size_type, size_type)): Likewise.
1619 (assign(const basic_string&, size_type, size_type)): Likewise.
1620 (insert(size_type, const basic_string&)): Likewise.
1621 (insert(size_type, const basic_string&, size_type, size_type)):
1622 Likewise.
1623 (replace(size_type, size_type, const basic_string&, size_type,
1624 size_type)): Likewise.
1625 (replace(__const_iterator, __const_iterator, const basic_string&)):
1626 Likewise.
1627 (c_str(), data()): Use c_str() instead of _M_data().
1628 (data()): Add non-const overload as per LWG 2391 and P0272R1.
1629 (compare(const basic_string&)): Use data() instead of _M_data().
1630 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
1631 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
1632 Pass raw pointers to _S_copy.
1633 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
1634 _S_assign.
1635 (find(const _CharT*, size_type, size_type)): Use data instead of
1636 _M_data().
1637 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
1638 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1639 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1640
1641 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
1642
1643 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
1644 * doc/xml/manual/intro.xml: Document DR 2458 status.
1645 * doc/html*: Regenerate.
1646
1647 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
1648 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
1649 Only include <array>.
1650 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
1651 Likewise.
1652 * doc/xml/manual/intro.xml: Document LWG 2212 support.
1653 * doc/html*: Regenerate.
1654
1655 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
1656 Add testcase from LWG 2164.
1657
1658 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
1659
1660 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
1661 to _M_realloc_insert.
1662 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
1663 (_M_realloc_insert): Declare new function.
1664 (_M_emplace_back_aux): Remove definition.
1665 * include/bits/vector.tcc (emplace_back(_Args...)):
1666 Use _M_realloc_insert.
1667 (insert(const_iterator, const value_type&)): Likewise.
1668 (_M_insert_rval, _M_emplace_aux): Likewise.
1669 (_M_emplace_back_aux): Remove declaration.
1670 (_M_realloc_insert): Define.
1671 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1672 Adjust expected results for emplacing an lvalue with reallocation.
1673
1674 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
1675
1676 Implement std::optional.
1677 * include/Makefile.am: Add optional to exported headers.
1678 * include/Makefile.in: Likewise.
1679 * include/std/optional: New.
1680 * testsuite/20_util/optional/typedefs.cc: Likewise.
1681 * testsuite/20_util/optional/relops/2.cc: Likewise.
1682 * testsuite/20_util/optional/relops/3.cc: Likewise.
1683 * testsuite/20_util/optional/relops/4.cc: Likewise.
1684 * testsuite/20_util/optional/relops/5.cc: Likewise.
1685 * testsuite/20_util/optional/relops/1.cc: Likewise.
1686 * testsuite/20_util/optional/relops/6.cc: Likewise.
1687 * testsuite/20_util/optional/nullopt.cc: Likewise.
1688 * testsuite/20_util/optional/in_place.cc: Likewise.
1689 * testsuite/20_util/optional/make_optional.cc: Likewise.
1690 * testsuite/20_util/optional/assignment/2.cc: Likewise.
1691 * testsuite/20_util/optional/assignment/3.cc: Likewise.
1692 * testsuite/20_util/optional/assignment/4.cc: Likewise.
1693 * testsuite/20_util/optional/assignment/5.cc: Likewise.
1694 * testsuite/20_util/optional/assignment/1.cc: Likewise.
1695 * testsuite/20_util/optional/assignment/6.cc: Likewise.
1696 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1697 * testsuite/20_util/optional/cons/default.cc: Likewise.
1698 * testsuite/20_util/optional/cons/move.cc: Likewise.
1699 * testsuite/20_util/optional/cons/value.cc: Likewise.
1700 * testsuite/20_util/optional/cons/copy.cc: Likewise.
1701 * testsuite/20_util/optional/requirements.cc: Likewise.
1702 * testsuite/20_util/optional/observers/2.cc: Likewise.
1703 * testsuite/20_util/optional/observers/3.cc: Likewise.
1704 * testsuite/20_util/optional/observers/4.cc: Likewise.
1705 * testsuite/20_util/optional/observers/5.cc: Likewise.
1706 * testsuite/20_util/optional/observers/1.cc: Likewise.
1707 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1708 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1709 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1710 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1711 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1712 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1713 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1714 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1715 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
1716 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
1717 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1718 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1719 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1720 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1721 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1722 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1723 * testsuite/20_util/optional/swap/1.cc: Likewise.
1724
1725 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
1726
1727 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
1728
1729 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
1730
1731 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
1732 * doc/html/*: Regenerate.
1733
1734 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
1735
1736 Implement std::any.
1737 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
1738 * include/Makefile.in: Likewise.
1739 * include/std/any: New.
1740 * testsuite/20_util/any/assign/1.cc: Likewise.
1741 * testsuite/20_util/any/assign/2.cc: Likewise.
1742 * testsuite/20_util/any/assign/self.cc: Likewise.
1743 * testsuite/20_util/any/cons/1.cc: Likewise.
1744 * testsuite/20_util/any/cons/2.cc: Likewise.
1745 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1746 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1747 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1748 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1749 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1750 * testsuite/20_util/any/misc/swap.cc: Likewise.
1751 * testsuite/20_util/any/modifiers/1.cc: Likewise.
1752 * testsuite/20_util/any/observers/type.cc: Likewise.
1753 * testsuite/20_util/any/typedefs.cc: Likewise.
1754
1755 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
1756
1757 Add a new header for diagnosing the use of C++17 facilities
1758 in pre-C++17 modes.
1759 * include/bits/c++17_warning.h: New.
1760
1761 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
1762
1763 Implement LWG 2451, optional<T> should 'forward' T's
1764 implicit conversions.
1765 * include/experimental/optional (__is_optional_impl, __is_optional):
1766 New.
1767 (optional()): Make constexpr and default.
1768 (optional(_Up&&), optional(const optional<_Up>&),
1769 optional(optional<_Up>&& __t): New.
1770 (operator=(_Up&&)): Constrain.
1771 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
1772 * testsuite/experimental/optional/cons/value.cc:
1773 Add tests for the functionality added by LWG 2451.
1774 * testsuite/experimental/optional/cons/value_neg.cc: New.
1775
1776 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
1777
1778 Implement LWG 2509,
1779 any_cast doesn't work with rvalue reference targets and cannot
1780 move with a value target.
1781 * include/experimental/any (any(_ValueType&&)): Constrain and
1782 add an overload that doesn't forward.
1783 (any_cast(any&&)): Constrain and add an overload that moves.
1784 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
1785 the functionality added by LWG 2509.
1786
1787 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
1788
1789 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
1790 New test.
1791 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
1792 test.
1793
1794 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
1795
1796 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
1797 Define inline. Forward to _M_emplace_aux.
1798 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
1799 (_M_insert_rval, _M_emplace_aux): Declare new functions.
1800 (_Temporary_value): New RAII type using allocator to construct/destroy.
1801 (_S_insert_aux_assign): Remove.
1802 (_M_insert_aux): Make non-variadic.
1803 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
1804 Use _Temporary_value.
1805 (emplace(const_iterator, _Args&&...)): Remove definition.
1806 (_M_insert_rval, _M_emplace_aux): Define.
1807 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
1808 (_M_fill_insert): Use _Temporary_value.
1809 * testsuite/23_containers/vector/allocator/construction.cc: New test.
1810 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1811 Adjust expected results for emplacing an lvalue with reallocation.
1812 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
1813 expected results to account for construction/destruction of temporary
1814 using allocator.
1815 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
1816
1817 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
1818
1819 PR libstdc++/71313
1820 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
1821 Call remove_all for children of a directory.
1822 * testsuite/experimental/filesystem/operations/create_directories.cc:
1823 Adjust.
1824
1825 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
1826
1827 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
1828 dg-error line numbers.
1829 * testsuite/23_containers/array/tuple_interface/
1830 tuple_element_debug_neg.cc: Likewise.
1831 * testsuite/25_algorithms/lexicographical_compare/debug/
1832 irreflexive_neg.cc: Remove.
1833
1834 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
1835
1836 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
1837 than specific target.
1838
1839 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
1840
1841 PR libstdc++/71640
1842 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
1843 friend declaration.
1844
1845 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
1846
1847 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
1848 zero-size array.
1849
1850 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1851
1852 * configure.host: Remove mep-* support.
1853
1854 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1855
1856 * configure: Regenerate.
1857 * configure.host: Remove support for knetbsd.
1858 * crossconfig.m4: Likewise.
1859
1860 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
1861
1862 PR libstdc++/71181
1863 * include/tr1/hashtable_policy.h
1864 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
1865 dereferenceable to avoid check on lower_bound result.
1866 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
1867 (_Prime_rehash_policy::_M_need_rehash): Likewise.
1868 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
1869 Always return a value greater than input value. Set _M_next_resize to
1870 max value when reaching highest prime number.
1871 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
1872 being now useless.
1873 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
1874 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
1875 (test02): New.
1876 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
1877 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
1878 Fix indentation.
1879
1880 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
1881
1882 PR libstdc++/71545
1883 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
1884 Remove irreflexive checks.
1885 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
1886 binary_search): Likewise.
1887 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
1888 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
1889 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
1890 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
1891 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
1892 Add constructor from array.
1893
1894 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
1895
1896 * include/debug/debug.h
1897 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
1898 (__glibcxx_requires_subscript): Move...
1899 * include/debug/assertions.h: ...here and add __builtin_expect.
1900 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
1901 * include/bits/stl_deque.h
1902 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
1903 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
1904 (std::deque<>::back()): Likewise.
1905 (std::deque<>::pop_front()): Likewise.
1906 (std::deque<>::pop_back()): Likewise.
1907 (std::deque<>::swap(deque&)): Add allocator check.
1908 * include/bits/stl_vector.h
1909 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
1910 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
1911 (std::vector<>::back()): Likewise.
1912 (std::vector<>::pop_back()): Likewise.
1913 (std::vector<>::swap(vector&)): Add allocator check.
1914
1915 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
1916
1917 Provide swappable traits (p0185r1)
1918 * include/std/type_traits (is_swappable, is_nothrow_swappable,
1919 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
1920 is_nothrow_swappable_v, is_swappable_with_v,
1921 is_nothrow_swappable_with_v): New.
1922 * include/bits/stl_pair.h: Use it as per p0185r1.
1923 * include/bits/stl_queue.h: Likewise.
1924 * include/bits/stl_stack.h: Likewise.
1925 * include/bits/unique_ptr.h: Likewise.
1926 * include/std/tuple: Likewise.
1927 * include/std/array: Likewise. Fix zero-size member swap.
1928 * include/bits/hashtable.h: Use __and_.
1929 * testsuite/20_util/is_nothrow_swappable/requirements/
1930 explicit_instantiation.cc: Change test options to std=gnu++17.
1931 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1932 Likewise.
1933 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1934 * testsuite/20_util/is_swappable/requirements/
1935 explicit_instantiation.cc: Likewise.
1936 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
1937 * testsuite/20_util/is_swappable/value.cc: Likewise.
1938 * testsuite/20_util/is_nothrow_swappable/requirements/
1939 explicit_instantiation_ext.cc: New.
1940 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
1941 New.
1942 * testsuite/20_util/is_nothrow_swappable/value.h: New.
1943 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
1944 * testsuite/20_util/is_nothrow_swappable_with/requirements/
1945 explicit_instantiation.cc: New.
1946 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1947 New.
1948 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
1949 * testsuite/20_util/is_swappable/requirements/
1950 explicit_instantiation_ext.cc: New.
1951 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
1952 * testsuite/20_util/is_swappable/value.h: New.
1953 * testsuite/20_util/is_swappable/value_ext.cc: New.
1954 * testsuite/20_util/is_swappable_with/requirements/
1955 explicit_instantiation.cc: New.
1956 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
1957 * testsuite/20_util/is_swappable_with/value.cc: New.
1958 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
1959 dg-error line numbers.
1960 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1961 Likewise.
1962
1963 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
1964
1965 * include/std/array: Remove trailing whitespace.
1966 * include/std/atomic: Likewise.
1967 * include/std/bitset: Likewise.
1968 * include/std/chrono: Likewise.
1969 * include/std/complex: Likewise.
1970 * include/std/condition_variable: Likewise.
1971 * include/std/fstream: Likewise.
1972 * include/std/functional: Likewise.
1973 * include/std/future: Likewise.
1974 * include/std/iomanip: Likewise.
1975 * include/std/iosfwd: Likewise.
1976 * include/std/istream: Likewise.
1977 * include/std/limits: Likewise.
1978 * include/std/ratio: Likewise.
1979 * include/std/scoped_allocator: Likewise.
1980 * include/std/sstream: Likewise.
1981 * include/std/stdexcept: Likewise.
1982 * include/std/string: Likewise.
1983 * include/std/system_error: Likewise.
1984 * include/std/thread: Likewise.
1985 * include/std/tuple: Likewise.
1986 * include/std/type_traits: Likewise.
1987 * include/std/utility: Likewise.
1988 * include/std/valarray: Likewise.
1989 * include/std/vector: Likewise.
1990
1991 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
1992 new overloaded functions.
1993 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
1994 to avoid creating a redundant temporary.
1995 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
1996 test.
1997
1998 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
1999
2000 * include/bits/stl_deque.h
2001 (std::deque<>::operator=): Call _M_assign_aux.
2002 (std::deque<>::assign(initializer_list<>)): Likewise.
2003 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2004 (std::deque<>::insert(const_iterator, initializer_list<>)):
2005 Call _M_range_insert_aux.
2006 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2007 Likewise.
2008 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2009 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2010 * include/bits/deque.tcc
2011 (std::deque<>::operator=): Call _M_range_insert_aux.
2012 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2013 Likewise.
2014 * include/bits/stl_vector.h
2015 (std::vector<>::operator=): Call _M_assign_aux.
2016 (std::vector<>::assign(initializer_list<>)): Likewise.
2017 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2018 (std::vector<>::insert(const_iterator, initializer_list<>)):
2019 Call _M_range_insert.
2020 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2021
2022 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2023
2024 * include/std/tuple (_Head_base<>): Default specialization condition at
2025 type declaration.
2026
2027 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2028
2029 Support allocators in tuples of zero size.
2030 * include/std/tuple (tuple<>::tuple(),
2031 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2032 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2033 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2034
2035 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2036
2037 PR libstdc++/71320
2038 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2039 Add or remove permissions according to perms argument.
2040 * testsuite/experimental/filesystem/operations/permissions.cc: New
2041 test.
2042
2043 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2044
2045 Protect allocator-overloads of tuple-from-tuple constructors
2046 from cases that would create dangling references.
2047 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2048 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2049 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2050 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2051
2052 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2053
2054 * doc/xml/manual/backwards_compatibility.xml: Adjust
2055 lists.debian.org link to https.
2056 * doc/html/manual/backwards.html: Regenerate.
2057
2058 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2059
2060 * doc/xml/manual/abi.xml: Adjust URL to use https.
2061 * doc/html/manual/*: Regenerate.
2062
2063 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2064
2065 PR libstdc++/66338
2066 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2067 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2068 check for _NotSameTuple.
2069 * include/std/tuple (_TMCT): New.
2070 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2071 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2072 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2073 const tuple<_UElements...>&)): Likewise.
2074 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2075 tuple<_UElements...>&&)): Likewise.
2076 * testsuite/20_util/tuple/cons/66338.cc: New.
2077
2078 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2079
2080 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2081 * configure: Regenerate.
2082 * config.h.in: Regenerate.
2083
2084 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2085 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2086 Remove const qualification on function. Replace
2087 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2088 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2089 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2090
2091 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2092
2093 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2094 * include/bits/hashtable_policy.h
2095 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2096 having load factor management.
2097 (_Mask_range_hashing): New.
2098 (__clp2): New.
2099 (_Power2_rehash_policy): New.
2100 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2101 partial specializations only depend on whether iterators are constant
2102 or not.
2103 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2104 test new hash policy.
2105 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2106 Likewise.
2107 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2108 Likewise.
2109 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2110 Likewise.
2111 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2112 Likewise.
2113 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2114 New.
2115 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2116 using the new hash policy.
2117 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2118
2119 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2120
2121 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2122
2123 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2124
2125 * include/debug/safe_iterator.h
2126 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2127 operator ->.
2128 * include/debug/safe_local_iterator.h
2129 (_Safe_local_iterator<>::operator->()): Likewise.
2130
2131 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2132
2133 * testsuite/experimental/memory_resource/1.cc: Add required argument
2134 to dg-require-atomic-builtins.
2135
2136 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2137
2138 PR libstdc++/71073
2139 * include/debug/bitset: Add #pragma GCC system_header.
2140 * include/debug/deque: Likewise.
2141 * include/debug/list: Likewise.
2142 * include/debug/map: Likewise.
2143 * include/debug/set: Likewise.
2144 * include/debug/string: Likewise.
2145 * include/debug/unordered_map: Likewise.
2146 * include/debug/unordered_set: Likewise.
2147 * include/debug/vector: Likewise.
2148 * include/debug/functions.h: Adjust whitespace.
2149
2150 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2151
2152 PR libstdc++/71081
2153 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2154
2155 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2156
2157 PR libstdc++/71049
2158 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2159 exception constructors with __sso_string parameters.
2160
2161 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2162
2163 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2164 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2165 Test begin and end functions.
2166 * testsuite/experimental/filesystem/iterators/
2167 recursive_directory_iterator.cc: Likewise.
2168
2169 PR libstdc++/71038
2170 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2171 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2172
2173 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2174 Overload operator* to move from rvalues.
2175
2176 PR libstdc++/71036
2177 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2178 * testsuite/experimental/filesystem/operations/create_directory.cc:
2179 New test.
2180
2181 PR libstdc++/71037
2182 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2183 base path to exception.
2184 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2185 paths contained in exception.
2186
2187 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2188 using declaration.
2189
2190 PR libstdc++/71005
2191 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2192 New type.
2193 (directory_iterator::operator++(int)): Return proxy.
2194 (recursive_directory_iterator::operator++(int)): Likewise.
2195 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2196 Test post-increment.
2197 * testsuite/experimental/filesystem/iterators/
2198 recursive_directory_iterator.cc: Likewise.
2199
2200 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2201
2202 PR libstdc++/71004
2203 * testsuite/experimental/filesystem/iterators/
2204 recursive_directory_iterator.cc: Fix test02 to not call member
2205 functions on invalid iterator, and use VERIFY not assert.
2206
2207 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2208
2209 Avoid endless run-time recursion for copying single-element
2210 tuples where the element type is by-value constructible
2211 from any type.
2212 * include/std/tuple (_NotSameTuple): New.
2213 * include/std/tuple (tuple(_UElements&&...): Use it.
2214 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2215
2216 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2217
2218 PR libstdc++/71004
2219 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2220 Initialize scalar member variables in default constructor.
2221 * testsuite/experimental/filesystem/iterators/
2222 recursive_directory_iterator.cc: Test default construction.
2223
2224 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2225
2226 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2227
2228 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
2229
2230 * testsuite/experimental/filesystem/path/native/string.cc: Add
2231 dg-require-filesystem-ts directive.
2232
2233 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
2234
2235 PR libstdc++/70940
2236 * include/experimental/memory_resource
2237 (__resource_adaptor_imp::do_allocate): Do not default-construct
2238 rebound allocator.
2239 (__resource_adaptor_imp::do_deallocate): Likewise. Use
2240 allocator_traits to get pointer type.
2241 (__null_memory_resource::do_allocate): Remove unused parameters.
2242 (__null_memory_resource::do_deallocate): Likewise.
2243 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2244 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2245 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2246 move to ...
2247 * testsuite/experimental/memory_resource/1.cc: Here.
2248 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2249 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2250
2251 2016-04-29 Chris Gregory <czipperz@gmail.com>
2252
2253 * config/*: Remove trailing whitespace.
2254 * src/*: Likewise.
2255 * testsuite/tr1/*: Likewise.
2256 * testsuite/util/*: Likewise.
2257
2258 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
2259
2260 PR libstdc++/70766
2261 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2262 __addressof.
2263 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2264 Likewise.
2265 * include/std/atomic (atomic<_Tp>): Likewise.
2266 * include/std/shared_mutex (shared_lock): Likewise.
2267 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2268 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2269 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2270 * testsuite/29_atomics/atomic/70766.cc: New test.
2271 * testsuite/30_threads/shared_lock/70766.cc: New test.
2272
2273 * include/bits/hashtable_policy.h (__detail::_Insert_base,
2274 __detail::_Insert): Improve comments.
2275
2276 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
2277
2278 PR libstdc++/70767
2279 * include/std/limits: Update comments about DRs.
2280 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
2281 numeric_limits<const volatile _Tp>): Define unconditionally.
2282
2283 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
2284
2285 PR libstdc++/70762
2286 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
2287 static counter to return a different path on every call.
2288
2289 2016-04-22 Tim Shen <timshen@google.com>
2290
2291 PR libstdc++/70745
2292 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
2293 Fix the match_not_bow and match_not_eow behavior.
2294 * testsuite/28_regex/regression.cc: Add testcase.
2295
2296 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
2297
2298 PR libstdc++/69703
2299 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
2300 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
2301
2302 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
2303
2304 PR libstdc++/69703
2305 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
2306 Override endianness bit in mode.
2307 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
2308 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
2309 that little_endian mode is ignored.
2310 * testsuite/experimental/filesystem/path/native/string.cc: New test.
2311
2312 PR libstdc++/70609
2313 * src/filesystem/ops.cc (close_fd): New function.
2314 (do_copy_file): Set permissions before copying file contents. Check
2315 result of closing file descriptors. Don't copy streambuf when file
2316 is empty.
2317 (copy(const path&, const path&, copy_options, error_code&)): Use
2318 lstat for source file when copy_symlinks is set.
2319 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
2320
2321 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
2322 operator~ operator&=, operator|=, operator^=): Add noexcept to
2323 overloaded operators for copy_options, perms and directory_options.
2324 * src/filesystem/ops.cc (make_file_type, make_file_status,
2325 is_not_found_errno, file_time): Add noexcept.
2326
2327 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
2328
2329 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
2330
2331 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
2332
2333 PR libstdc++/41759
2334 * include/bits/random.h: Reword static assertion messages to state
2335 positive conditions.
2336 * include/bits/random.tcc: Likewise.
2337 * include/bits/uniform_int_dist.h: Likewise.
2338 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2339 patterns.
2340
2341 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2342
2343 * config/cpu/sh/atomicity.h: Fix typo in comment.
2344
2345 PR libstdc++/70294
2346 * include/std/thread (operator<, operator==): Move definitions to
2347 namespace-scope.
2348 * testsuite/30_threads/thread/id/70294.cc: New test.
2349
2350 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
2351 -Wno-pedantic to dg-options.
2352 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
2353 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
2354 to dg-options.
2355 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
2356 Remove extra semi-colon.
2357 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2358 Always supply second argument to static_assert.
2359 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
2360 semi-colon.
2361 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
2362 dg-options.
2363 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
2364 * testsuite/29_atomics/atomic/60695.cc: Likewise.
2365 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
2366 alignof when operand is an object not a type.
2367 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
2368 * testsuite/decimal/make-decimal.cc: Likewise.
2369 * testsuite/experimental/type_traits/value.cc: Always supply second
2370 argument to static_assert.
2371 * testsuite/util/testsuite_common_types.h: Use __extension__ for
2372 __int128 types.
2373
2374 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
2375 internal header.
2376 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
2377 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
2378 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
2379 Likewise. Add licence and change to compile-only test.
2380
2381 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
2382 unused parameter.
2383 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2384
2385 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
2386 warnings.
2387
2388 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
2389
2390 * include/bits/specfun.h: Trivial comment misspelling.
2391
2392 2016-04-14 Jason Merrill <jason@redhat.com>
2393
2394 Revert Jonathan's empty ABI change from yesterday.
2395
2396 2016-04-13 Martin Sebor <msebor@redhat.com>
2397
2398 PR c++/69517
2399 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
2400 upper bound is positive.
2401
2402 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
2403
2404 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
2405 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
2406 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
2407 of functions taking empty structs by value. Add a template parameter
2408 to overloads without hints. Rename overloads with hints to
2409 _M_emplace_hint.
2410 (_Hashtable::_M_erase(true_type, const_iterator),
2411 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
2412 by reordering parameters.
2413 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
2414 _M_emplace_hint instead of _M_emplace.
2415 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
2416 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
2417 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
2418 __shared_ptr): Likewise.
2419 * include/bits/stl_algo.h (replace_if): Likewise.
2420 * include/bits/stl_pair.h (piecewise_construct_t,
2421 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
2422 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
2423 __uses_alloc0): Likewise.
2424 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
2425 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
2426 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2427 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2428 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2429 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2430 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
2431
2432 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
2433
2434 Document C++17/TR29124 C++ Special Math Functions.
2435 * include/bits/specfun.h: Add Doxygen markup.
2436
2437 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
2438
2439 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
2440
2441 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
2442
2443 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
2444 * src/Makefile.in: Regenerate.
2445
2446 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
2447
2448 PR libstdc++/70554
2449 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
2450 __atomic_fetch_add for bool.
2451 * configure: Regenerate.
2452
2453 * testsuite/30_threads/thread/70503.cc: Require -static to work.
2454
2455 PR libstdc++/70503
2456 * src/c++11/thread.cc (execute_native_thread_routine,
2457 execute_native_thread_routine_compat): Give internal linkage.
2458 * testsuite/30_threads/thread/70503.cc: New test.
2459
2460 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2461
2462 PR libstdc++/70437
2463 * include/bits/stl_pair.h (_ConstructiblePair,
2464 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
2465 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
2466 for same-type cases.
2467 * testsuite/20_util/pair/70437.cc: New.
2468
2469 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
2470
2471 PR libstdc++/69945
2472 * config/abi/pre/gnu.ver: Add new symbol.
2473 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
2474 * testsuite/18_support/free_eh_pool.cc: New test.
2475
2476 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
2477
2478 * include/Makefile.am (install-freestanding-headers): Add
2479 concept_check.h and move.h to the installed headers.
2480 * include/Makefile.in: Regenerated.
2481 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
2482 freestanding implementations.
2483 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
2484 that this macro has no effect for freestanding implementations.
2485 * doc/html/manual/using_macros.html: Likewise.
2486
2487 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
2488
2489 PR libstdc++/69939
2490 * include/experimental/tuple (__apply_impl): Qualify get and forward.
2491
2492 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
2493
2494 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
2495 * doc/html/*: Regenerate.
2496
2497 PR libstdc++/69893
2498 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
2499 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
2500 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
2501 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
2502 trunc) [__cplusplus >= 201103L]: Import from namespace std.
2503 (fabs) [__cplusplus < 201103L]: Import from namespace std.
2504 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
2505 Likewise.
2506 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
2507 namespace before including TR1 headers.
2508 * testsuite/tr1/headers/c++200x/math.cc: New test.
2509
2510 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
2511
2512 PR libstdc++/69881
2513 * include/c_global/cstdarg: Undefine __need___va_list.
2514 * include/c_global/cstddef: Undefine all kinds of __need_*.
2515
2516 2016-02-16 Tim Shen <timshen@google.com>
2517
2518 PR libstdc++/69794
2519 * include/bits/regex_scanner.h: Add different special character
2520 sets for grep and egrep regex.
2521 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
2522 * testsuite/28_regex/regression.cc: Add new testcase.
2523
2524 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
2525
2526 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
2527 added 'constexpr' in previous commit.
2528 * configure: Regenerate.
2529
2530 PR libstdc++/48891
2531 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
2532 checks for all targets except *-*-solaris2.* and ensure we find the
2533 libc math.h header not our own.
2534 * configure: Regenerate.
2535
2536 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
2537
2538 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
2539 New file. Copied over from s390-linux-gnu.
2540
2541 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
2542
2543 PR libstdc++/69626
2544 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
2545 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
2546 * config.h.in: Regenerate.
2547 * configure: Regenerate.
2548 * testsuite/21_strings/c_strings/char/69626.cc: New.
2549
2550 * doc/html/index.html: Regenerate.
2551
2552 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
2553 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
2554 * doc/html/*: Regenerate.
2555
2556 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
2557
2558 PR libstdc++/69581
2559 * include/c_compatibility/math.h: Move header guards.
2560 * include/c_compatibility/stdlib.h: Likewise.
2561
2562 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
2563
2564 PR libstdc++/69506
2565 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2566
2567 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
2568
2569 PR libstdc++/69450
2570 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
2571 isinf and isnan functions into two independent checks. Check on hpux.
2572 * config.h.in: Regenerate.
2573 * configure: Regenerate.
2574 * include/c_global/cmath (isinf(double), isnan(double)): Use
2575 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
2576 respectively.
2577
2578 2016-01-27 Jakub Jelinek <jakub@redhat.com>
2579
2580 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
2581
2582 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
2583
2584 PR libstdc++/69295
2585 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
2586 -ffp-contract=off, and -ffloat-store to disable excess precision.
2587 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
2588 -ffp-contract=off.
2589
2590 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
2591
2592 PR libstdc++/69478
2593 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
2594 random_access_iterator_tag>): Check is_move_assignable when moving.
2595 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
2596 Likewise.
2597 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
2598 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
2599 * testsuite/25_algorithms/move/69478.cc: New.
2600 * testsuite/25_algorithms/move_backward/69478.cc: new.
2601
2602 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
2603
2604 * include/c_compatibility/stdlib.h: Include wide character related
2605 definitions only when they are available in cstdlib.
2606
2607 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
2608
2609 PR libstdc++/69464
2610 * include/Makefile.am: Add new header.
2611 * include/Makefile.in: Regenerate.
2612 * include/bits/random.h (uniform_int_distribution): Move to
2613 bits/uniform_int_dist.h.
2614 * include/bits/random.tcc (uniform_int_distribution::operator(),
2615 uniform_int_distribution::__generate_impl): Likewise.
2616 * include/bits/uniform_int_dist.h: New header.
2617 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
2618 <bits/uniform_int_dist.h> instead of <random>.
2619 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2620 move_iterators/1.cc: Include correct header for uninitialized_copy.
2621 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
2622 move_iterators/1.cc: Likewise.
2623 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
2624 header for vector.
2625 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
2626
2627 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
2628
2629 PR libstdc++/69446
2630 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2631
2632 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
2633
2634 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
2635 * include/c_compatibility/math.h: Import the TR29124 functions
2636 into the global namespace.
2637 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
2638 xfail and make compile-only.
2639 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
2640 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
2641 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
2642 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
2643 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
2644 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
2645 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
2646 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
2647 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
2648 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
2649 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
2650 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
2651 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
2652 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
2653 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
2654 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
2655 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
2656 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
2657 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
2658 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
2659
2660 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
2661
2662 PR libstdc++/69116
2663 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
2664 define result_type for types which can be safely used with valarrays.
2665 * testsuite/26_numerics/valarray/69116.cc: New.
2666
2667 PR libstdc++/69413
2668 * config/os/gnu-linux/os_defines.h: Define
2669 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
2670 * include/c_global/cmath (isinf, isnan): Check it.
2671 * doc/xml/manual/internals.xml: Document it.
2672 * doc/html/*: Regenerate.
2673
2674 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
2675
2676 PR libstdc++/69406
2677 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
2678 * include/ext/type_traits.h: Likewise.
2679 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
2680 for presence of C headers.
2681 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
2682 dg-error line number.
2683 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
2684 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
2685 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
2686
2687 2016-01-20 Torvald Riegel <triegel@redhat.com>
2688
2689 PR libstdc++/69310
2690 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2691
2692 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
2693
2694 PR libstdc++/60401
2695 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
2696 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
2697 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
2698 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
2699 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
2700 Add using declarations.
2701 * testsuite/26_numerics/headers/cmath/60401.cc: New.
2702
2703 PR libstdc++/69386
2704 * include/c_global/ccomplex: Ensure C++ language linkage.
2705 * include/c_global/cmath: Likewise.
2706 * include/c_global/cstdlib: Likewise.
2707 * include/c_global/ctgmath: Likewise.
2708 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
2709
2710 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
2711
2712 PR libstdc++/14608
2713 PR libstdc++/60401
2714 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
2715 --enable-cheaders=c_global configs.
2716 * include/Makefile.in: Regenerate.
2717 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
2718 test and allow inclusion from C files.
2719 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
2720 (at_quick_exit, quick_exit): Add using directives.
2721 * include/c_global/cmath: Use #include_next for math.h.
2722 * include/c_global/cstdlib: Use #include_next for stdlib.h.
2723 * testsuite/26_numerics/headers/cmath/14608.cc: New.
2724 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
2725 Remove xfail for most targets.
2726 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
2727
2728 2016-01-18 Torvald Riegel <triegel@redhat.com>
2729
2730 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
2731 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
2732 and move after its definition.
2733 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
2734 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
2735 __GXX_WEAK__, and only provide transactional clones if
2736 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
2737 functions.
2738
2739 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
2740
2741 PR libstdc++/60637
2742 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
2743
2744 PR libstdc++/69243
2745 * include/std/functional (_Function_base::_M_not_empty_function):
2746 Change overloads for pointers to take arguments by value.
2747 * testsuite/20_util/function/cons/57465.cc: Add tests for
2748 pointer-to-member cases.
2749
2750 PR libstdc++/69340
2751 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
2752 Use macros for exception handling and fix unused parameter warning.
2753
2754 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
2755
2756 PR libstdc++/68734
2757 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
2758
2759 2016-01-17 Torvald Riegel <triegel@redhat.com>
2760
2761 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
2762
2763 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
2764
2765 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
2766 __int128 symbols.
2767
2768 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
2769
2770 PR libstdc++/69293
2771 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
2772 static assertion that type is constructible from the arguments.
2773 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
2774 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
2775 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
2776
2777 PR libstdc++/69294
2778 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
2779 and isnan on AIX. Quote variables.
2780 * configure: Regenerate.
2781
2782 2016-01-15 Torvald Riegel <triegel@redhat.com>
2783
2784 * include/bits/basic_string.h (basic_string): Declare friends.
2785 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
2786 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
2787 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
2788 length_error, out_of_range, runtime_error, range_error,
2789 underflow_error, overflow_error): Declare members as transaction-safe.
2790 (logic_error, runtime_error): Declare friend functions.
2791 * libsupc++/exception (exception, bad_exception): Declare members as
2792 transaction-safe.
2793 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
2794 transaction-safe members of exceptions and helper functions.
2795 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
2796 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
2797 (CXXABI_1.3.10): New.
2798 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
2799 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
2800 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
2801 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
2802 * include/Makefile.in: Regenerate.
2803 * config.h.in: Regenerate.
2804 * configure: Regenerate.
2805 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
2806
2807 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
2808
2809 * include/ext/random.tcc: Use __builtin_isfinite instead of
2810 std::isfinite.
2811
2812 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
2813
2814 * include/bits/std_mutex.h: Fix Doxygen @file name.
2815
2816 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
2817 Jonathan Wakely <jwakely@redhat.com>
2818 Florian Goth <CaptainSifff@gmx.de>
2819
2820 Implement TR29124 C++ special Math Functions.
2821 * include/Makefile.am: Add new headers.
2822 * include/Makefile.in: Regenerate.
2823 * include/bits/specfun.h: New.
2824 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
2825 * include/tr1/bessel_function.tcc: Ditto.
2826 * include/tr1/beta_function.tcc: Ditto.
2827 * include/tr1/cmath: Ditto.
2828 * include/tr1/ell_integral.tcc: Ditto.
2829 * include/tr1/exp_integral.tcc: Ditto.
2830 * include/tr1/gamma.tcc: Ditto.
2831 * include/tr1/hypergeometric.tcc: Ditto.
2832 * include/tr1/legendre_function.tcc: Ditto.
2833 * include/tr1/modified_bessel_func.tcc: Ditto.
2834 * include/tr1/poly_hermite.tcc: Ditto.
2835 * include/tr1/poly_laguerre.tcc: Ditto.
2836 * include/tr1/riemann_zeta.tcc: Ditto.
2837 * include/tr1/special_function_util.h: Ditto.
2838 * testsuite/ext/special_functions/conf_hyperg: New.
2839 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
2840 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
2841 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
2842 * testsuite/ext/special_functions/hyperg: New.
2843 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
2844 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
2845 * testsuite/ext/special_functions/hyperg/compile.cc: New.
2846 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
2847 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
2848 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
2849 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
2850 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
2851 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
2852 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
2853 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
2854 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
2855 * testsuite/special_functions/03_beta/check_nan.cc: New.
2856 * testsuite/special_functions/03_beta/check_value.cc: New.
2857 * testsuite/special_functions/03_beta/compile.cc: New.
2858 * testsuite/special_functions/03_beta/compile_2.cc: New.
2859 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
2860 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
2861 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
2862 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
2863 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
2864 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
2865 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
2866 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
2867 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
2868 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
2869 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
2870 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
2871 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
2872 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
2873 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
2874 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
2875 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
2876 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
2877 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
2878 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
2879 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
2880 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
2881 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
2882 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
2883 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
2884 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
2885 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
2886 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
2887 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
2888 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
2889 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
2890 * testsuite/special_functions/11_ellint_1/compile.cc: New.
2891 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
2892 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
2893 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
2894 * testsuite/special_functions/12_ellint_2/compile.cc: New.
2895 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
2896 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
2897 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
2898 * testsuite/special_functions/13_ellint_3/compile.cc: New.
2899 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
2900 * testsuite/special_functions/14_expint/check_nan.cc: New.
2901 * testsuite/special_functions/14_expint/check_value.cc: New.
2902 * testsuite/special_functions/14_expint/compile.cc: New.
2903 * testsuite/special_functions/14_expint/compile_2.cc: New.
2904 * testsuite/special_functions/15_hermite/check_nan.cc: New.
2905 * testsuite/special_functions/15_hermite/check_value.cc: New.
2906 * testsuite/special_functions/15_hermite/compile.cc: New.
2907 * testsuite/special_functions/15_hermite/compile_2.cc: New.
2908 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
2909 * testsuite/special_functions/16_laguerre/check_value.cc: New.
2910 * testsuite/special_functions/16_laguerre/compile.cc: New.
2911 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
2912 * testsuite/special_functions/17_legendre/check_nan.cc: New.
2913 * testsuite/special_functions/17_legendre/check_value.cc: New.
2914 * testsuite/special_functions/17_legendre/compile.cc: New.
2915 * testsuite/special_functions/17_legendre/compile_2.cc: New.
2916 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
2917 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
2918 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
2919 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
2920 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
2921 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
2922 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
2923 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
2924 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
2925 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
2926 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
2927 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
2928 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
2929 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
2930 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
2931 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
2932 * testsuite/util/specfun_testcase.h: New.
2933 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
2934 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
2935 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
2936 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
2937 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
2938 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
2939 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
2940
2941 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
2942
2943 PR libstdc++/48891
2944 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
2945 and isnan functions.
2946 * config.h.in: Regenerate.
2947 * configure: Regenerate.
2948 * include/c_global/cmath (isinf(double), isnan(double))
2949 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
2950 * testsuite/26_numerics/headers/cmath/48891.cc: New.
2951
2952 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2953
2954 PR libstdc++/66006
2955 * configure.host (abi_baseline_pair): Use separate baseline for
2956 Solaris 11+ and Solaris 10 with gld.
2957 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
2958 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
2959 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
2960
2961 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
2962
2963 PR libstdc++/68877
2964 * include/std/type_traits: Following N4511, reimplement __is_swappable
2965 and __is_nothrow_swappable. Move __is_swappable to namespace std,
2966 adjust callers. Use __is_nothrow_swappable in swap.
2967 * include/bits/move.h: Use __is_nothrow_swappable in swap.
2968 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
2969 __is_swappable related tests.
2970 * testsuite/20_util/is_swappable/value.cc: New.
2971 * testsuite/20_util/is_swappable/requirements/
2972 explicit_instantiation.cc: New.
2973 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
2974 * testsuite/25_algorithms/swap/68877.cc: New.
2975
2976 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
2977
2978 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
2979
2980 PR libstdc++/69005
2981 PR libstdc++/69222
2982 * include/std/functional (function::_Invoke): Remove, use result_of.
2983 (function::_Callable): Replace alias template with class template
2984 and use partial specialization instead of _NotSelf alias template.
2985 (function(_Functor)): Add "not self" constraint so that _Callable is
2986 not used while type is incomplete.
2987 * testsuite/20_util/function/69222.cc: New.
2988
2989 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
2990
2991 PR libstdc++/60976
2992 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
2993 Define partial specialization.
2994 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
2995 destroy members to std::allocator explicit specialization.
2996
2997 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
2998
2999 * testsuite/26_numerics/headers/cmath/
3000 c99_classification_macros_c++.cc: Rename to ...
3001 * testsuite/26_numerics/headers/cmath/
3002 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3003 * testsuite/26_numerics/headers/cmath/
3004 c99_classification_macros_c++0x.cc: Rename to ...
3005 * testsuite/26_numerics/headers/cmath/
3006 c99_classification_macros_c++11.cc: Here.
3007
3008 PR libstdc++/69190
3009 * include/bits/uses_allocator.h: Add missing include.
3010
3011 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3012
3013 PR libstdc++/69105
3014 PR libstdc++/69106
3015 PR libstdc++/69114
3016 * include/bits/stl_iterator.h (back_insert_iterator,
3017 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3018 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3019 * include/std/future (__future::base::_State_baseV2::__setter):
3020 Likewise.
3021 * include/std/scoped_allocator (__outermost): Likewise.
3022 * testsuite/20_util/scoped_allocator/69114.cc: New.
3023 * testsuite/20_util/uses_allocator/69114.cc: New.
3024 * testsuite/30_threads/promise/69106.cc: New.
3025
3026 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3027
3028 PR libstdc++/69092
3029 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3030 Remove _GLIBCXX_NOEXCEPT.
3031 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3032
3033 * include/Makefile.am: Adjust.
3034 * include/Makefile.in: Regenerate.
3035 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3036 * include/std/condition_variable: Adjust include.
3037 * include/std/mutex: Likewise.
3038
3039 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3040
3041 Update copyright years.
3042 \f
3043 Copyright (C) 2016 Free Software Foundation, Inc.
3044
3045 Copying and distribution of this file, with or without modification,
3046 are permitted in any medium without royalty provided the copyright
3047 notice and this notice are preserved.