libstdc++-v3: Have aligned_alloc() on Newlib
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
2
3 PR target/85904
4 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
5 Newlib.
6 * configure: Regenerate.
7
8 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
9
10 * include/std/deque (std::pmr::deque): Declare alias.
11 * include/std/forward_list (std::pmr::forward_list): Likewise.
12 * include/std/list (std::pmr::list): Likewise.
13 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
14 * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
15 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
16 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
17 * include/std/string (std::pmr::basic_string, std::pmr::string)
18 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
19 Likewise.
20 * include/std/unordered_map (std::pmr::unordered_map)
21 (std::pmr::unordered_multimap): Likewise.
22 * include/std/unordered_set (std::pmr::unordered_set)
23 (std::pmr::unordered_multiset): Likewise.
24 * include/std/vector (std::pmr::vector): Likewise.
25 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
26 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
27 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
28 * testsuite/23_containers/list/pmr_typedefs.cc: New test.
29 * testsuite/23_containers/map/pmr_typedefs.cc: New test.
30 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
31 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
32 * testsuite/23_containers/set/pmr_typedefs.cc: New test.
33 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
34 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
35 test.
36 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
37 test.
38 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
39 * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
40 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
41
42 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
43
44 * include/bits/stl_algo.h
45 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
46 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
47 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code duplication...
48 (rotate(_Ite, _Ite, _Ite)): ...here.
49 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
50 Simplify rotate call.
51 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
52 Likewise.
53 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
54 Likewise.
55
56 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
57
58 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
59 avoid clashing with an ::aligned_alloc function that was not detected
60 by configure.
61
62 * doc/xml/manual/using.xml: Fix markup for empty table entry.
63 * doc/html/*: Regenerate.
64
65 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
66 * doc/html/*: Regenerate.
67
68 PR libstdc++/86597
69 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
70 Clear error_code when cached type is used.
71 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
72
73 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
74
75 PR libstdc++/86874
76 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
77 here instead of in _Move_assign_base.
78 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
79 (_Copy_assign_base::operator=): Use _M_destructive_move when changing
80 the contained value to another alternative.
81 (_Move_assign_base::operator=): Likewise.
82 (_Move_assign_base::_M_destructive_move): Remove.
83 * testsuite/20_util/variant/86874.cc: New test.
84
85 PR libstdc++/86861
86 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
87 Replace macro with inline function.
88 [__sun]: Increase alignment to meet memalign precondition.
89 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
90 (aligned_alloc): Move check for valid alignment to operator new.
91 Remove redundant check for non-zero size, it's enforced by the caller.
92 (operator new): Move check for valid alignment here. Use
93 __builtin_expect on check for zero size.
94
95 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
96 * include/std/memory_resource (monotonic_buffer_resource::release):
97 Call _M_release_buffers to free buffers.
98 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
99 allocate a new buffer from upstream.
100 (monotonic_buffer_resource::_M_new_buffer): Declare.
101 (monotonic_buffer_resource::_M_release_buffers): Declare.
102 (monotonic_buffer_resource::_Chunk): Replace definition with
103 declaration as opaque type.
104 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
105 Define.
106 (monotonic_buffer_resource::_M_new_buffer): Define.
107 (monotonic_buffer_resource::_M_release_buffers): Define.
108
109 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
110
111 * include/bits/stl_iterator.h: Fix comment.
112
113 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
114
115 * src/c++11/system_error.cc
116 (system_error_category::default_error_condition): Add workaround for
117 ENOTEMPTY and EEXIST having the same value on AIX.
118 * testsuite/19_diagnostics/error_category/system_category.cc: Add
119 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
120
121 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
122
123 * configure: Regenerate.
124 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
125 * src/c++11/futex.cc: Use __glibcxx_assert instead of
126 _GLIBCXX_DEBUG_ASSERT.
127
128 2018-08-01 Mike Crowe <mac@mcrowe.com>
129
130 * include/std/condition_variable (wait_for): Use steady_clock.
131
132 2018-08-01 Mike Crowe <mac@mcrowe.com>
133
134 * include/std/condition_variable (wait_until): Only report timeout
135 if we really have timed out when measured against the
136 caller-supplied clock.
137 * testsuite/30_threads/condition_variable/members/2.cc: Add test
138 case to confirm above behaviour.
139
140 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
141
142 PR libstdc++/60555
143 * src/c++11/system_error.cc
144 (system_error_category::default_error_condition): New override to
145 check for POSIX errno values.
146 * testsuite/19_diagnostics/error_category/generic_category.cc: New
147 * testsuite/19_diagnostics/error_category/system_category.cc: New
148 test.
149
150 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
151
152 PR libstdc++/86751
153 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
154 assignment operator.
155 (pair): Derive from __pair_base.
156 (pair::operator=): Remove deleted overload.
157 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
158 so that new base class isn't shown in GDB.
159 * testsuite/20_util/pair/86751.cc: New test.
160 * testsuite/20_util/pair/ref_assign.cc: New test.
161
162 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
163 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
164 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
165 instead of __has_builtin.
166 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
167 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
168 * include/std/version [!_GLIBCXX_HAS_GTHREADS]
169 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
170 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
171 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
172 (__cpp_lib_has_unique_object_representations): Don't define when
173 builtin not available.
174 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
175 Likewise.
176 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
177 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
178 from here.
179
180 * doc/xml/manual/test.xml: Improve documentation on writing tests for
181 newer standards.
182 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
183 * doc/html/*: Regenerate.
184
185 * include/ext/pointer.h [__cplusplus >= 201103L]
186 (_Pointer_adapter::operator bool): Add explicit conversion operator
187 to replace safe bool idiom.
188
189 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
190
191 PR libstdc++/86734
192 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
193 _S_to_pointer (LWG 1052, LWG 2118).
194 (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
195 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
196 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
197
198 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
199 workaround for aligned_alloc bug on AIX.
200 * testsuite/18_support/new_aligned.cc: New test.
201
202 2018-07-26 Marek Polacek <polacek@redhat.com>
203
204 * testsuite/30_threads/condition_variable_any/cond.cc: New.
205
206 2018-07-26 Marek Polacek <polacek@redhat.com>
207
208 * src/c++98/locale_init.cc: Fix #ifdef condition.
209
210 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
211
212 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
213 dg-require-cstdint directive.
214 * testsuite/20_util/allocator/overaligned.cc: Likewise.
215 * testsuite/20_util/any/cons/aligned.cc: Likewise.
216 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
217 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
218 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
219 Likewise.
220 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
221 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
222 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
223 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
224 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
225 random_device effective-target.
226 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
227 * testsuite/25_algorithms/sample/1.cc: Require cstdint.
228 * testsuite/25_algorithms/sample/2.cc: Likewise.
229 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
230 and random_device.
231 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
232 cstdint.
233 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
234 Likewise.
235 * testsuite/26_numerics/random/discard_block_engine/requirements/
236 constexpr_data.cc: Likewise.
237 * testsuite/26_numerics/random/discard_block_engine/requirements/
238 constexpr_functions.cc: Likewise.
239 * testsuite/26_numerics/random/independent_bits_engine/requirements/
240 constexpr_functions.cc: Likewise.
241 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
242 constexpr_data.cc: Likewise.
243 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
244 constexpr_functions.cc: Likewise.
245 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
246 constexpr_data.cc: Likewise.
247 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
248 constexpr_functions.cc: Likewise.
249 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
250 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
251 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
252 constexpr_data.cc: Add dg-require-cstdint directive.
253 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
254 constexpr_functions.cc: Likewise.
255 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
256 constexpr_data.cc: Likewise.
257 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
258 constexpr_functions.cc: Likewise.
259 * testsuite/26_numerics/random/uniform_real_distribution/operators/
260 64351.cc: Likewise.
261 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
262 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
263 * testsuite/experimental/algorithm/sample.cc: Likewise.
264 * testsuite/experimental/algorithm/search.cc: Likewise.
265 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
266 * testsuite/experimental/any/cons/aligned.cc: Likewise.
267 * testsuite/experimental/memory_resource/new_delete_resource.cc:
268 Likewise.
269 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
270 * testsuite/experimental/random/randint.cc: Likewise.
271 * testsuite/experimental/source_location/1.cc: Likewise.
272 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
273 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
274 * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
275 * testsuite/ext/new_allocator/overaligned.cc: Likewise.
276 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
277 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
278 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
279 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
280 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
281 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
282 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
283 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
284 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
285 * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
286 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
287 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
288 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
289 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
290 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
291 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
292 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
293 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
294 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
295
296 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
297 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
298 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
299 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
300 Likewise.
301 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
302 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
303 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
304 Likewise.
305 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
306 Likewise.
307 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
308 Likewise.
309 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
310 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
311 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
312 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
313 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
314 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
315 Likewise.
316 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
317 Likewise.
318 * testsuite/30_threads/recursive_timed_mutex/dest/
319 destructor_locked.cc: Likewise.
320 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
321 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
322 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
323 Likewise.
324 * testsuite/30_threads/recursive_timed_mutex/native_handle/
325 typesizes.cc: Likewise.
326 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
327 Likewise.
328 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
329 Likewise.
330 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
331 Likewise.
332 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
333 Likewise.
334 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
335 Likewise.
336 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
337 Likewise.
338 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
339 Likewise.
340 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
341 Likewise.
342 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
343 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
344 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
345 * testsuite/30_threads/scoped_lock/requirements/
346 explicit_instantiation.cc: Likewise.
347 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
348 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
349 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
350 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
351 * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
352 * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
353 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
354 * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
355 * testsuite/30_threads/shared_future/members/get.cc: Likewise.
356 * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
357 * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
358 * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
359 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
360 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
361 * testsuite/30_threads/shared_future/requirements/
362 explicit_instantiation.cc: Likewise.
363 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
364 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
365 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
366 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
367 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
368 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
369 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
370 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
371 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
372 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
373 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
374 * testsuite/30_threads/shared_lock/requirements/
375 explicit_instantiation.cc: Likewise.
376 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
377 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
378 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
379 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
380 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
381 Likewise.
382 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
383 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
384 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
385 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
386 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
387 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
388 * testsuite/30_threads/shared_timed_mutex/requirements/
389 standard_layout.cc: Likewise.
390 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
391 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
392 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
393 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
394 * testsuite/30_threads/this_thread/1.cc: Likewise.
395 * testsuite/30_threads/this_thread/2.cc: Likewise.
396 * testsuite/30_threads/this_thread/3.cc: Likewise.
397 * testsuite/30_threads/this_thread/4.cc: Likewise.
398 * testsuite/30_threads/this_thread/58038.cc: Likewise.
399 * testsuite/30_threads/thread/70503.cc: Likewise.
400 * testsuite/30_threads/thread/84532.cc: Likewise.
401 * testsuite/30_threads/thread/adl.cc: Likewise.
402 * testsuite/30_threads/thread/cons/1.cc: Likewise.
403 * testsuite/30_threads/thread/cons/2.cc: Likewise.
404 * testsuite/30_threads/thread/cons/3.cc: Likewise.
405 * testsuite/30_threads/thread/cons/4.cc: Likewise.
406 * testsuite/30_threads/thread/cons/49668.cc: Likewise.
407 * testsuite/30_threads/thread/cons/5.cc: Likewise.
408 * testsuite/30_threads/thread/cons/6.cc: Likewise.
409 * testsuite/30_threads/thread/cons/7.cc: Likewise.
410 * testsuite/30_threads/thread/cons/8.cc: Likewise.
411 * testsuite/30_threads/thread/cons/84535.cc: Likewise.
412 * testsuite/30_threads/thread/cons/9.cc: Likewise.
413 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
414 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
415 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
416 * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
417 * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
418 * testsuite/30_threads/thread/id/operators.cc: Likewise.
419 * testsuite/30_threads/thread/members/1.cc: Likewise.
420 * testsuite/30_threads/thread/members/2.cc: Likewise.
421 * testsuite/30_threads/thread/members/3.cc: Likewise.
422 * testsuite/30_threads/thread/members/4.cc: Likewise.
423 * testsuite/30_threads/thread/members/5.cc: Likewise.
424 * testsuite/30_threads/thread/members/hardware_concurrency.cc:
425 Likewise.
426 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
427 * testsuite/30_threads/thread/swap/1.cc: Likewise.
428 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
429 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
430 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
431 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
432 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
433 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
434 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
435 Likewise.
436 * testsuite/30_threads/timed_mutex/requirements/
437 standard_layout.cc: Likewise.
438 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
439 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
440 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
441 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
442 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
443 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
444 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
445 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
446 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
447 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
448 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
449 * testsuite/30_threads/try_lock/1.cc: Likewise.
450 * testsuite/30_threads/try_lock/2.cc: Likewise.
451 * testsuite/30_threads/try_lock/3.cc: Likewise.
452 * testsuite/30_threads/try_lock/4.cc: Likewise.
453 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
454 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
455 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
456 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
457 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
458 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
459 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
460 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
461 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
462 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
463 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
464 * testsuite/30_threads/unique_lock/requirements/
465 explicit_instantiation.cc: Likewise.
466 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
467
468 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
469 directive.
470 * testsuite/30_threads/async/49668.cc: Likewise.
471 * testsuite/30_threads/async/54297.cc: Likewise.
472 * testsuite/30_threads/async/84532.cc: Likewise.
473 * testsuite/30_threads/async/any.cc: Likewise.
474 * testsuite/30_threads/async/async.cc: Likewise.
475 * testsuite/30_threads/async/except.cc: Likewise.
476 * testsuite/30_threads/async/forced_unwind.cc: Likewise.
477 * testsuite/30_threads/async/launch.cc: Likewise.
478 * testsuite/30_threads/async/lwg2021.cc: Likewise.
479 * testsuite/30_threads/async/sync.cc: Likewise.
480 * testsuite/30_threads/call_once/39909.cc: Likewise.
481 * testsuite/30_threads/call_once/49668.cc: Likewise.
482 * testsuite/30_threads/call_once/60497.cc: Likewise.
483 * testsuite/30_threads/call_once/call_once1.cc: Likewise.
484 * testsuite/30_threads/call_once/constexpr.cc: Likewise.
485 * testsuite/30_threads/call_once/dr2442.cc: Likewise.
486 * testsuite/30_threads/call_once/once_flag.cc: Likewise.
487 * testsuite/30_threads/condition_variable/54185.cc: Likewise.
488 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
489 * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
490 Likewise.
491 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
492 * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
493 * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
494 * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
495 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
496 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
497 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
498 Likewise.
499 * testsuite/30_threads/condition_variable/requirements/
500 standard_layout.cc: Likewise.
501 * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
502 * Likewise.
503 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
504 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
505 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
506 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
507 Likewise.
508 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
509 Likewise.
510 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
511 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
512 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
513 * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
514 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
515 * testsuite/30_threads/future/cons/default.cc: Likewise.
516 * testsuite/30_threads/future/cons/move.cc: Likewise.
517 * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
518 * testsuite/30_threads/future/members/45133.cc: Likewise.
519 * testsuite/30_threads/future/members/get.cc: Likewise.
520 * testsuite/30_threads/future/members/get2.cc: Likewise.
521 * testsuite/30_threads/future/members/share.cc: Likewise.
522 * testsuite/30_threads/future/members/valid.cc: Likewise.
523 * testsuite/30_threads/future/members/wait.cc: Likewise.
524 * testsuite/30_threads/future/members/wait_for.cc: Likewise.
525 * testsuite/30_threads/future/members/wait_until.cc: Likewise.
526 * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
527 Likewise.
528 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
529 Likewise.
530 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
531 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
532 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
533 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
534 * testsuite/30_threads/lock/1.cc: Likewise.
535 * testsuite/30_threads/lock/2.cc: Likewise.
536 * testsuite/30_threads/lock/3.cc: Likewise.
537 * testsuite/30_threads/lock/4.cc: Likewise.
538 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
539 * testsuite/30_threads/lock_guard/requirements/
540 explicit_instantiation.cc: Likewise.
541 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
542 * testsuite/30_threads/mutex/cons/1.cc: Likewise.
543 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
544 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
545 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
546 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
547 * testsuite/30_threads/mutex/lock/1.cc: Likewise.
548 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
549 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
550 * testsuite/30_threads/mutex/requirements/standard_layout.cc::
551 Likewise.
552 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
553 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
554 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
555 * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
556 * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
557 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
558 * testsuite/30_threads/packaged_task/49668.cc: Likewise.
559 * testsuite/30_threads/packaged_task/60564.cc: Likewise.
560 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
561 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
562 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
563 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
564 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
565 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
566 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
567 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
568 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
569 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
570 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
571 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
572 Likewise.
573 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
574 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
575 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
576 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
577 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
578 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
579 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
580 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
581 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
582 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
583 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
584 * testsuite/30_threads/packaged_task/requirements/
585 explicit_instantiation.cc: Likewise.
586 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
587 * testsuite/30_threads/promise/60966.cc: Likewise.
588 * testsuite/30_threads/promise/69106.cc: Likewise.
589 * testsuite/30_threads/promise/cons/1.cc: Likewise.
590 * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
591 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
592 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
593 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
594 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
595 * testsuite/30_threads/promise/cons/move.cc: Likewise.
596 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
597 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
598 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
599 * testsuite/30_threads/promise/members/get_future.cc: Likewise.
600 * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
601 * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
602 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
603 * testsuite/30_threads/promise/members/set_value.cc: Likewise.
604 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
605 * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
606 * testsuite/30_threads/promise/members/swap.cc: Likewise.
607 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
608 * Likewise.
609 * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
610
611 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
612 from namespace std.
613 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
614 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
615 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
616 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
617 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
618 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
619 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
620 * testsuite/20_util/duration/cons/1.cc: Likewise.
621 * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
622 * testsuite/20_util/duration/cons/2.cc: Likewise.
623 * testsuite/20_util/duration/cons/54025.cc: Likewise.
624 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
625 * testsuite/20_util/duration/requirements/explicit_instantiation/
626 explicit_instantiation.cc: Likewise.
627 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
628 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
629 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
630 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
631 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
632 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
633 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
634 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
635 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
636 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
637 * testsuite/20_util/ratio/operations/53840.cc: Likewise.
638 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
639 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
640 * testsuite/20_util/system_clock/1.cc: Likewise.
641 * testsuite/20_util/time_point/1.cc: Likewise.
642 * testsuite/20_util/time_point/2.cc: Likewise.
643 * testsuite/20_util/time_point/3.cc: Likewise.
644 * testsuite/20_util/time_point/requirements/explicit_instantiation/
645 explicit_instantiation.cc: Likewise.
646 * testsuite/21_strings/basic_string/requirements/
647 explicit_instantiation/char16_t/1.cc: Likewise.
648 * testsuite/21_strings/basic_string/requirements/
649 explicit_instantiation/char32_t/1.cc: Likewise.
650 * testsuite/21_strings/basic_string_view/requirements/
651 explicit_instantiation/char16_t/1.cc: Likewise.
652 * testsuite/21_strings/basic_string_view/requirements/
653 explicit_instantiation/char32_t/1.cc: Likewise.
654 * testsuite/21_strings/char_traits/requirements/
655 explicit_instantiation/char16_t/1.cc: Likewise.
656 * testsuite/21_strings/char_traits/requirements/
657 explicit_instantiation/char32_t/1.cc: Likewise.
658 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
659 * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
660 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
661 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
662 Likewise.
663 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
664 Likewise.
665 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
666 Likewise.
667 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
668 * testsuite/23_containers/vector/bool/72847.cc: Likewise.
669 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
670 Likewise.
671 * testsuite/experimental/string_view/requirements/
672 explicit_instantiation/char16_t/1.cc: Likewise.
673 * testsuite/experimental/string_view/requirements/
674 explicit_instantiation/char32_t/1.cc: Likewise.
675 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
676 1.cc: Likewise.
677 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
678 1.cc: Likewise.
679
680 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
681 (random_condition, throw_value_random, throw_allocator_random)
682 (std::hash<throw_value_random>): Do not define when <tr1/random> is
683 not usable.
684 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
685 define transactional memory support when <stdint.h> is not usable.
686
687 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
688 implementation that doesn't depend on <stdint.h> types.
689 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
690 std::size_t when std::uintptr_t is not usable.
691 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
692 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
693 Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
694
695 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
696 (hash<u16string>, hash<u32string>): Remove dependency on
697 _GLIBCXX_USE_C99_STDINT_TR1.
698 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
699 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
700 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
701 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
702 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
703 (codecvt<char16_t, char, mbstate_t>)
704 (codecvt<char32_t, char, mbstate_t>)
705 (codecvt_byname<char16_t, char, mbstate_t>)
706 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
707 on _GLIBCXX_USE_C99_STDINT_TR1.
708 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
709 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
710 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
711 (char_traits<char16_t>, char_traits<char32_t>)
712 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
713 on _GLIBCXX_USE_C99_STDINT_TR1.
714 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
715 (u16string_view, u32string_view, hash<u16string_view>)
716 (hash<u32string_view>, operator""sv(const char16_t, size_t))
717 (operator""sv(const char32_t, size_t)): Likewise.
718 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
719 (hash<__u16vstring>, hash<__u32vstring>): Likewise.
720 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
721 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
722 (__u32sso_string, __u32rc_string): Likewise.
723 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
724 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
725 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
726 (u16string_view, u32string_view, hash<u16string_view>)
727 (hash<u32string_view>, operator""sv(const char16_t, size_t))
728 (operator""sv(const char32_t, size_t)): Likewise.
729 * src/c++11/codecvt.cc: Likewise.
730 * src/c++98/locale_init.cc: Likewise.
731 * src/c++98/localename.cc: Likewise.
732
733 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
734 (__atomic_futex_unsigned_base): Remove dependency on
735 _GLIBCXX_USE_C99_STDINT_TR1 macro.
736 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
737 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
738 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
739 (uintmax_t): Define using predefined macros.
740 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
741 (time_point, system_clock, high_resolution_clock, steady_clock): Remove
742 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
743 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
744 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
745 long long when <stdint.h> is not usable.
746 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
747 (condition_variable, condition_variable_any): Remove dependency on
748 _GLIBCXX_USE_C99_STDINT_TR1.
749 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
750 (packaged_task, async): Likewise.
751 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
752 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
753 (once_flag, call_once): Likewise.
754 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
755 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
756 (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
757 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
758 (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
759 (this_thread::sleep_until): Likewise.
760 * src/c++11/chrono.cc: Remove dependency on
761 _GLIBCXX_USE_C99_STDINT_TR1 macro.
762 * src/c++11/condition_variable.cc: Likewise.
763 * src/c++11/futex.cc: Likewise.
764 * src/c++11/future.cc: Likewise.
765 * src/c++11/mutex.cc: Likewise.
766 * src/c++11/thread.cc: Likewise.
767 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
768 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
769 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
770 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
771 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
772 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
773
774 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
775
776 PR libstdc++/77691
777 * testsuite/experimental/memory_resource/new_delete_resource.cc:
778 xfail execution on 32-bit Solaris/x86.
779
780 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
781
782 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
783 (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
784 (vector::_M_move_assign): Reorder the swaps.
785
786 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
787
788 PR libstdc++/86676
789 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
790 same alignment for post-release allocation.
791
792 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
793
794 PR libstdc++/86676
795 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
796 buffer being misaligned and so returned pointer not being at start.
797
798 * include/experimental/memory_resource: Include <cstddef> header.
799
800 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
801 * src/Makefile.am: Add comment.
802 * src/c++17/Makefile.in: Regenerate.
803
804 * include/Makefile.am: Add new <bits/unique_lock.h> header.
805 * include/Makefile.in: Regenerate.
806 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
807 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
808 (unique_lock): Move definition to ...
809 * include/bits/unique_lock.h: New header.
810 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
811 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
812 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
813 (unique_lock::try_lock_for): Define only when <chrono> is usable.
814 * include/std/condition_variable: Include <bits/unique_lock.h>.
815 * include/std/mutex: Likewise.
816
817 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
818
819 * config/abi/pre/gnu.ver: Export new symbols.
820 * configure: Regenerate.
821 * include/Makefile.am: Add new <memory_resource> header.
822 * include/Makefile.in: Regenerate.
823 * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
824 * include/std/memory_resource: New header.
825 (memory_resource, polymorphic_allocator, new_delete_resource)
826 (null_memory_resource, set_default_resource, get_default_resource)
827 (pool_options, monotonic_buffer_resource): Define.
828 * src/Makefile.am: Add c++17 directory.
829 * src/Makefile.in: Regenerate.
830 * src/c++11/Makefile.am: Fix comment.
831 * src/c++17/Makefile.am: Add makefile for new sub-directory.
832 * src/c++17/Makefile.in: Generate.
833 * src/c++17/memory_resource.cc: New.
834 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
835 (default_res, new_delete_resource, null_memory_resource)
836 (set_default_resource, get_default_resource): Define.
837 * testsuite/20_util/memory_resource/1.cc: New test.
838 * testsuite/20_util/memory_resource/2.cc: New test.
839 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
840 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
841 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
842 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
843 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
844 New test.
845 * testsuite/20_util/polymorphic_allocator/1.cc: New test.
846 * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
847 * testsuite/20_util/polymorphic_allocator/select.cc: New test.
848 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
849 Define concrete memory resource for testing.
850 (__gnu_test::default_resource_mgr): Define RAII helper for changing
851 default resource.
852
853 PR libstdc++/86658
854 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
855 parameter by reference, to avoid copying invalid iterators.
856 * testsuite/25_algorithms/copy/86658.cc: New test.
857
858 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
859 local variables for number of digits instead of type aliases.
860 (__log2p1): Remove redundant branch also checked in __countl_zero.
861
862 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
863 conditions. Add comments.
864 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
865 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
866 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
867
868 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
869 (__uses_allocator_helper): Check conditions directly instead of
870 using __is_erased_or_convertible.
871
872 * include/experimental/memory_resource: Adjust comments and
873 whitespace.
874 (__resource_adaptor_imp): Add second template parameter for type of
875 memory resource base class.
876 (memory_resource): Define default constructor, destructor, copy
877 constructor and copy assignment operator as defaulted.
878
879 PR libstdc++/70966
880 * include/experimental/memory_resource (__get_default_resource): Use
881 placement new to create an object with dynamic storage duration.
882
883 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
884
885 PR libstdc++/70940
886 * include/experimental/memory_resource
887 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
888 (__resource_adaptor_common::__guaranteed_alignment): New helper to
889 give maximum alignment an allocator guarantees. Specialize for known
890 allocators using new and malloc.
891 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
892 (__resource_adaptor_imp::do_deallocate): Likewise.
893 * testsuite/experimental/memory_resource/new_delete_resource.cc:
894 Check that new and delete are called with expected sizes.
895
896 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
897
898 PR libstdc++/86595
899 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
900 noexcept.
901
902 2018-07-20 Fangrui Song <maskray@google.com>
903
904 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
905 _GLIBCXX_VISIBILITY(default).
906
907 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
908
909 PR libstdc++/86603
910 * include/std/version: Move __cpp_lib_list_remove_return_type macro.
911
912 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
913
914 * include/std/type_traits (__is_member_object_pointer_helper): Use
915 __not_<is_function<_Tp>>::type instead of integral_constant.
916 (__is_member_function_pointer_helper): Likewise for
917 is_function<_Tp>::type.
918 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
919 (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
920 (is_trivially_constructible): Remove redundant use of
921 is_constructible.
922 (__is_trivially_copy_assignable_impl): Remove redundant use of
923 is_copy_assignable.
924 (__is_trivially_move_assignable_impl): Remove redundant use of
925 is_move_assignable.
926 (is_trivially_destructible): Use __bool_constant.
927 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
928 tests for scalar types.
929
930 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
931
932 * include/bits/stl_algobase.h (__copy_move_a): Used
933 __is_trivially_copyable.
934 (__copy_move_backward_a): Likewise.
935 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
936 New test.
937
938 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
939
940 PR libstdc++/86450
941 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
942 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
943 * configure: Regenerate.
944 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
945 * doc/Makefile.in: Regenerate.
946 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
947 * include/Makefile.in: Regenerate.
948 * libsupc++/Makefile.in: Regenerate.
949 * po/Makefile.in: Regenerate.
950 * python/Makefile.in: Regenerate.
951 * src/Makefile.in: Regenerate.
952 * src/c++11/Makefile.in: Regenerate.
953 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
954 from -Wabi=2 that don't affect exported symbols.
955 * src/c++98/Makefile.in: Regenerate.
956 * src/filesystem/Makefile.in: Regenerate.
957 * testsuite/Makefile.in: Regenerate.
958
959 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
960 (_Async_state_common::_M_join): Simplify use of std::call_once and
961 corresponding explicit instantiation.
962 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
963 (__bind_simple): Remove definitions and explicit instantiation that
964 are not required by exported symbols.
965
966 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
967
968 * scripts/create_testsuite_files: Fix typo in comment.
969
970 PR libstdc++/86537
971 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
972 non-standard partial specialization.
973 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
974 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
975 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
976
977 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
978
979 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
980 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
981 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
982
983 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
984
985 * include/debug/functions.h (__gnu_debug::__check_string): Move...
986 * include/debug/string (__gnu_debug::__check_string): ... here.
987 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
988 (__glibcxx_check_string_n_constructor): New.
989 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
990 Use latter.
991 (__glibcxx_check_string_constructor): New.
992 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
993 Use latter.
994 * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
995 * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
996
997 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
998
999 PR libstdc++/84928 use std::move in <numeric> algorithms
1000 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
1001 conditionally move, according to __cplusplus value.
1002 (accumulate, inner_product, partial_sum, adjacent_difference): Use
1003 _GLIBCXX_MOVE_IF_20.
1004 * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
1005 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
1006 * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
1007 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
1008
1009 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
1010
1011 P0935R0 Eradicating unnecessarily explicit default constructors
1012 * config/abi/pre/gnu.ver: Tighten existing patterns and export new
1013 default constructor symbols.
1014 * include/std/sstream (basic_stringbuf, basic_istringstream)
1015 (basic_ostringstream, basic_stringstream): Remove default arguments
1016 from explicit constructors taking ios_base::openmode and add separate
1017 non-explicit default constructors.
1018 * testsuite/27_io/basic_istringstream/cons/default.cc: New.
1019 * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
1020 * testsuite/27_io/basic_stringstream/cons/default.cc: New.
1021 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
1022 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
1023
1024 * include/std/variant (__accepted_index): Use void_t.
1025
1026 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
1027
1028 PR libstdc++/85831
1029 * config/abi/pre/gnu.ver: Export move constructors and move
1030 assignment operators for std::logic_error and std::runtime_error.
1031 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
1032 _GLIBCXX_USE_NOEXCEPT.
1033 (logic_error, runtime_error): Declare move constructors and move
1034 assignment operators. When not declared already, define copy
1035 constructors and copy assignment operators as explicit-defaulted.
1036 (domain_error, invalid_argument, length_error, out_of_range)
1037 (overflow_error, underflow_error): Define move constructors and move
1038 assignment operators as explicitly-defaulted.
1039 * libsupc++/exception.h (exception): Likewise.
1040 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
1041 move constructors and move assignment operators as defaulted.
1042 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
1043 assignment operators are defined.
1044
1045 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
1046 COW strings.
1047 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1048 Likewise.
1049 * testsuite/21_strings/basic_string/requirements/
1050 explicit_instantiation/debug.cc: Likewise.
1051
1052 PR libstdc++/58265
1053 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1054 (basic_string::assign(basic_string&&)): Add conditional noexcept
1055 depending on the allocator's is_always_equal property (LWG 2063).
1056 * testsuite/21_strings/basic_string/modifiers/assign/char/
1057 move_assign.cc: Check for non-throwing exception specification.
1058 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
1059 move_assign.cc: Likewise.
1060
1061 PR libstdc++/58265
1062 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1063 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
1064 Add GLIBCXX_NOEXCEPT.
1065 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
1066 to depend on the allocator's is_always_equal property (LWG 2063).
1067 (basic_string::swap(basic_string&)): Likewise.
1068 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
1069 (basic_string::swap(basic_string&)): Likewise.
1070 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1071 Check is_nothrow_move_assignable.
1072 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1073 Check is_nothrow_move_assignable.
1074 * testsuite/21_strings/basic_string/cons/char/
1075 noexcept_move_construct.cc: Likewise.
1076 * testsuite/21_strings/basic_string/cons/wchar_t/
1077 noexcept_move_construct.cc: Likewise.
1078
1079 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1080
1081 P0646R1 Improving the Return Value of Erase-Like Algorithms I
1082 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
1083 Define.
1084 (forward_list::__remove_return_type): Define typedef as size_type or
1085 void, according to __cplusplus value.
1086 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1087 empty, according to __cplusplus value.
1088 (forward_list::remove, forward_list::unique): Use typedef and macro
1089 to change return type and add abi-tag for C++2a.
1090 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1091 typedef to change return type for C++2a.
1092 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
1093 (forward_list::remove, forward_list::remove_if<Pred>)
1094 (forward_list::unique<BinPred>): Return number of removed elements
1095 for C++2a.
1096 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
1097 (list::remove, list::unique, list::remove_if<Predicate>)
1098 (list::unique<BinaryPredicate>): Return number of removed elements
1099 for C++2a.
1100 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
1101 (list::__remove_return_type): Define typedef as size_type or
1102 void, according to __cplusplus value.
1103 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1104 empty, according to __cplusplus value.
1105 (list::remove, list::unique): Use typedef and macro to change return
1106 type and add abi-tag for C++2a.
1107 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
1108 typedef to change return type for C++2a.
1109 * include/std/version (__cpp_lib_list_remove_return_type): Define.
1110 * testsuite/23_containers/forward_list/operations/
1111 remove_cxx20_return.cc: New.
1112 * testsuite/23_containers/forward_list/operations/
1113 unique_cxx20_return.cc: New.
1114
1115 P0458R2 Checking for Existence of an Element in Associative Containers
1116 * include/bits/stl_map.h (map::contains): Add for C++2a.
1117 * include/bits/stl_multimap.h (multimap::contains): Likewise.
1118 * include/bits/stl_multiset.h (multiset::contains): Likewise.
1119 * include/bits/stl_set.h (set::contains): Likewise.
1120 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
1121 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
1122 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
1123 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
1124 * include/bits/unordered_map.h (unordered_map::contains)
1125 (unordered_multimap::contains): Add for C++2a.
1126 * include/bits/unordered_set.h (unordered_set::contains)
1127 (unordered_multiset::contains): Likewise.
1128 * testsuite/23_containers/map/operations/contains.cc: New.
1129 * testsuite/23_containers/multimap/operations/contains.cc: New.
1130 * testsuite/23_containers/multiset/operations/contains.cc: New.
1131 * testsuite/23_containers/set/operations/contains.cc: New.
1132 * testsuite/23_containers/unordered_map/operations/contains.cc: New.
1133 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1134 New.
1135 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1136 New.
1137 * testsuite/23_containers/unordered_set/operations/contains.cc: New.
1138
1139 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
1140
1141 PR libstdc++/86272
1142 * include/debug/string
1143 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
1144 Use __glibcxx_check_insert_range.
1145 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
1146 __gnu_debug::string when _GLIBCXX_DEBUG.
1147 * 21_strings/basic_string/init-list.cc: Likewise.
1148 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
1149 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
1150 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
1151 * 21_strings/basic_string/types/1.cc: Likewise.
1152
1153 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1154
1155 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
1156 target for std::random_device.
1157 * testsuite/26_numerics/random/random_device/cons/default.cc:
1158 Likewise.
1159 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1160 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1161 * testsuite/experimental/random/randint.cc: Likewise.
1162 * testsuite/lib/libstdc++.exp
1163 (check_effective_target_random_device): New proc.
1164
1165 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1166 Jakub Jelinek <jakub@redhat.com>
1167
1168 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
1169
1170 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1171
1172 PR libstdc++/86398
1173 * include/std/type_traits (is_trivially_constructible): Check
1174 is_constructible before __is_trivially_constructible.
1175 * testsuite/20_util/is_trivially_constructible/value.cc: Add more
1176 tests, including negative cases.
1177 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
1178 zero for dg-error lineno.
1179 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1180 Likewise.
1181
1182 * include/std/bit (__rotl, __rotr): Avoid branch.
1183 (_If_is_unsigned_integer): Use remove_cv_t.
1184 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
1185
1186 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
1187
1188 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
1189 * include/Makefile.am: Add new header.
1190 * include/Makefile.in: Regenerate.
1191 * include/precompiled/stdc++.h: Include new header.
1192 * include/std/bit: New header.
1193 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
1194 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
1195 Define for C++14.
1196 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
1197 (countr_one, popcount): Define for C++2a. Also overload for std::byte.
1198 (ispow2, ceil2, floor2, log2p1): Define for C++2a.
1199 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
1200 std::byte.
1201 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
1202 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
1203 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
1204 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
1205 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
1206 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
1207 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
1208 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
1209 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
1210 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
1211
1212 * include/bits/alloc_traits.h: Remove redundant preprocessor
1213 condition.
1214
1215 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
1216
1217 * include/bits/stl_algobase.h (__niter_wrap): New.
1218 (__copy_move_a2(_II, _II, _OI)): Use latter.
1219 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
1220 (fill_n(_OI, _Size, const _Tp&)): Likewise.
1221 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
1222 * include/debug/stl_iterator.h
1223 (std::__niter_base(const __gnu_cxx::_Safe_iterator<
1224 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
1225 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
1226 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
1227
1228 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
1229
1230 P0758R1 Implicit conversion traits
1231 * include/std/type_traits [__cplusplus > 201703]
1232 (__is_convertible_helper::__is_nothrow_type): Define new member.
1233 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
1234 noexcept.
1235 (__is_convertible_helper<_From, _To, false>::__test_nothrow)
1236 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
1237 new members.
1238 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
1239 * testsuite/20_util/is_nothrow_convertible/value.cc: New.
1240 * testsuite/20_util/is_nothrow_convertible/requirements/
1241 explicit_instantiation.cc: New.
1242 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1243 New.
1244
1245 P0887R1 The identity metafunction
1246 * include/std/type_traits (type_identity, type_identity_t): Define
1247 for C++2a.
1248 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
1249 * testsuite/20_util/type_identity/requirements/
1250 explicit_instantiation.cc:New.
1251 * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
1252
1253 * include/bits/regex.h (sub_match::operator string_type): Call str().
1254 (sub_match::compare): Use _M_str() instead of str().
1255 (sub_match::_M_compare): New public function.
1256 (sub_match::__string_view): New helper type.
1257 (sub_match::_M_str): New overloaded functions to avoid creating a
1258 string_type object when not needed.
1259 (operator==, operator!=, operator<, operator>, operator<=, operator>=):
1260 Use sub_match::_M_compare instead of creating string_type objects.
1261 Fix Doxygen comments.
1262 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
1263 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
1264 simplify.
1265 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
1266 __enable_if_t.
1267 * include/std/type_traits (__enable_if_t): Define for C++11.
1268 * testsuite/28_regex/sub_match/compare.cc: New.
1269 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
1270 trait.
1271 (input_iterator_wrapper): Use remove_cv for value_type argument of
1272 std::iterator base class.
1273
1274 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
1275
1276 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
1277 Add whitespace to dejagnu directive.
1278 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
1279
1280 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
1281
1282 * include/bits/stl_vector.h
1283 (struct _Vector_base<>::_Vector_impl_data): New.
1284 (struct _Vector_base<>::_Vector_impl): Inherit from latter.
1285 (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
1286 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
1287 (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
1288 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
1289 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
1290 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
1291 (_Vector_base()): Default.
1292 (_Vector_base(_Vector_base&&)): Default.
1293 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
1294 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
1295 (_Vector_base::_M_create_storage(size_t)): Make protected.
1296 (vector()): Default.
1297 (vector(vector&&)): Default.
1298 (vector(vector&&, const allocator_type&, true_type)): New.
1299 (vector(vector&&, const allocator_type&, false_type)): New.
1300 (vector(vector&&, const allocator_type&)): Use latters.
1301 (vector(_InputIte, _InputIte, const allocator_type&)): Call
1302 _M_range_initialize directly.
1303 * include/debug/vector
1304 (vector(vector&&, const allocator_type&)): Add noexcept qualification.
1305 * testsuite/23_containers/vector/allocator/default_init.cc: New.
1306 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
1307 static assertions.
1308
1309 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
1310
1311 * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
1312 (__is_byte<byte>): Define specialization for std::byte.
1313
1314 PR libstdc++/86138
1315 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
1316 Declare explicit instantiations of COW empty reps and I/O functions.
1317
1318 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
1319
1320 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
1321 directives.
1322 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1323
1324 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
1325
1326 * include/bits/regex.tcc (regex_iterator::operator==): Add missing
1327 noexcept.
1328
1329 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
1330
1331 PR libstdc++/86112
1332 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
1333 Replace dict comprehension.
1334
1335 PR libstdc++/81092
1336 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1337
1338 PR libstdc++/86292
1339 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
1340 Add try-catch block.
1341 * testsuite/23_containers/vector/cons/86292.cc: New.
1342
1343 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
1344
1345 * include/experimental/algorithm (sample, shuffle): Add new overloads
1346 using per-thread random number engine.
1347 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
1348 dependencies by using __gnu_test::test_container.
1349 * testsuite/experimental/algorithm/sample-2.cc: New.
1350 * testsuite/experimental/algorithm/shuffle.cc: New.
1351
1352 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
1353
1354 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
1355 different size_t mangling on 32-bit targets.
1356
1357 PR libstdc++/86280
1358 * include/experimental/memory_resource
1359 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
1360 enough for result of left shift.
1361
1362 PR libstdc++/86138
1363 * include/bits/basic_string.tcc:
1364 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
1365 (basic_string<char>::_Rep::_S_empty_rep_storage)
1366 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
1367 instantiation declarations.
1368 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
1369 explicit instantiation declarations.
1370 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
1371 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
1372
1373 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
1374
1375 PR libstdc++/83328
1376 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
1377 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
1378 * configure: Regenerate.
1379 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1380 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
1381 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1382 (basic_string::insert(iterator, initializer_list<C>)): Suppress
1383 definition.
1384 * include/debug/string (basic_string::insert(iterator, C)): Change
1385 first parameter to const_iterator.
1386 (basic_string::insert(iterator, size_type, C)): Likewise. Change
1387 return type to iterator.
1388 (basic_string::insert(iterator, InputIterator, InputIterator)):
1389 Likewise.
1390 (basic_string::insert(iterator, initializer_list<C>)): Change first
1391 parameter to const_iterator and return type to iterator.
1392 * src/c++11/string-inst.cc: Extend comment.
1393 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
1394 New.
1395 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
1396 New.
1397 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1398
1399 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1400
1401 PR libstdc++/70940
1402 * include/experimental/memory_resource
1403 (__resource_adaptor_imp::do_deallocate): Add missing return.
1404 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
1405 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1406 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
1407 __gnu_cxx::malloc_allocator.
1408
1409 PR libstdc++/70940
1410 * include/experimental/memory_resource (__resource_adaptor_common):
1411 New base class.
1412 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
1413 pointer from unaligned, and vice versa.
1414 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
1415 allocated pointer to meet alignment request.
1416 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
1417 original pointer for deallocation.
1418 (__resource_adaptor_imp::do_is_equal): Reformat.
1419 (__resource_adaptor_imp::_S_aligned_size): Remove.
1420 (__resource_adaptor_imp::_S_supported): Remove.
1421 (new_delete_resource): Use __gnu_cxx::new_allocator.
1422 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1423 extended alignments and use debug_allocator to check for matching
1424 allocate/deallocate pairs.
1425
1426 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
1427
1428 * include/debug/safe_iterator.h
1429 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
1430 Compare __x base iterator with a value-initialized iterator of the
1431 same type.
1432
1433 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
1434
1435 PR libstdc++/70966
1436 * include/experimental/memory_resource (__resource_adaptor_imp): Add
1437 static assertions to enforce requirements on pointer types.
1438 (__resource_adaptor_imp::get_allocator()): Add noexcept.
1439 (new_delete_resource, null_memory_resource): Return address of an
1440 object with dynamic storage duration.
1441 (__null_memory_resource): Remove.
1442 * testsuite/experimental/memory_resource/70966.cc: New.
1443
1444 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
1445 missed from recent commit.
1446
1447 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
1448
1449 * include/std/utility: Remove unused <exception> header.
1450
1451 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
1452
1453 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
1454 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
1455 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
1456 a specialization of std::pair.
1457 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
1458 pair elements are constructed correctly.
1459
1460 LWG 2989 hide path iostream operators from normal lookup
1461 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
1462 friends.
1463 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
1464
1465 LWG 3050 Fix cv-qualification of convertibility constraints
1466 * include/std/chrono (duration, operator*, operator/, operator%): Use
1467 const-qualified type as source type in is_convertible constraints.
1468 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
1469 * testsuite/20_util/duration/cons/dr3050.cc: New.
1470 * testsuite/20_util/duration/literals/range.cc: Rename to...
1471 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
1472 dg-error lineno.
1473
1474 2018-06-18 Maya Rashish <coypu@sdf.org>
1475
1476 * crossconfig.m4: Handle OpenBSD just like NetBSD.
1477 * configure: Rebuilt.
1478
1479 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
1480
1481 P0754R2 <version> header
1482 * include/Makefile.am: Add new header.
1483 * include/Makefile.in: Regenerate.
1484 * include/bits/c++config: Change doxygen comment to suggest <version>
1485 instead of <iosfwd>.
1486 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
1487 unconditionally. Add C++17 and C++20 headers.
1488 * include/std/version: New header.
1489 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
1490 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
1491 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
1492 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
1493 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
1494 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
1495 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1496 New.
1497 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
1498 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
1499 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
1500 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
1501 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
1502 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
1503 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
1504 New.
1505 * testsuite/18_support/headers/version/macros.cc: New.
1506 * testsuite/18_support/headers/version/macros.cc: New.
1507
1508 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
1509 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
1510 symlink.
1511 * config.h.in: Regenerate.
1512 * configure: Regenerate.
1513 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
1514
1515 LWG 3035. std::allocator's constructors should be constexpr
1516 * include/bits/allocator.h (allocator): Add constexpr to constructors
1517 for C++2a. Replace dynamic exception specifications with NOTHROW
1518 macro.
1519 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
1520 NOTHROW.
1521 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
1522 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
1523 to constructors for C++2a.
1524 * include/ext/new_allocator.h (new_allocator): Likewise.
1525
1526 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
1527
1528 LWG 3076 basic_string CTAD ambiguity
1529 * doc/xml/manual/intro.xml: Document LWG 3076 change.
1530 * include/bits/basic_string.h
1531 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1532 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
1533 template constrained by _RequireAllocator.
1534 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
1535 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
1536 Define.
1537 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1538 deduction
1539 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1540 Likewise.
1541
1542 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
1543
1544 PR libstdc++/86169
1545 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1546 (basic_string::data()): Unshare string.
1547 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1548 New.
1549
1550 * include/std/string_view (basic_string_view(const CharT*)): Remove
1551 check for null pointer and add nonnull attribute.
1552 (compare(const CharT*), compare(size_type, size_type, const CharT*))
1553 (find(const CharT*, size_type), rfind(const CharT*, size_type))
1554 (find_first_of(const CharT*, size_type))
1555 (find_last_of(const CharT*, size_type))
1556 (find_first_not_of(const CharT*, size_type))
1557 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
1558 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
1559 * testsuite/21_strings/basic_string_view/operations/compare/char/
1560 nonnull.cc: New.
1561 * testsuite/21_strings/basic_string_view/operations/find/char/
1562 nonnull.cc: New.
1563 * testsuite/21_strings/basic_string_view/operations/rfind/char/
1564 nonnull.cc: New.
1565
1566 PR libstdc++/86168
1567 * include/bits/random.h (random_device(const string&)): Remove
1568 default argument.
1569
1570 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
1571 define for C++17 and above.
1572
1573 LWG 2993 reference_wrapper<T> conversion from T&&
1574 * doc/xml/manual/intro.xml: Document LWG 2993 change.
1575 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
1576 (reference_wrapper(_Tp&&)): Remove.
1577 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
1578 template.
1579 (reference_wrapper): Add deduction guide.
1580 * testsuite/20_util/reference_wrapper/deduction.cc: New.
1581 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
1582
1583 LWG 3039 Unnecessary decay in thread and packaged_task
1584 * include/std/future (__constrain_pkgdtask): Replace with ...
1585 (packaged_task::__not_same): New alias template, using
1586 __remove_cvref_t instead of decay.
1587 * include/std/thread (thread::__not_same): Add comment.
1588
1589 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
1590
1591 LWG 3075 basic_string needs deduction guides from basic_string_view
1592 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1593 deduction from string views.
1594 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1595 Likewise.
1596
1597 LWG 3074 make scalar types non-deduced in valarray non-member functions
1598 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
1599 scalar parameters to be a non-deduced context.
1600 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
1601 whitespace.
1602 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
1603 * testsuite/26_numerics/valarray/transcend.cc: New.
1604
1605 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
1606 Move back to <utility>.
1607 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
1608 Restore to here.
1609
1610 P0935R0 Eradicating unnecessarily explicit default constructors
1611 * include/backward/strstream (strstreambuf): Add non-explicit default
1612 constructor.
1613 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
1614 Likewise.
1615 * include/bits/regex.h (match_results): Likewise.
1616 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
1617 default constructor.
1618 * testsuite/22_locale/conversions/string/1.cc: Likewise.
1619 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
1620 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
1621
1622 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
1623 macro from <utility> and change type to long.
1624 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
1625 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
1626 macro.
1627
1628 P0935R0 Eradicating unnecessarily explicit default constructors
1629 * include/bits/random.h (uniform_real_distribution::param_type)
1630 (normal_distribution::param_type, lognormal_distribution::param_type)
1631 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1632 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1633 (student_t_distribution::param_type)
1634 (bernoulli_distribution::param_type)
1635 (binomial_distribution::param_type)
1636 (geometric_distribution::param_type)
1637 (negative_binomial_distribution::param_type)
1638 (poisson_distribution::param_type)
1639 (exponential_distribution::param_type)
1640 (weibull_distribution::param_type)
1641 (extreme_value_distribution::param_type): Add non-explicit default
1642 constructors. Remove default argument for first parameter of explicit
1643 constructors.
1644 * include/bits/uniform_int_dist.h
1645 (uniform_int_distribution::param_type): Likewise.
1646 * include/ext/random
1647 (beta_distribution::param_type, rice_distribution::param_type)
1648 (nakagami_distribution::param_type, pareto_distribution::param_type)
1649 (k_distribution::param_type, arcsine_distribution::param_type)
1650 (hoyt_distribution::param_type, triangular_distribution::param_type)
1651 (von_mises_distribution::param_type)
1652 (hypergeometric_distribution::param_type)
1653 (logistic_distribution::param_type)
1654 (uniform_inside_sphere_distribution::param_type): Likewise.
1655 (uniform_on_sphere_distribution::param_type): Make default constructor
1656 non-explicit.
1657 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1658 Test param_type for non-explicit default constructor.
1659 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1660 Likewise.
1661 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1662 Likewise.
1663 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1664 Likewise.
1665 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1666 Likewise.
1667 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1668 Likewise.
1669 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1670 Likewise.
1671 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1672 Likewise.
1673 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1674 Likewise.
1675 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1676 Likewise.
1677 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1678 Likewise.
1679 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1680 Likewise.
1681 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1682 Likewise.
1683 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1684 Likewise.
1685 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1686 Likewise.
1687 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1688 Likewise.
1689 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1690 Likewise.
1691 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1692 Likewise.
1693 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1694 Likewise.
1695 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1696 Likewise.
1697 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1698 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1699 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1700 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1701 Likewise.
1702 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1703 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1704 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1705 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1706 Likewise.
1707 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1708 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1709 * testsuite/ext/random/triangular_distribution/cons/default.cc:
1710 Likewise.
1711 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1712 Likewise.
1713 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1714 Likewise.
1715 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1716 Likewise.
1717
1718 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
1719 Jonathan Wakely <jwakely@redhat.com>
1720
1721 PR libstdc++/83982
1722 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
1723 Default-construct new elements before moving existing ones.
1724 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
1725 New.
1726
1727 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
1728
1729 PR libstdc++/86127
1730 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
1731 unused typedef.
1732 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
1733 Use node allocator to create and destroy elements.
1734 (forward_list::_Tp_alloc_type): Remove unused typedef.
1735 (forward_list::_Alloc_traits): Use allocator_traits instead of
1736 __gnu_cxx::__alloc_traits.
1737
1738 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
1739
1740 * include/debug/helper_functions.h
1741 (__gnu_debug::_Safe_iterator<>): Add declaration.
1742 (__can_advance(_Ite, _Size)): New.
1743 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
1744 * include/debug/functions.h
1745 (__gnu_debug::_Safe_iterator<>): Remove declaration.
1746 * include/debug/stl_iterator.h
1747 (__can_advance(const _Safe_iterator<>&)): New definition.
1748 * include/debug/stl_iterator.h
1749 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
1750 (__can_advance(const std::move_iterator<>&, _Size)): New.
1751 * include/debug/macros.h (__glibcxx_check_can_increment): New.
1752 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
1753 * include/bits/stl_algobase.h (fill_n): Use latter.
1754 * testsuite/25_algorithms/fill_n/2.cc: New.
1755 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
1756 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
1757 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
1758 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
1759
1760 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
1761 (__glibcxx_requires_can_decrement_range): New.
1762
1763 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
1764
1765 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
1766 (__glibcxx_check_can_decrement_range): New.
1767 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
1768 __glibcxx_requires_can_increment_range.
1769 (std::move(_II, _II, _OI)): Likewise.
1770 (std::copy_backward(_BI, _BI, _BI2)): Use
1771 __glibcxx_requires_can_decrement_range.
1772 (std::move_backward(_BI, _BI, _BI2)): Likewise.
1773 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
1774 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
1775 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
1776 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
1777 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
1778 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
1779
1780 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
1781
1782 P0935R0 Eradicating unnecessarily explicit default constructors
1783 * include/bits/random.h (linear_congruential_engine)
1784 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
1785 (uniform_real_distribution, normal_distribution)
1786 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
1787 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
1788 (bernoulli_distribution, binomial_distribution,geometric_distribution)
1789 (negative_binomial_distribution, exponential_distribution)
1790 (weibull_distribution, extreme_value_distribution): Add non-explicit
1791 default constructors. Remove default argument for first parameter of
1792 explicit constructors.
1793 (piecewise_constant_distribution, piecewise_linear_distribution):
1794 Make default constructor non-explicit.
1795 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
1796 non-explicit default constructors. Remove default argument for first
1797 parameter of explicit constructor.
1798 * include/ext/random
1799 (simd_fast_mersenne_twister_engine, beta_distribution)
1800 (rice_distribution, nakagami_distribution, pareto_distribution)
1801 (k_distribution, arcsine_distribution, hoyt_distribution)
1802 (triangular_distribution, von_mises_distribution)
1803 (hypergeometric_distribution, logistic_distribution)
1804 (uniform_inside_sphere_distribution): Likewise.
1805 (uniform_on_sphere_distribution): Make default constructor
1806 non-explicit.
1807 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1808 Test for non-explicit default constructor. Fix references to standard.
1809 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1810 Likewise.
1811 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1812 Likewise.
1813 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1814 Likewise.
1815 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1816 Likewise.
1817 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1818 Likewise.
1819 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1820 Likewise.
1821 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1822 Likewise.
1823 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1824 Likewise.
1825 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1826 Likewise.
1827 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1828 Likewise.
1829 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1830 Likewise.
1831 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1832 Likewise.
1833 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1834 Likewise.
1835 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1836 Likewise.
1837 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1838 Likewise.
1839 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1840 Likewise.
1841 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1842 Likewise.
1843 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1844 Likewise.
1845 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1846 Likewise.
1847 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1848 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1849 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1850 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1851 Likewise.
1852 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1853 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1854 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1855 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1856 Likewise.
1857 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1858 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1859 * testsuite/ext/random/triangular_distribution/cons/default.cc:
1860 Likewise.
1861 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1862 Likewise.
1863 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1864 Likewise.
1865 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1866 Likewise.
1867 * testsuite/util/testsuite_common_types.h
1868 (implicitly_default_constructible): New helper.
1869
1870 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
1871
1872 * include/bits/ios_base.h (ios::Init::Init(const Init&))
1873 (ios::Init::operator=): Define as defaulted.
1874 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
1875 Likewise.
1876 * include/bits/stream_iterator.h (istream_iterator::operator=)
1877 (ostream_iterator::operator=): Likewise.
1878 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
1879 Likewise.
1880 * include/std/bitset (bitset::reference::reference(const reference&)):
1881 Likewise.
1882 * include/std/complex (complex<float>::complex(const complex&))
1883 (complex<double>::complex(const complex&))
1884 (complex<long double>::complex(const complex&)): Likewise.
1885
1886 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
1887
1888 * include/bits/regex.h (sub_match): Add noexcept to default
1889 constructor and length observer.
1890 (match_results): Add noexcept to default constructor and observers
1891 with no preconditions. Define destructor as defaulted.
1892 (operator==, operator!=, swap): Add noexcept.
1893 (regex_iterator): Add default member initializers and define default
1894 constructor and destructor as defaulted. Add noexcept to equality
1895 and dereference operators.
1896
1897 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
1898
1899 * src/c++11/debug.cc
1900 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
1901 (_Safe_iterator_base::_M_detach_single()): Likewise.
1902 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
1903 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
1904
1905 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
1906
1907 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
1908 move of const value.
1909
1910 2018-06-06 Jakub Jelinek <jakub@redhat.com>
1911
1912 PR c++/86068
1913 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
1914 rather than __cpp_transactional_memory >= 201505L.
1915
1916 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
1917
1918 PR libstdc++/86008
1919 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
1920 Define new partial specialization.
1921 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
1922 new overload.
1923 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
1924 value not reference for iteration.
1925 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
1926 comment.
1927 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
1928 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
1929 comment.
1930
1931 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
1932
1933 * include/std/type_traits: Fix comment typos.
1934
1935 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
1936 mingw* targets.
1937 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
1938 * testsuite/experimental/filesystem/operations/read_symlink.cc:
1939 Likewise.
1940
1941 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
1942
1943 * include/bits/stl_tempbuf.h
1944 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
1945 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
1946 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
1947 * include/bits/stl_algo.h (__stable_partition): Adapt.
1948 (__inplace_merge): Adapt.
1949 (__stable_sort): Adapt.
1950
1951 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
1952
1953 PR libstdc++/85930
1954 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
1955 unconditionally. Remove redundant declaration.
1956 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
1957 alignment-specifier.
1958
1959 * include/bits/postypes.h (fpos): Define special members as defaulted.
1960
1961 PR libstdc++/85930
1962 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
1963 the static variable correctly.
1964
1965 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
1966
1967 PR libstdc++/78870 support std::filesystem on Windows
1968 * config.h.in: Regenerate.
1969 * configure: Regenerate.
1970 * configure.ac: Check for link, readlink and symlink.
1971 * include/bits/fs_path.h (path::operator/=(const path&)): Move
1972 definition out of class body.
1973 (path::is_absolute(), path::_M_append(path)): Likewise.
1974 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
1975 (operator>>(basic_istream, path&)): Likewise.
1976 (u8path): Reorder definitions and fix Windows implementation.
1977 (path::is_absolute()): Define inline and fix for Windows.
1978 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
1979 Define POSIX version inline.
1980 (path::_M_append(path)): Define inline.
1981 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
1982 definition out of class body.
1983 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
1984 escape characters.
1985 (operator>>(basic_istream, path&)): Likewise.
1986 (path::is_absolute()): Define inline and fix for Windows.
1987 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
1988 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
1989 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
1990 Define as adaptors for Windows functions/types or as
1991 using-declarations for POSIX functions/types.
1992 (_Dir_base, get_file_type): Qualify names to use declarations from
1993 __gnu_posix namespace.
1994 (_Dir_base::is_dor_or_dotdot): New helper functions.
1995 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
1996 names to use declarations from __gnu_posix namespace.
1997 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
1998 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
1999 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
2000 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
2001 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
2002 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
2003 Define as adaptors for Windows functions/types or as
2004 using-declarations for POSIX functions/types.
2005 (stat_type, do_copy_file): Qualify names to use declarations from
2006 __gnu_posix namespace.
2007 (do_space): Declare new function.
2008 (make_file_type): Only use S_ISLNK if defined.
2009 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
2010 path::value_type not char.
2011 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2012 names to use declarations from __gnu_posix namespace.
2013 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2014 add implementation for Windows.
2015 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2016 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2017 [!_PC_PATH_MAX]: Don't use pathconf.
2018 [PATH_MAX]: Use if defined.
2019 (filesystem::current_path(const path&, error_code&))
2020 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2021 (filesystem::last_write_time, filesystem::permissions): Use names
2022 from __gnu_posix.
2023 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2024 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2025 implementation for Windows.
2026 (filesystem::rename, filesystem::resize_file): Use names from
2027 __gnu_posix.
2028 (filesystem::space): Use do_space.
2029 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
2030 (filesystem::status, filesystem::symlink_status): Use names from
2031 __gnu_posix.
2032 (filesystem::temp_directory_path): Add implementation for Windows.
2033 * src/filesystem/path.cc (dot): Define constant.
2034 (path::replace_extension): Use dot.
2035 (path::_M_find_extension): Likewise. Use path::string_type not
2036 std::string.
2037 (path::_M_split_cmpts): Use dot.
2038 (filesystem_error::_M_get_what): Use u8string() not native().
2039 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
2040 Qualify names to use declarations from __gnu_posix namespace.
2041 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
2042 correct error_code.
2043 (filesystem::absolute(const path&, error_code&)): Add implementation
2044 for Windows.
2045 (char_ptr, filesystem::canonical): Use path::value_type not char.
2046 (do_copy_file): Use names from __gnu_posix.
2047 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
2048 sendfile.
2049 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2050 names to use declarations from __gnu_posix namespace.
2051 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2052 add implementation for Windows.
2053 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2054 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2055 [!_PC_PATH_MAX]: Don't use pathconf.
2056 [PATH_MAX]: Use if defined.
2057 (filesystem::current_path(const path&, error_code&))
2058 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2059 (filesystem::last_write_time, filesystem::permissions): Use names
2060 from __gnu_posix.
2061 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2062 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2063 implementation for Windows.
2064 (filesystem::rename, filesystem::resize_file): Use names from
2065 __gnu_posix.
2066 (do_space): Define.
2067 (filesystem::space): Use do_space.
2068 (filesystem::status, filesystem::symlink_status): Use names from
2069 __gnu_posix.
2070 (filesystem::temp_directory_path): Add implementation for Windows.
2071 * src/filesystem/std-path.cc
2072 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
2073 Define for Windows.
2074 (dot): Define constant.
2075 (path::replace_extension, is_dot): Use dot.
2076 (path::lexically_normal): Check _M_type instead of calling
2077 non-existent function.
2078 (path::_M_find_extension): Use dot. Use path::string_type not
2079 std::string.
2080 (path::_M_split_cmpts): Use dot.
2081 (filesystem_error::_M_get_what): Use u8string() not native().
2082 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
2083 use symlinks.
2084 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2085 Likewise.
2086 * testsuite/27_io/filesystem/operations/absolute.cc: Use
2087 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
2088 * testsuite/27_io/filesystem/operations/canonical.cc: Use
2089 path::string() to get narrow string, not path::native().
2090 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
2091 with std::filesystem::path not std::basic_string.
2092 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2093 * testsuite/27_io/filesystem/operations/exists.cc: Use
2094 __gnu_test::root_path() instead of "/".
2095 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
2096 fstreams with std::filesystem::path not std::basic_string.
2097 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
2098 path::string() to get narrow string.
2099 * testsuite/27_io/filesystem/operations/space.cc: Check results for
2100 errors, expect sensible values otherwise.
2101 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
2102 helpers for adjusting the environment on Windows.
2103 * testsuite/27_io/filesystem/path/append/path.cc: Test
2104 Windows-specific behaviour.
2105 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
2106 of path::string_type objects.
2107 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
2108 string to wide string on Windows.
2109 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
2110 for backslash as root-directory.
2111 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
2112 path::string() to get narrow string.
2113 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
2114 paths.
2115 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
2116 not std::string.
2117 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
2118 different definintion of absolute paths on Windows.
2119 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2120 Do not use symlinks.
2121 * testsuite/experimental/filesystem/operations/absolute.cc: Test
2122 Windows behaviour.
2123 * testsuite/experimental/filesystem/operations/copy.cc: Construct
2124 fstreams with NTCTS not std::basic_string.
2125 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2126 * testsuite/experimental/filesystem/operations/exists.cc: Use
2127 __gnu_test::root_path() instead of "/".
2128 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
2129 fstreams with NTCTS not std::basic_string.
2130 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2131 Use path::string() to get narrow string.
2132 * testsuite/experimental/filesystem/operations/space.cc: Use
2133 __gnu_test::root_path() instead of "/".
2134 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2135 Add helpers for adjusting the environment on Windows.
2136 * testsuite/experimental/filesystem/path/append/path.cc: Use
2137 path::string() to get narrow strings for comparisons.
2138 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2139 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2140 Likewise.
2141 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2142 * testsuite/experimental/filesystem/path/native/string.cc: Use
2143 string_type not std::string.
2144 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
2145 Adjust for different definintion of absolute paths on Windows.
2146 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
2147 function.
2148 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
2149 std::basic_string.
2150
2151 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
2152
2153 PR libstdc++/85951
2154 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
2155 uint_least16_t and uint_least32_t.
2156 (__make_unsigned<wchar_t>): Define unconditionally.
2157 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
2158 typedefs.
2159 (__make_unsigned_selector_base): New type to provide helper templates.
2160 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
2161 __make_unsigned_selector_base helpers.
2162 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
2163 (__make_signed_selector<_Tp, true, false>): Remove intermediate
2164 typedefs.
2165 (__make_signed<wchar_t>, __make_signed<char16_t>)
2166 (__make_signed<char32_t>)): Define unconditionally.
2167 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
2168 wchar_t, char16_t and char32_t are transformed correctly.
2169 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2170 dg-error lineno.
2171 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
2172 wchar_t, char16_t and char32_t are transformed correctly.
2173 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2174 dg-error lineno.
2175
2176 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
2177
2178 * include/std/variant (__erased_dtor): Qualify call to __get.
2179
2180 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
2181
2182 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
2183 (_Rb_tree(const allocator_type&)): Use latter.
2184 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
2185 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
2186 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2187 * include/bits/stl_multimap.h
2188 (multimap(const allocator_type&)): Likewise.
2189 (multimap(initializer_list<value_type>, const allocator_type&)):
2190 Likewise.
2191 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
2192 Likewise.
2193 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
2194 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
2195 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2196 * include/bits/stl_multiset.h
2197 (multiset(const allocator_type&)): Likewise.
2198 (multiset(initializer_list<value_type>, const allocator_type&)):
2199 Likewise.
2200 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
2201 Likewise.
2202
2203 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
2204
2205 PR libstdc++/85768
2206 * src/c++11/debug.cc: Remove backtrace usage.
2207
2208 2018-05-24 Maya Rashish <coypu@sdf.org>
2209
2210 PR target/85904
2211 * crossconfig.m4: Test for aligned_alloc on netbsd.
2212 * configure: Regenerate.
2213
2214 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
2215
2216 PR libstdc++/69769
2217 PR libstdc++/85886
2218 * include/bits/atomic_base.h (__atomic_base::value_type)
2219 (__atomic_base::difference_type): Add new typedefs.
2220 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
2221 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
2222 (atomic<T*>::operator++, atomic<T*>::operator--)
2223 (atomic<T*>::operator+=, atomic<T*>::operator-=)
2224 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
2225 to enforce C++17 requirement on pointer arithmetic.
2226 (__atomic_val_t, __atomic_diff_t): New alias templates.
2227 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
2228 (atomic_compare_exchange_weak_explicit)
2229 (atomic_compare_exchange_strong_explicit, atomic_store)
2230 (atomic_exchange, atomic_compare_exchange_weak)
2231 (atomic_compare_exchange_strong): Use __atomic_val_t to make
2232 scalar parameters be non-deduced contexts.
2233 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2234 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
2235 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
2236 parameters.
2237 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
2238 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
2239 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
2240 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2241 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
2242 address types.
2243 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
2244 * testsuite/29_atomics/atomic/69769.cc: New test.
2245 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
2246 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2247 Disable test for C++17 and later.
2248 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
2249 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
2250 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
2251 test.
2252
2253 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
2254
2255 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
2256 template to alias template.
2257 (path::__value_type_is_char): Use remove_const_t.
2258 (path:_S_string_from_iter): New helper function.
2259 (path::_S_convert(InputIter, __null_terminated))
2260 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2261 Use _S_string_from_iter.
2262 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
2263 rep for COW strings.
2264 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
2265 Change from class template to alias template.
2266 (path::__value_type_is_char): Use remove_const.
2267 (path:_S_string_from_iter): New helper function.
2268 (path::_S_convert(InputIter, __null_terminated))
2269 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2270 Use _S_string_from_iter.
2271 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
2272 wide strings.
2273 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
2274 string equality, not path equivalence.
2275 * testsuite/27_io/filesystem/path/construct/format.cc: Check
2276 construction from std::string and std::wstring and input iterators.
2277 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
2278 construction from iterators.
2279 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
2280 exact string equality, not path equivalence.
2281 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
2282 construction from iterators.
2283
2284 * include/bits/fs_path.h (path::_M_type): Change default member
2285 initializer to _Filename.
2286 (path::begin): Create past-the-end iterator for empty path.
2287 * src/filesystem/std-path.cc (path::remove_filename()): Remove
2288 debugging check.
2289 (path::has_relative_path()): Return false for empty filenames.
2290 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
2291 Fix offset of empty final component.
2292 * testsuite/27_io/filesystem/path/itr/components.cc: New.
2293 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
2294
2295 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
2296
2297 Add support for opening file streams from wide character strings.
2298 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
2299 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2300 Define new overload.
2301 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
2302 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2303 Declare new overload.
2304 * configure.ac: Check for _wfopen.
2305 * crossconfig.m4: Likewise.
2306 * configure: Regenerate.
2307 * config.h.in: Regenerate.
2308 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
2309 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2310 Define new overload.
2311 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
2312 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2313 Declare new overload.
2314 [_GLIBCXX_HAVE__WFOPEN]
2315 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2316 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
2317 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2318 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
2319 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2320 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
2321 new overloads.
2322 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
2323 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
2324 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
2325 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
2326 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
2327 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
2328 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
2329
2330 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
2331
2332 PR libstdc++/85845
2333 * include/bits/stl_tree.h
2334 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
2335 qualification.
2336
2337 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
2338
2339 * src/filesystem/std-ops.cc (absolute): Report an error for empty
2340 paths.
2341 (weakly_canonical(const path&)): Do not call canonical on empty path.
2342 (weakly_canonical(const path&, error_code&)): Likewise.
2343 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
2344
2345 PR libstdc++/85818
2346 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
2347 dg-require-filesystem-ts.
2348
2349 PR libstdc++/85843
2350 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
2351 initialize base class to avoid warnings.
2352
2353 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
2354
2355 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
2356 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
2357 little_endian element in bitmask.
2358 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
2359 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
2360
2361 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
2362
2363 * include/bits/stl_tree.h
2364 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
2365 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
2366 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
2367 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
2368 * include/debug/map.h
2369 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
2370 * include/debug/multimap.h
2371 (multimap(multimap&&, const_allocator_type&)): Likewise.
2372 * include/debug/set.h
2373 (set(set&&, const_allocator_type&)): Likewise.
2374 * include/debug/multiset.h
2375 (multiset(multiset&&, const_allocator_type&)): Likewise.
2376 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
2377 Add checks.
2378 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
2379 Add checks.
2380 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
2381 Add checks.
2382 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
2383 Add checks.
2384 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
2385 Add checks.
2386 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
2387 Add checks.
2388 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
2389 Add checks.
2390 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
2391 Add checks.
2392
2393 2018-05-18 Jason Merrill <jason@redhat.com>
2394
2395 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
2396 for conversion to const_iterator. Add defaulted copy ops.
2397 * libsupc++/new (bad_alloc): Add defaulted copy ops.
2398 * libsupc++/exception.h (exception): Add defaulted copy ops.
2399 * include/std/system_error (system_error): Add defaulted copy ops.
2400 * include/std/stdexcept (domain_error, invalid_argument)
2401 (length_error, out_of_range, range_error, overflow_error)
2402 (underflow_error): Add defaulted copy ops.
2403 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
2404 copy assignment.
2405 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
2406 * include/ext/throw_allocator.h (condition_base): Add defaulted
2407 default and copy ctor and copy assignment.
2408
2409 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
2410
2411 PR libstdc++/85098
2412 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
2413 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
2414 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
2415 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
2416 definitions.
2417 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
2418 whitespace.
2419 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
2420 braces around body of do-while.
2421 * testsuite/28_regex/basic_regex/85098.cc: New
2422
2423 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
2424
2425 PR libstdc++/85818
2426 * src/filesystem/path.cc (path::preferred_separator): Add used
2427 attribute.
2428 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
2429
2430 PR libstdc++/85812
2431 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
2432 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
2433 Refactor to separate non-throwing and throwing implementations.
2434 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
2435 if constructing the object throws.
2436
2437 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
2438
2439 PR libstdc++/85749
2440 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
2441 (linear_congruential_engine, mersenne_twister_engine)
2442 (subtract_with_carry_engine, discard_block_engine)
2443 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
2444 constrain function templates taking seed sequences.
2445 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
2446 (mersenne_twister_engine::seed(_Sseq&))
2447 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
2448 match declarations.
2449 * include/ext/random (simd_fast_mersenne_twister_engine): Use
2450 __is_seed_seq to constrain function templates taking seed sequences.
2451 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
2452 Change return type to match declaration.
2453 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
2454 New.
2455 * testsuite/26_numerics/random/independent_bits_engine/cons/
2456 seed_seq2.cc: New.
2457 * testsuite/26_numerics/random/linear_congruential_engine/cons/
2458 seed_seq2.cc: New.
2459 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
2460 seed_seq2.cc: New.
2461 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
2462 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
2463 New.
2464 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
2465 seed_seq2.cc: New.
2466 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
2467 seed_seq2.cc: New.
2468
2469 PR libstdc++/83891
2470 * include/bits/fs_path.h (path::is_absolute()): Use same definition
2471 for all operating systems.
2472 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
2473 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
2474 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
2475 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
2476
2477 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
2478 unused <vector> header.
2479 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2480 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
2481 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
2482 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
2483 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2484 Likewise.
2485 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2486 Likewise.
2487 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
2488 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
2489 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2490 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
2491 * testsuite/experimental/filesystem/path/decompose/extension.cc:
2492 Likewise.
2493 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2494 * testsuite/experimental/filesystem/path/query/has_extension.cc:
2495 Likewise.
2496 * testsuite/experimental/filesystem/path/query/has_filename.cc:
2497 Likewise.
2498 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2499 Likewise.
2500 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2501 Likewise.
2502 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2503 Likewise.
2504 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2505 Likewise.
2506 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2507 Likewise.
2508 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2509 * testsuite/experimental/filesystem/path/query/is_relative.cc:
2510 Likewise.
2511
2512 PR libstdc++/84159
2513 * include/bits/fs_path.h (path::operator/=, path::append): Construct
2514 temporary path before calling _M_append.
2515 (path::_M_append): Change parameter to path and implement C++17
2516 semantics.
2517 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
2518 and more examples from the standard.
2519 * testsuite/27_io/filesystem/path/append/source.cc: New.
2520 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
2521 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
2522
2523 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
2524 __invoke to prevent ADL.
2525
2526 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
2527
2528 PR libstdc++/81256
2529 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
2530 exceptions from _M_terminate_output().
2531 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
2532 exceptions from close().
2533 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
2534
2535 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
2536 (__valarray_get_storage): Call operator new directly. Remove ignored
2537 top-level restrict qualifier and add malloc attribute instead.
2538 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
2539
2540 PR libstdc++/67554
2541 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
2542 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
2543
2544 PR libstdc++/82966
2545 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
2546 instead of type.
2547 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
2548
2549 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2550
2551 PR libstdc++/80165
2552 * testsuite/20_util/variant/80165.cc: New.
2553
2554 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
2555
2556 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
2557 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
2558 of C++11 containers with Debug Mode support.
2559 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
2560 * doc/html/*: Regenerate.
2561
2562 2018-05-10 Jason Merrill <jason@redhat.com>
2563
2564 * include/bits/regex_compiler.h (_S_cache_size): Change from
2565 function to variable.
2566
2567 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
2568
2569 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
2570 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
2571 argument defaulted to +1. Doxy comments on same.
2572 * testsuite/special_functions/02_assoc_legendre/
2573 check_value.cc: Regen.
2574 * testsuite/tr1/5_numerical_facilities/special_functions/
2575 02_assoc_legendre/check_value.cc: Regen.
2576
2577 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
2578
2579 PR libstdc++/85729
2580 * include/bits/c++config.h (__replacement_assert): Add linkage
2581 specification.
2582 * include/bits/std_abs.h: Add comment to closing brace of block.
2583 * include/c_global/cstddef: Add linkage specification.
2584 * include/c_global/cstring: Likewise.
2585 * include/c_global/cwchar: Likewise.
2586
2587 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
2588
2589 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
2590 Rename in...
2591 (_Safe_iterator<>::_S_constant()): ...that.
2592 * include/debug/safe_local_iterator.h
2593 (_Safe_local_iterator<>::_M_constant()): Rename in...
2594 (_Safe_local_iterator<>::_S_constant()): ...that.
2595 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
2596 (_Iterator_state::__rbegin): New.
2597 (_Iterator_state::__rmiddle): New.
2598 (_Iterator_state::__rend): New.
2599 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
2600 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
2601 iterator type.
2602 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
2603 _Is_iterator)): Likewise.
2604 (_Parameter::_S_reverse_state(_Iterator_state)): New.
2605 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
2606 _Is_iterator)): New.
2607 (_Parameter(std::reverse_iterator<> const&, const char*,
2608 _Is_iterator)): New.
2609 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
2610 const char*, _Is_iterator)): New.
2611 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
2612 New.
2613 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
2614 _Is_iterator)): New.
2615 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
2616 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
2617 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
2618
2619 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
2620
2621 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
2622 Use constexpr if in C++17 mode.
2623 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
2624 Copy from const object.
2625 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
2626
2627 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
2628
2629 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
2630 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
2631 backtrace.
2632
2633 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
2634 * include/debug/functions.h (__check_valid_range): Use latter.
2635 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
2636 use latter.
2637 * include/debug/deque
2638 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2639 * include/debug/forward_list
2640 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
2641 Likewise.
2642 * include/debug/list
2643 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2644 * include/debug/list
2645 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2646 * include/debug/map.h
2647 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2648 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2649 Likewise.
2650 * include/debug/multimap.h
2651 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2652 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
2653 const _Alloc&)): Likewise.
2654 * include/debug/set.h
2655 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2656 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2657 Likewise.
2658 * include/debug/multiset.h
2659 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2660 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
2661 const _Alloc&)): Likewise.
2662 * include/debug/string
2663 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
2664 Likewise.
2665 * include/debug/unordered_map
2666 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
2667 Likewise.
2668 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
2669 const _Alloc&)): Likewise.
2670 * include/debug/unordered_set
2671 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
2672 Likewise.
2673 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
2674 const _Alloc&)): Likewise.
2675 * include/debug/vector
2676 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2677
2678 * include/debug/formatter.h (_Error_formatter::_M_function): New.
2679 (_Error_formatter(const char*, unsigned int)): Adapt.
2680 (_Error_formatter::_M_at): Rename in...
2681 (_Error_formatter::_S_at): ...that and adapt.
2682 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
2683 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
2684 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
2685 when available.
2686
2687 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
2688
2689 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
2690 Use normal std::vector even in Debug Mode.
2691
2692 PR libstdc++/85672
2693 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
2694 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
2695 * include/Makefile.in: Regenerate.
2696 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
2697 within conditional block.
2698
2699 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
2700
2701 * doc/xml/manual/using.xml (table.cmd_options): Document that the
2702 C++17 Filesystem implementation also needs -lstdc++fs.
2703
2704 PR libstdc++/85671
2705 * include/bits/fs_path.h (operator/): Permit copy elision.
2706 * include/experimental/bits/fs_path.h (operator/): Likewise.
2707
2708 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
2709
2710 Moar PR libstdc++/80506
2711 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
2712 Fix magic number used in loop condition.
2713
2714 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
2715
2716 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
2717 * include/std/optional (_Optional_payload): Add noexcept to default
2718 constructor. Re-indent.
2719 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
2720 constructor for copying disengaged payloads.
2721 (_Optional_payload<_Tp, true, false, true>): Likewise.
2722 (_Optional_payload<_Tp, true, true, false>): Likewise.
2723 (_Optional_payload<_Tp, true, false, false>): Likewise.
2724 * testsuite/20_util/optional/cons/85642.cc: New.
2725 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
2726
2727 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
2728
2729 PR libstdc++/82644
2730 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
2731 inline definitions instead of using-declarations.
2732 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
2733 * testsuite/tr1/5_numerical_facilities/special_functions/
2734 07_conf_hyperg/compile_cxx17.cc: New.
2735 * testsuite/tr1/5_numerical_facilities/special_functions/
2736 17_hyperg/compile_cxx17.cc: New.
2737
2738 PR libstdc++/84769
2739 * include/std/variant (visit): Qualify std::get call.
2740
2741 PR libstdc++/85632 use uintmax_t for arithmetic
2742 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
2743 arithmetic in result type.
2744 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
2745 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
2746 is greater than free space.
2747 * testsuite/experimental/filesystem/operations/space.cc: New.
2748
2749 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
2750 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2751 New.
2752 * testsuite/20_util/remove_cvref/value.cc: New.
2753 * testsuite/20_util/remove_cvref/value_ext.cc: New.
2754
2755 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
2756 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
2757 (append(const basic_string&, size_type, size_type)
2758 (assign(const basic_string&, size_type, size_type)
2759 (insert(size_type, const basic_string&, size_type, size_type)
2760 (replace(size_type,size_type,const basic_string&,size_type,size_type)
2761 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2762 Add default arguments (LWG 2268).
2763 [_GLIBCXX_USE_CXX11_ABI=0]
2764 (append(const basic_string&, size_type, size_type)
2765 (assign(const basic_string&, size_type, size_type)
2766 (insert(size_type, const basic_string&, size_type, size_type)
2767 (replace(size_type,size_type,const basic_string&,size_type,size_type)
2768 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2769 Likewise.
2770 * testsuite/21_strings/basic_string/dr2268.cc: New test.
2771
2772 PR libstdc++/84535
2773 * include/std/thread (thread::__not_same): New SFINAE helper.
2774 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
2775 first argument is not a std::thread. Add static assertion to check
2776 INVOKE expression is valid.
2777 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
2778 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
2779 __invoke_result for return types and remove exception specifications.
2780 * testsuite/30_threads/thread/cons/84535.cc: New.
2781
2782 * include/std/future (__async_result_of): Use __invoke_result instead
2783 of result_of.
2784
2785 * include/std/any (any_cast): Use __remove_cvref_t.
2786 * include/std/tuple (__make_tuple): Likewise.
2787 * include/std/type_traits (__remove_cvref_t): Define.
2788 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
2789 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
2790 * include/std/variant (__erased_hash): Use __remove_cvref_t.
2791
2792 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
2793
2794 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
2795 ensure overloaded comma not used.
2796 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
2797 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
2798 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
2799 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
2800 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
2801 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
2802 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
2803
2804 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
2805
2806 PR libstdc++/68197
2807 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
2808 indices to unsigned.
2809 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
2810 as failure. Refactor error handling.
2811 * testsuite/27_io/ios_base/storage/68197.cc: New.
2812
2813 PR libstdc++/57997
2814 PR libstdc++/83860
2815 * include/bits/gslice_array.h (gslice_array): Define default
2816 constructor as deleted, as per C++11 standard.
2817 * include/bits/mask_array.h (mask_array): Likewise.
2818 * include/bits/slice_array.h (slice_array): Likewise.
2819 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
2820 to namespace __detail.
2821 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
2822 members.
2823 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
2824 of data members in closure objects.
2825 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
2826 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
2827 __detail.
2828 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
2829 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
2830 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
2831 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
2832 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
2833 using-declarations to namespace std.
2834 * testsuite/26_numerics/valarray/83860.cc: New.
2835
2836 * testsuite/backward/strstream_move.cc: Remove duplicate function
2837 call.
2838
2839 PR libstdc++/69608
2840 * include/backward/strstream (strstreambuf): Define move constructor
2841 and move assignment operator.
2842 (istrstream, ostrstream, strstream): Likewise.
2843 * testsuite/backward/strstream_move.cc: New.
2844
2845 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
2846
2847 PR libstdc++/84654
2848 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
2849 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
2850 * configure: Regenerate.
2851 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
2852 based on ENABLE_FLOAT128.
2853 * include/Makefile.in: Regenerate.
2854 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
2855 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
2856 _GLIBCXX_USE_FLOAT128.
2857
2858 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
2859
2860 * configure: Regenerated.
2861
2862 2018-04-19 Jakub Jelinek <jakub@redhat.com>
2863
2864 * configure: Regenerated.
2865
2866 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
2867 Jakub Jelinek <jakub@redhat.com>
2868
2869 PR libstdc++/85442
2870 * src/c++11/Makefile.am: Don't generate debuginfo again for
2871 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
2872 * src/c++11/Makefile.in: Regenerate.
2873
2874 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
2875
2876 PR libstdc++/84442
2877 * testsuite/30_threads/thread/cons/terminate.cc
2878 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
2879
2880 2018-04-18 David Malcolm <dmalcolm@redhat.com>
2881
2882 PR jit/85384
2883 * configure: Regenerate.
2884
2885 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
2886
2887 * testsuite/experimental/filesystem/file_status/1.cc: Add
2888 -DUSE_FILESYSTEM_TS to dg-options.
2889 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2890 Likewise.
2891 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
2892 * testsuite/experimental/filesystem/iterators/
2893 recursive_directory_iterator.cc: Likewise.
2894 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
2895 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
2896 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
2897 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2898 * testsuite/experimental/filesystem/operations/create_directories.cc:
2899 Likewise.
2900 * testsuite/experimental/filesystem/operations/create_directory.cc:
2901 Likewise.
2902 * testsuite/experimental/filesystem/operations/create_symlink.cc:
2903 Likewise.
2904 * testsuite/experimental/filesystem/operations/current_path.cc:
2905 Likewise.
2906 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
2907 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
2908 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
2909 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
2910 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2911 Likewise.
2912 * testsuite/experimental/filesystem/operations/permissions.cc:
2913 Likewise.
2914 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2915 Likewise.
2916 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
2917 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
2918 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
2919 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2920 Likewise.
2921 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
2922 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
2923 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
2924 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
2925 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
2926 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
2927 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2928 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
2929 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
2930 * testsuite/experimental/filesystem/path/construct/default.cc:
2931 Likewise.
2932 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
2933 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
2934 * testsuite/experimental/filesystem/path/construct/string_view.cc:
2935 Likewise.
2936 * testsuite/experimental/filesystem/path/decompose/extension.cc:
2937 Likewise.
2938 * testsuite/experimental/filesystem/path/decompose/filename.cc:
2939 Likewise.
2940 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
2941 Likewise.
2942 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
2943 Likewise.
2944 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2945 Likewise.
2946 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
2947 Likewise.
2948 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
2949 Likewise.
2950 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2951 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
2952 Likewise.
2953 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
2954 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
2955 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
2956 Likewise.
2957 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
2958 Likewise.
2959 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
2960 Likewise.
2961 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
2962 Likewise.
2963 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
2964 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
2965 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
2966 Likewise.
2967 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2968 * testsuite/experimental/filesystem/path/query/has_extension.cc:
2969 Likewise.
2970 * testsuite/experimental/filesystem/path/query/has_filename.cc:
2971 Likewise.
2972 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2973 Likewise.
2974 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2975 Likewise.
2976 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2977 Likewise.
2978 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2979 Likewise.
2980 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2981 Likewise.
2982 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2983 * testsuite/experimental/filesystem/path/query/is_relative.cc:
2984 Likewise.
2985
2986 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
2987
2988 * src/c++11/Makefile.am: Fix sed command.
2989 * src/c++11/Makefile.in: Regenerate.
2990
2991 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
2992 handle mangled names starting with double underscores on darwin.
2993 * src/c++11/Makefile.in: Regenerate.
2994
2995 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
2996
2997 * src/c++11/Makefile.am: Fix comment.
2998 * src/c++11/Makefile.in: Regenerate.
2999 * src/c++11/cxx11-ios_failure.cc: Fix comment.
3000 * src/c++98/ios_failure.cc: Likewise.
3001
3002 * src/c++11/ios.cc: Remove redundant macro definition.
3003
3004 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
3005
3006 * doc/xml/manual/abi.xml: Document header locations in recent
3007 releases.
3008 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
3009 * doc/xml/manual/spine.xml: Update copyright years.
3010 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
3011 undefined behaviour.
3012 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
3013 * doc/html/*: Regenerate.
3014
3015 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
3016
3017 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
3018 * doc/xml/manual/backwards_compatibility.xml: Likewise.
3019 * doc/xml/manual/containers.xml: Likewise.
3020 * doc/xml/manual/debug_mode.xml: Likewise.
3021 * doc/xml/manual/extensions.xml: Likewise.
3022 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
3023 * doc/xml/manual/using.xml: Likewise.
3024 * doc/xml/manual/utilities.xml: Likewise.
3025
3026 PR libstdc++/85222
3027 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
3028 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
3029 * src/c++11/Makefile.in: Regenerate.
3030 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
3031 New types.
3032 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3033 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
3034 * src/c++98/ios_failure.cc (__construct_ios_failure)
3035 (__destroy_ios_failure, is_ios_failure_handler): New functions.
3036 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3037 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
3038 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
3039 handler types, to always catch std::ios_base::failure.
3040 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3041 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3042 exceptions_failbit.cc: Likewise.
3043 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3044 exceptions_failbit.cc: Likewise.
3045 * testsuite/27_io/basic_istream/extractors_other/char/
3046 exceptions_null.cc: Likewise.
3047 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3048 exceptions_null.cc: Likewise.
3049 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3050 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3051 * testsuite/27_io/basic_ostream/inserters_other/char/
3052 exceptions_null.cc: Likewise.
3053 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3054 exceptions_null.cc: Likewise.
3055 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3056
3057 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
3058
3059 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
3060 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
3061
3062 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
3063
3064 PR libstdc++/85183
3065 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
3066 value categories.
3067 * testsuite/20_util/variant/85183.cc: New.
3068
3069 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
3070
3071 * include/std/variant (__get): Qualify calls to avoid ADL.
3072 (__select_index): Adjust whitespace.
3073 (variant): Add using-declaration to workaround Clang bug.
3074
3075 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
3076
3077 PR libstdc++/85040
3078 * include/bits/stl_function.h (greater::__not_overloaded)
3079 (less::__not_overloaded, greater_equal::__not_overloaded)
3080 (less_equal::__not_overloaded): Fix ambiguous specializations.
3081 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
3082 tests for type with overloaded operators.
3083
3084 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3085
3086 PR libstdc++/77691
3087 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3088 xfail execution on 32-bit Solaris/x86.
3089
3090 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
3091
3092 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
3093 VERIFY instead of assert.
3094 * testsuite/20_util/hash/84998.cc: New test.
3095 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
3096 copy of test adjusted for Debug Mode.
3097 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
3098 test in Debug Mode.
3099
3100 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
3101
3102 PR libstdc++/84998
3103 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
3104 * include/std/bitset: Likewise.
3105 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
3106 declaration.
3107 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
3108 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
3109 * include/bits/stl_set.h (std::set<>): Likewise.
3110 * include/bits/unordered_map.h (std::unordered_map<>): Fix
3111 _Hash_merge_helper friend declaration.
3112 (std::unordered_multimap<>): Likewise.
3113 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
3114 (std::unordered_multiset<>): Likewise.
3115
3116 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
3117
3118 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
3119 trailing slash for domain level link.
3120 * doc/xml/faq.xml: Ditto.
3121 * doc/xml/manual/appendix_free.xml (software): Ditto.
3122 * doc/xml/manual/intro.xml: Ditto.
3123 * doc/xml/manual/spine.xml: Ditto.
3124 * doc/xml/spine.xml: Ditto.
3125
3126 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
3127
3128 * doc/xml/manual/documentation_hacking.xml: Adjust link to
3129 docbook.org.
3130
3131 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
3132
3133 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
3134 to compile as C++98.
3135
3136 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
3137
3138 PR libstdc++/78420
3139 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
3140 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
3141 to ensure total order for pointers.
3142 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
3143 Add operator() overloads for pointer arguments and make generic
3144 overloads dispatch to new _S_cmp functions when comparisons would
3145 use built-in operators for pointers.
3146 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
3147
3148 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
3149
3150 PR libstdc++/84773
3151 PR libstdc++/83662
3152 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
3153 * configure: Regenerate.
3154 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
3155 (aligned_alloc): Add using-declaration.
3156 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
3157
3158 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
3159
3160 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
3161 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
3162 registration.
3163
3164 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
3165
3166 PR libstdc++/84769
3167 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
3168 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
3169
3170 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
3171 src/filesystem/std-ops.cc (create_dir): Likewise.
3172
3173 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
3174
3175 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
3176 (StdListIteratorPrinter): Inherit from latter.
3177 (StdFwdListIteratorPrinter): New, inherit from latter.
3178 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
3179 when iterator has no associated container.
3180 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
3181 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
3182 registrations.
3183 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
3184 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
3185
3186 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3187
3188 PR libstdc++/84601
3189 * include/std/optional (_Optional_payload): Split into multiple
3190 specializations that can handle different cases of trivial or
3191 non-trivial assignment operators.
3192 * testsuite/20_util/optional/84601.cc: New.
3193 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3194
3195 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
3196
3197 PR libstdc++/84671
3198 * include/bits/parse_numbers.h (_Number_help): Add partial
3199 specialization to handle digit separators. Adjust partial
3200 specialization for recursion temrination to require _Pow == 1ULL.
3201 * testsuite/20_util/duration/literals/84671.cc: New
3202
3203 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3204
3205 Implement the missing bits of LWG 2769
3206 * include/std/any (any_cast(const any&)): Add static_assert.
3207 (any_cast(any&)): Likewise.
3208 (any_cast(any&&)): Likewise, and remove the handling
3209 for copyable-but-not-movable type.
3210 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
3211 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
3212 add new tests.
3213
3214 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
3215
3216 PR libstdc++/84532
3217 * include/std/thread (thread::__make_invoker): Construct tuple
3218 directly instead of using make_tuple.
3219 * testsuite/30_threads/async/84532.cc: New.
3220 * testsuite/30_threads/thread/84532.cc: New.
3221
3222 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
3223
3224 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
3225 (template<> __aligned_buffer): Define as __aligned_membuf alias.
3226
3227 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
3228
3229 PR target/84148
3230 * configure: Regenerate.
3231
3232 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
3233
3234 PR libstdc++/81797
3235 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
3236 * configure: Regenerate.
3237 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
3238 defined.
3239 * include/Makefile.in: Regenerate.
3240
3241 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
3242
3243 PR libstdc++/83833
3244 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
3245 Add -ffloat-store to options for m68k and ia32.
3246
3247 * doc/xml/faq.xml: Update copyright years.
3248 * doc/html/*: Regenerate.
3249
3250 PR libstdc++/83658
3251 * include/std/any (any::__do_emplace): Only set _M_manager after
3252 constructing the contained object.
3253 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
3254 * testsuite/20_util/any/modifiers/83658.cc: New test.
3255
3256 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
3257
3258 PR libstdc++/81076
3259 * include/c_global/cstddef (__byte_operand): Define primary template.
3260 * testsuite/18_support/byte/81076.cc: New test.
3261
3262 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
3263
3264 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
3265 dg-options and dg-add-options order.
3266 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
3267 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
3268 Likewise.
3269 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
3270 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
3271 Likewise.
3272 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
3273 Likewise.
3274 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
3275 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
3276 Likewise.
3277 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
3278 Likewise.
3279 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
3280 Likewise.
3281 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
3282 Likewise.
3283 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
3284 Likewise.
3285 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
3286 Likewise.
3287 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
3288 Likewise.
3289 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
3290 Likewise.
3291 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
3292 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
3293 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
3294 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
3295 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
3296 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
3297 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
3298 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
3299 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
3300 Likewise.
3301 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
3302 Likewise.
3303 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
3304 Likewise.
3305 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
3306 Likewise.
3307
3308 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
3309
3310 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
3311 include linux/types.h when checking linux/random.h header.
3312 * config.h.in: Regenerate.
3313 * configure: Ditto.
3314 * src/c++11/random.cc: Conditionally include linux/types.h.
3315
3316 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
3317
3318 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
3319
3320 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
3321
3322 PR libstdc++/83834
3323 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
3324 pattern with exact match for std::cerr.
3325
3326 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
3327
3328 PR libstdc++/83833
3329 * include/bits/random.h (chi_squared_distribution::param): Update
3330 gamma distribution parameter.
3331 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
3332 test.
3333
3334 PR libstdc++/83830
3335 * include/std/type_traits (has_unique_object_representations_v): Add
3336 variable template.
3337 * testsuite/20_util/has_unique_object_representations/value.cc: Check
3338 variable template.
3339
3340 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
3341
3342 Make optional conditionally
3343 trivially_{copy,move}_{constructible,assignable}
3344 * include/std/optional (_Optional_payload): Fix the comment in
3345 the class head and turn into a primary and one specialization.
3346 (_Optional_payload::_M_engaged): Strike the NSDMI.
3347 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
3348 New.
3349 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
3350 Likewise.
3351 (_Optional_payload<_Tp, false>::_M_get): Likewise.
3352 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
3353 (_Optional_base_impl): Likewise.
3354 (_Optional_base): Turn into a primary and three specializations.
3355 (optional(nullopt)): Change the base init.
3356 * testsuite/20_util/optional/assignment/8.cc: New.
3357 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3358 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3359
3360 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
3361
3362 PR libstdc++/80276
3363 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
3364 (get_template_arg_list): New.
3365 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
3366 instead.
3367 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
3368 of strings and regular expressions.
3369 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
3370 (FilteringTypePrinter): Add docstring. Match using startswith. Use
3371 strip_inline_namespaces instead of strip_versioned_namespace.
3372 (add_one_type_printer): Prepend namespace to match argument.
3373 (register_type_printers): Add type printers for char16_t and char32_t
3374 string types and for types using cxx11 ABI. Update calls to
3375 add_one_template_type_printer to provide default argument dicts.
3376 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
3377 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
3378 basic_string<unsigned char> and basic_string<signed char>.
3379 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
3380 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
3381
3382 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
3383
3384 PR libstdc++/81092
3385 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3386
3387 2018-01-13 Tim Shen <timshen@google.com>
3388
3389 PR libstdc++/83601
3390 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
3391 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
3392 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
3393
3394 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3395
3396 PR libstdc++/64054
3397 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
3398 Remove dg-xfail-run-if.
3399
3400 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
3401
3402 * include/bits/forward_list.h
3403 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
3404 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
3405 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
3406 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
3407 (_Fwd_list_impl()): Add noexcept qualification.
3408 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
3409 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
3410 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
3411 (_Fwd_list_base()): Default.
3412 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
3413 (_Fwd_list_base(_Fwd_list_base&&)): Default.
3414 (forward_list<>()): Default.
3415 (forward_list<>(forward_list&&)): Default.
3416 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
3417 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
3418 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
3419 * include/bits/forward_list.tcc
3420 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
3421 _M_impl._M_head move assignment.
3422 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
3423 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
3424
3425 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
3426
3427 PR libstdc++/80276
3428 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
3429 (UniquePointerPrinter): Print correct template argument, not type of
3430 the pointer.
3431 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
3432 a type.
3433 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
3434 array type.
3435 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
3436 weak_ptr of array types.
3437
3438 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
3439
3440 PR libstdc++/83709
3441 * include/bits/hashtable_policy.h
3442 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
3443 __first != __last.
3444 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
3445 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
3446 Add false_type parameter.
3447 (_Insert_base::insert): Adapt.
3448 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
3449 Adapt.
3450 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
3451 Add __n_elt parameter, defaulted to 1.
3452 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
3453 policy _M_need_rehash.
3454 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
3455 produce only 1 rehash if necessary.
3456 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
3457 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
3458
3459 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
3460 Jonathan Wakely <jwakely@redhat.com>
3461
3462 PR libstdc++/59253 (partial)
3463 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
3464 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
3465 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
3466 children.
3467 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
3468 of unique_ptr printer.
3469 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
3470 output of shared_ptr printer.
3471
3472 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
3473
3474 PR libstdc++/83626
3475 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
3476 unnecessary symlink_status call.
3477 (remove_all(const path&, error_code&)): Use filesystem::remove.
3478 * src/filesystem/std-ops.cc: Likewise.
3479
3480 PR libstdc++/83279
3481 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
3482 sendfile.
3483
3484 PR libstdc++/83626
3485 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
3486 report an error for ENOENT.
3487 (remove_all(const path&)): Fix type of result variable.
3488 (remove_all(const path&, error_code&)): Use non-throwing increment
3489 for directory iterator. Call POSIX remove directly to avoid redundant
3490 calls to symlink_status. Do not report errors for ENOENT.
3491 * src/filesystem/std-ops.cc: Likewise.
3492 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
3493 overload.
3494 * testsuite/experimental/filesystem/operations/remove_all.cc:
3495 Likewise.
3496
3497 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
3498
3499 PR libstdc++/83626
3500 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
3501 redundant call to ec.clear().
3502 (remove_all(const path&, error_code&))): Do not return an error for
3503 non-existent paths.
3504 * src/filesystem/std-ops.cc: Likewise.
3505 * testsuite/27_io/filesystem/operations/remove.cc: New test.
3506 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
3507 results for non-existent paths.
3508 * testsuite/experimental/filesystem/operations/remove.cc: New test.
3509 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
3510 expected results for non-existent paths.
3511
3512 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
3513 check status_known once.
3514 * include/experimental/bits/fs_ops.h: Likewise.
3515
3516 PR libstdc++/83607
3517 * include/std/functional (__is_byte_like): New trait.
3518 (__is_std_equal_to): Remove.
3519 (__boyer_moore_base_t): Use __is_byte_like instead of
3520 __is_std_equal_to.
3521 * include/experimental/functional (__is_std_equal_to): Remove.
3522 (__boyer_moore_base_t): Use __is_byte_like instead of
3523 __is_std_equal_to.
3524 * testsuite/20_util/function_objects/83607.cc: New test.
3525
3526 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
3527
3528 Protect optional's deduction guide with the feature macro
3529 * include/std/optional: Use the feature macro.
3530
3531 2018-01-03 Jakub Jelinek <jakub@redhat.com>
3532
3533 Update copyright years.
3534 \f
3535 Copyright (C) 2018 Free Software Foundation, Inc.
3536
3537 Copying and distribution of this file, with or without modification,
3538 are permitted in any medium without royalty provided the copyright
3539 notice and this notice are preserved.