]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
PR libstdc++/87784 fix dynamic_bitset::push_back
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2018-10-30 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/87784
4 * include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there
5 are no unused bits in the last block, append a new block with the
6 right value so the bit doesn't need to be set. Only increment size
7 after setting the new bit, not before.
8 * testsuite/tr2/dynamic_bitset/pr87784.cc: New test.
9
10 2018-10-29 David Malcolm <dmalcolm@redhat.com>
11
12 * testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove
13 "expected namespace-name before" error.
14 * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
15
16 2018-10-28 François Dumont <fdumont@gcc.gnu.org>
17
18 * testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
19 'std' from regex pattern for versioned namespace compatibility.
20 * testsuite/23_containers/vector/48101_neg.cc: Likewise.
21 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
22
23 2018-10-25 Jonathan Wakely <jwakely@redhat.com>
24
25 PR libstdc++/87749
26 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
27 (basic_string::operator=(basic_string&&)): For short strings copy the
28 buffer inline. Only fall back to using assign(const basic_string&) to
29 do a deep copy when reallocation is needed.
30 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
31 New test.
32 * testsuite/21_strings/basic_string/modifiers/assign/char/
33 move_assign_optim.cc: New test.
34 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
35 New test.
36 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
37 move_assign_optim.cc: New test.
38
39 2018-10-25 Marc Glisse <marc.glisse@inria.fr>
40
41 PR libstdc++/87106
42 * include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
43 destroy): Add noexcept specification.
44 * include/bits/allocator.h (construct, destroy): Likewise.
45 * include/ext/alloc_traits.h (construct, destroy): Likewise.
46 * include/ext/malloc_allocator.h (construct, destroy): Likewise.
47 * include/ext/new_allocator.h (construct, destroy): Likewise.
48 * include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
49 __relocate_a_1): New functions.
50 (__is_trivially_relocatable): New class.
51 * include/bits/stl_vector.h (__use_relocate): New static member.
52 * include/bits/vector.tcc (reserve, _M_realloc_insert,
53 _M_default_append): Use __relocate_a.
54 (reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
55 _M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
56 after _Destroy.
57 * testsuite/23_containers/vector/modifiers/push_back/49836.cc:
58 Replace CopyConsOnlyType with DelAnyAssign.
59
60 2018-10-24 François Dumont <fdumont@gcc.gnu.org>
61
62 * include/debug/safe_unordered_container.h
63 (_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
64 parameter type from local end variable.
65 (_Safe_unordered_container<>::_M_invalidate_all): Likewise.
66 * include/debug/unordered_map
67 (unordered_map<>::begin()): Use C++11 direct initialization.
68 (unordered_map<>::end()): Likewise.
69 (unordered_map<>::cbegin()): Likewise.
70 (unordered_map<>::cend()): Likewise.
71 (unordered_map<>::begin(size_type)): Likewise.
72 (unordered_map<>::end(size_type)): Likewise.
73 (unordered_map<>::cbegin(size_type)): Likewise.
74 (unordered_map<>::cend(size_type)): Likewise.
75 (unordered_map<>::emplace<>(_Args&&...)): Likewise.
76 (unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
77 (unordered_map<>::insert(const value_type&)): Likewise.
78 (unordered_map<>::insert(value_type&&)): Likewise.
79 (unordered_map<>::insert<>(_Pair&&)): Likewise.
80 (unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
81 (unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
82 (unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
83 (unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
84 (unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
85 (unordered_map<>::try_emplace<>(const_iterator, const key_type&,
86 _Args&&...)): Likewise.
87 (unordered_map<>::try_emplace<>(const_iterator, key_type&&,
88 _Args&&...)): Likewise.
89 (unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
90 (unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
91 (unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
92 _Obj&&)): Likewise.
93 (unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
94 _Obj&&)): Likewise.
95 (unordered_map<>::insert(note_type&&)): Likewise.
96 (unordered_map<>::find(const key_type&)): Likewise.
97 (unordered_map<>::equal_range(const key_type&)): Likewise.
98 (unordered_map<>::_M_extract): New.
99 (unordered_map<>::extract(const_iterator)): Use latter.
100 (unordered_map<>::extract(const key_type&)): Likewise.
101 (unordered_map<>::_M_erase): New.
102 (unordered_map<>::erase(const key_type&)): Use latter.
103 (unordered_map<>::erase(const_iterator)): Likewise.
104 (unordered_map<>::erase(iterator)): Likewise.
105 (unordered_map<>::_M_invalidate): New.
106 (unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
107 (unordered_multimap<>::begin()): Use C++11 direct initialization.
108 (unordered_multimap<>::end()): Likewise.
109 (unordered_multimap<>::cbegin()): Likewise.
110 (unordered_multimap<>::cend()): Likewise.
111 (unordered_multimap<>::begin(size_type)): Likewise.
112 (unordered_multimap<>::end(size_type)): Likewise.
113 (unordered_multimap<>::cbegin(size_type)): Likewise.
114 (unordered_multimap<>::cend(size_type)): Likewise.
115 (unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
116 (unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
117 (unordered_multimap<>::insert(const value_type&)): Likewise.
118 (unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
119 (unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
120 (unordered_multimap<>::insert<>(_Pair&&)): Likewise.
121 (unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
122 (unordered_multimap<>::insert(note_type&&)): Likewise.
123 (unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
124 (unordered_multimap<>::find(const key_type&)): Likewise.
125 (unordered_multimap<>::equal_range(const key_type&)): Likewise.
126 (unordered_multimap<>::_M_extract): New.
127 (unordered_multimap<>::extract(const_iterator)): Use latter.
128 (unordered_multimap<>::extract(const key_type&)): Likewise.
129 (unordered_multimap<>::_M_erase): New.
130 (unordered_multimap<>::erase(const_iterator)): Likewise.
131 (unordered_multimap<>::erase(iterator)): Likewise.
132 (unordered_multimap<>::_M_invalidate): New.
133 (unordered_multimap<>::erase(const key_type&)): Use latter.
134 (unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
135 * include/debug/unordered_set
136 (unordered_set<>::begin()): Use C++11 direct initialization.
137 (unordered_set<>::end()): Likewise.
138 (unordered_set<>::cbegin()): Likewise.
139 (unordered_set<>::cend()): Likewise.
140 (unordered_set<>::begin(size_type)): Likewise.
141 (unordered_set<>::end(size_type)): Likewise.
142 (unordered_set<>::cbegin(size_type)): Likewise.
143 (unordered_set<>::cend(size_type)): Likewise.
144 (unordered_set<>::emplace<>(_Args&&...)): Likewise.
145 (unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
146 (unordered_set<>::insert(const value_type&)): Likewise.
147 (unordered_set<>::insert(value_type&&)): Likewise.
148 (unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
149 (unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
150 (unordered_set<>::insert(note_type&&)): Likewise.
151 (unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
152 (unordered_set<>::find(const key_type&)): Likewise.
153 (unordered_set<>::equal_range(const key_type&)): Likewise.
154 (unordered_set<>::_M_extract): New.
155 (unordered_set<>::extract(const_iterator)): Use latter.
156 (unordered_set<>::extract(const key_type&)): Likewise.
157 (unordered_set<>::_M_erase): New.
158 (unordered_set<>::erase(const key_type&)): Use latter.
159 (unordered_set<>::erase(const_iterator)): Likewise.
160 (unordered_set<>::erase(iterator)): Likewise.
161 (unordered_set<>::_M_invalidate): New.
162 (unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
163 (unordered_multiset<>::begin()): Use C++11 direct initialization.
164 (unordered_multiset<>::end()): Likewise.
165 (unordered_multiset<>::cbegin()): Likewise.
166 (unordered_multiset<>::cend()): Likewise.
167 (unordered_multiset<>::begin(size_type)): Likewise.
168 (unordered_multiset<>::end(size_type)): Likewise.
169 (unordered_multiset<>::cbegin(size_type)): Likewise.
170 (unordered_multiset<>::cend(size_type)): Likewise.
171 (unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
172 (unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
173 (unordered_multiset<>::insert(const value_type&)): Likewise.
174 (unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
175 (unordered_multiset<>::insert(value_type&&)): Likewise.
176 (unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
177 (unordered_multiset<>::insert(node_type&&)): Likewise.
178 (unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
179 (unordered_multiset<>::find(const key_type&)): Likewise.
180 (unordered_multiset<>::equal_range(const key_type&)): Likewise.
181 (unordered_multiset<>::_M_extract): New.
182 (unordered_multiset<>::extract(const_iterator)): Use latter.
183 (unordered_multiset<>::extract(const key_type&)): Likewise.
184 (unordered_multiset<>::_M_erase): New.
185 (unordered_multiset<>::erase(const_iterator)): Likewise.
186 (unordered_multiset<>::erase(iterator)): Likewise.
187 (unordered_multiset<>::_M_invalidate): New.
188 (unordered_multiset<>::erase(const key_type&)): Use latter.
189 (unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
190
191 * include/c_global/cstddef: Add versioned namespace.
192
193 2018-10-23 Jonathan Wakely <jwakely@redhat.com>
194
195 PR libstdc++/87704
196 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
197 not delegate to default constructor.
198 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
199 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
200
201 2018-10-20 François Dumont <fdumont@gcc.gnu.org>
202
203 * testsuite/util/testsuite_containers.h
204 (forward_members_unordered<>::forward_members_unordered
205 (const value_type&)): Add local_iterator pre and post increment checks.
206 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.
207
208 2018-10-19 Jonathan Wakely <jwakely@redhat.com>
209
210 * testsuite/23_containers/array/requirements/explicit_instantiation/
211 3.cc: Skip test when compiled with a -std=c++NN strict mode.
212 * testsuite/23_containers/deque/requirements/explicit_instantiation/
213 3.cc: Likewise.
214 * testsuite/23_containers/forward_list/requirements/
215 explicit_instantiation/3.cc: Likewise.
216 * testsuite/23_containers/list/requirements/explicit_instantiation/
217 3.cc: Likewise.
218 * testsuite/23_containers/map/requirements/explicit_instantiation/
219 3.cc: Likewise.
220 * testsuite/23_containers/multimap/requirements/explicit_instantiation/
221 3.cc: Likewise.
222 * testsuite/23_containers/multiset/requirements/explicit_instantiation/
223 3.cc: Likewise.
224 * testsuite/23_containers/set/requirements/explicit_instantiation/
225 3.cc: Likewise.
226 * testsuite/23_containers/unordered_map/requirements/
227 explicit_instantiation/3.cc: Likewise.
228 * testsuite/23_containers/unordered_multimap/requirements/
229 explicit_instantiation/3.cc: Likewise.
230 * testsuite/23_containers/unordered_multiset/requirements/
231 explicit_instantiation/3.cc: Likewise.
232 * testsuite/23_containers/unordered_set/requirements/
233 explicit_instantiation/3.cc: Likewise.
234 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
235 3.cc: Likewise.
236 * testsuite/23_containers/vector/requirements/explicit_instantiation/
237 3.cc: Likewise.
238
239 * testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
240 printed when __STRICT_ANSI__ is defined.
241 * testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
242 * testsuite/23_containers/list/48101_neg.cc: Likewise.
243 * testsuite/23_containers/multiset/48101_neg.cc: Likewise.
244 * testsuite/23_containers/set/48101_neg.cc: Likewise.
245 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
246 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
247 * testsuite/23_containers/vector/48101_neg.cc: Likewise.
248
249 * testsuite/23_containers/forward_list/requirements/
250 explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
251 extension.
252 * testsuite/23_containers/list/requirements/explicit_instantiation/
253 5.cc [__STRICT_ANSI__]: Likewise.
254 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
255 [__STRICT_ANSI__]: Likewise.
256 * testsuite/23_containers/multimap/requirements/explicit_instantiation/
257 5.cc [__STRICT_ANSI__]: Likewise.
258 * testsuite/23_containers/multiset/requirements/explicit_instantiation/
259 5.cc [__STRICT_ANSI__]: Likewise.
260 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
261 [__STRICT_ANSI__]: Likewise.
262 * testsuite/23_containers/unordered_map/requirements/debug_container.cc
263 [__STRICT_ANSI__]: Likewise.
264 * testsuite/23_containers/unordered_map/requirements/
265 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
266 * testsuite/23_containers/unordered_multimap/requirements/
267 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
268 * testsuite/23_containers/unordered_multiset/requirements/
269 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
270 * testsuite/23_containers/unordered_set/requirements/
271 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
272
273 * testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
274 value type for the container.
275 * testsuite/23_containers/forward_list/cons/14.cc: Likewise.
276 * testsuite/23_containers/map/56613.cc: Likewise.
277 * testsuite/23_containers/unordered_map/55043.cc: Likewise.
278 * testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
279 * testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
280 Likewise.
281 * testsuite/23_containers/unordered_map/allocator/minimal.cc:
282 Likewise.
283 * testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
284 * testsuite/23_containers/unordered_map/allocator/move_assign.cc:
285 Likewise.
286 * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
287 Likewise.
288 * testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
289 * testsuite/23_containers/unordered_map/requirements/exception/
290 basic.cc: Likewise.
291 * testsuite/23_containers/unordered_map/requirements/exception/
292 generation_prohibited.cc: Likewise.
293 * testsuite/23_containers/unordered_map/requirements/exception/
294 propagation_consistent.cc: Likewise.
295 * testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
296 * testsuite/23_containers/unordered_multimap/allocator/copy.cc:
297 Likewise.
298 * testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
299 Likewise.
300 * testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
301 Likewise.
302 * testsuite/23_containers/unordered_multimap/allocator/move.cc:
303 Likewise.
304 * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
305 Likewise.
306 * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
307 Likewise.
308 * testsuite/23_containers/unordered_multimap/requirements/exception/
309 basic.cc: Likewise.
310 * testsuite/23_containers/unordered_multimap/requirements/exception/
311 generation_prohibited.cc: Likewise.
312 * testsuite/23_containers/unordered_multimap/requirements/exception/
313 propagation_consistent.cc: Likewise.
314 * testsuite/23_containers/unordered_multimap/requirements/
315 explicit_instantiation/5.cc: Likewise.
316 * testsuite/ext/malloc_allocator/sanity.cc: Likewise.
317
318 * ext/special_functions/airy_ai/check_nan.cc: Skip test for
319 non-standard extension when a strict -std=c++NN dialect is used.
320 * ext/special_functions/airy_ai/check_value.cc: Likewise.
321 * ext/special_functions/airy_ai/compile.cc: Likewise.
322 * ext/special_functions/airy_bi/check_nan.cc: Likewise.
323 * ext/special_functions/airy_bi/check_value.cc: Likewise.
324 * ext/special_functions/airy_bi/compile.cc: Likewise.
325 * ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
326 * ext/special_functions/conf_hyperg/check_value.cc: Likewise.
327 * ext/special_functions/conf_hyperg/compile.cc: Likewise.
328 * ext/special_functions/hyperg/check_nan.cc: Likewise.
329 * ext/special_functions/hyperg/check_value.cc: Likewise.
330 * ext/special_functions/hyperg/compile.cc: Likewise.
331
332 * testsuite/23_containers/list/requirements/explicit_instantiation/
333 5_c++0x.cc: Remove redundant test that is functionally identical to
334 the 5.cc test.
335 * testsuite/23_containers/map/requirements/explicit_instantiation/
336 5_c++0x.cc: Likewise.
337 * testsuite/23_containers/multimap/requirements/explicit_instantiation/
338 5_c++0x.cc: Likewise.
339 * testsuite/23_containers/multiset/requirements/explicit_instantiation/
340 5_c++0x.cc: Likewise.
341 * testsuite/23_containers/set/requirements/explicit_instantiation/
342 5_c++0x.cc: Likewise.
343
344 * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
345 _GLIBCXX_STD_A to refer to normal mode algorithms.
346 * testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
347 * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
348 whitespace.
349
350 * include/debug/map.h (map::erase(iterator)): Add abi-tag so that
351 C++11 version mangles differently from incompatible C++98 version.
352 * include/debug/multimap.h (multimap::erase(iterator)): Likewise.
353 * include/debug/multiset.h (multiset::erase(iterator))
354 (multiset::erase(const_iterator, const_iterator)): Likewise.
355 * include/debug/set.h (set::erase(iterator))
356 (multiset::erase(const_iterator, const_iterator)): Likewise.
357
358 2018-10-18 Jonathan Wakely <jwakely@redhat.com>
359
360 * testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
361 failure when compiled without optimisation.
362 * testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
363 errors caused by C++17 std::pmr alias templates.
364
365 PR libstdc++/87642
366 * config/locale/gnu/monetary_members.cc
367 (moneypunct<char, true>::_M_initialize_moneypunct): Use
368 __narrow_multibyte_chars to convert multibyte thousands separators
369 to a single char.
370 * config/locale/gnu/numeric_members.cc
371 (numpunct<char>::_M_initialize_numpunct): Likewise.
372 (__narrow_multibyte_chars): New function.
373
374 PR libstdc++/87641
375 * include/bits/valarray_array.h (__valarray_sum): Use first element
376 to initialize accumulator instead of value-initializing it.
377 (__valarray_product<_Tp>): Move to ...
378 * src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
379 element to initialize accumulator.
380 (__valarray_product(const valarray<size_t>&)): Remove const_cast made
381 unnecessary by LWG 389.
382 * testsuite/26_numerics/valarray/87641.cc: New test.
383
384 2018-10-18 François Dumont <fdumont@gcc.gnu.org>
385
386 Partial revert.
387 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
388
389 * include/debug/list (list<>::cbegin()): Use C++11 direct
390 initialization.
391 (list<>::cend()): Likewise.
392 (list<>::erase(const_iterator, const_iterator)): Ensure consistent
393 iterator comparisons.
394 (list<>::splice(const_iterator, list&&, const_iterator,
395 const_iterator)): Likewise.
396
397 Partial revert.
398 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
399
400 * include/debug/vector (vector<>::cbegin()): Use C++11 direct
401 initialization.
402 (vector<>::cend()): Likewise.
403 (vector<>::insert(const_iterator, const _Tp&)): Use consistent
404 iterator comparison.
405 (vector<>::erase(const_iterator)): Likewise.
406 (vector<>::erase(const_iterator, const_iterator)): Likewise.
407
408 2018-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
409
410 PR libstdc++/87619
411 * include/std/variant (__select_index): Fix an off-by-one.
412 * testsuite/20_util/variant/87619.cc: New.
413
414 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
415
416 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
417 Fix default constructor to call correct function.
418
419 * testsuite/experimental/net/internet/address/v4/creation.cc: Do not
420 declare ip in global namespace, to avoid collision with struct ip
421 defined in <netinet/ip.h>.
422
423 * include/experimental/bits/net.h: Move versioned namespace macros
424 to correct location.
425 * include/experimental/buffer: Likewise.
426 * include/experimental/executor: Likewise.
427 * include/experimental/internet: Likewise.
428 * include/experimental/io_context: Likewise.
429 * include/experimental/netfwd: Likewise.
430 * include/experimental/socket: Likewise.
431 * include/experimental/timer: Likewise.
432
433 * config.h.in: Regenerate.
434 * configure: Regenerate.
435 * configure.ac: Check for headers used by Networking TS.
436 * include/experimental/executor: Include <condition_variable>
437 instead of <mutex>.
438 * include/experimental/internet: Use autoconf macros for available
439 headers. Include <sys/socket.h> for. Remove <cstring> and use
440 __builtin_memcpy and __builtin_strchr.
441 (resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define.
442 (address_v4::to_string, address_v6::to_string)
443 [!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise.
444 (basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private
445 constructors report errors.
446 [!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define.
447 * include/experimental/io_context: Likewise.
448 * include/experimental/socket: Likewise.
449 [!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do
450 not define nested types when relevant header not available.
451 (__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report
452 an error.
453 (__basic_socket_impl::open, __basic_socket_impl::local_endpoint)
454 (__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
455 (__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]:
456 Likewise.
457 (basic_socket::at_mark, basic_socket::shutdown)
458 (basic_socket::remote_endpoint, basic_socket::connect)
459 (basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
460 (basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro
461 for <sys/ioctl.h> availability.
462 (basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
463 (basic_datagram_socket::receive, basic_datagram_socket::async_receive)
464 (basic_datagram_socket::receive_from)
465 (basic_datagram_socket::async_receive_from)
466 (basic_datagram_socket::send, basic_datagram_socket::async_send)
467 (basic_datagram_socket::send_to, basic_datagram_socket::async_send_to)
468 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
469 (basic_stream_socket::receive, basic_stream_socket::async_receive)
470 (basic_stream_socket::send, basic_stream_socket::async_send)
471 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise.
472 (basic_socket_acceptor::listen, basic_socket_acceptor::accept)
473 (basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
474 Likewise.
475 (basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise.
476
477 * testsuite/experimental/net/headers.cc: Remove dg-options.
478 * testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options
479 with dg-do using effective target.
480 * testsuite/experimental/net/buffer/const.cc: Likewise.
481 * testsuite/experimental/net/buffer/creation.cc: Likewise.
482 * testsuite/experimental/net/buffer/mutable.cc: Likewise.
483 * testsuite/experimental/net/buffer/size.cc: Likewise.
484 * testsuite/experimental/net/buffer/traits.cc: Likewise.
485 * testsuite/experimental/net/execution_context/use_service.cc:
486 Likewise.
487 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
488 Likewise.
489 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
490 * testsuite/experimental/net/internet/address/v4/creation.cc:
491 Likewise.
492 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
493 * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
494 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
495 Likewise.
496 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
497 Likewise.
498 * testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
499 * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
500 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
501
502 * include/experimental/socket (basic_socket::at_mark): Add missing
503 return.
504
505 * acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
506 (GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
507 Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
508 * config.h.in: Regenerate.
509 * configure: Regenerate.
510 * configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
511 GLIBCXX_CHECK_RANDOM_TR1.
512 crossconfig.m4: Likewise.
513 * include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
514 instead of _GLIBCXX_USE_RANDOM_TR1.
515 * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
516
517 2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
518
519 * testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
520 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
521 Add dg-add-options net_ts.
522 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
523 * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
524 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
525 * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
526 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
527 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
528
529 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
530
531 * testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
532 diagnostic to account for quotes around 'constexpr'.
533 * testsuite/23_containers/deque/capacity/max_size.cc: Define static
534 variable.
535 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
536
537 PR libstdc++/87618
538 * config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
539 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
540 optimisation to check constructor definition can be linked to.
541 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
542
543 2018-10-15 Jonathan Wakely <jwakely@redhat.com>
544
545 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
546 account for change to glibc it_IT localedata (glibc bz#10797).
547
548 PR libstdc++/87587
549 * src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
550
551 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
552
553 * include/debug/vector (vector<>::cbegin()): Use C++11 direct
554 initialization.
555 (vector<>::cend()): Likewise.
556 (vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
557 consistent iterator comparison.
558 (vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
559 (vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
560 Likewise.
561 (vector<>::erase(const_iterator)): Likewise.
562 (vector<>::erase(const_iterator, const_iterator)): Likewise.
563
564 2018-10-12 Jonathan Wakely <jwakely@redhat.com>
565
566 Initial commit of Networking TS implementation.
567 * include/Makefile.am: Add new headers.
568 * include/Makefile.in: Regenerate.
569 * include/experimental/bits/net.h: New header for common
570 implementation details of Networking TS.
571 * include/experimental/buffer: New header.
572 * include/experimental/executor: New header.
573 * include/experimental/internet: New header.
574 * include/experimental/io_context: New header.
575 * include/experimental/net: New header.
576 * include/experimental/netfwd: New header.
577 * include/experimental/socket: New header.
578 * include/experimental/timer: New header.
579 * testsuite/experimental/net/buffer/arithmetic.cc: New test.
580 * testsuite/experimental/net/buffer/const.cc: New test.
581 * testsuite/experimental/net/buffer/creation.cc: New test.
582 * testsuite/experimental/net/buffer/mutable.cc: New test.
583 * testsuite/experimental/net/buffer/size.cc: New test.
584 * testsuite/experimental/net/buffer/traits.cc: New test.
585 * testsuite/experimental/net/execution_context/use_service.cc: New
586 test.
587 * testsuite/experimental/net/headers.cc: New test.
588 * testsuite/experimental/net/internet/address/v4/comparisons.cc: New
589 test.
590 * testsuite/experimental/net/internet/address/v4/cons.cc: New test.
591 * testsuite/experimental/net/internet/address/v4/creation.cc: New
592 test.
593 * testsuite/experimental/net/internet/address/v4/members.cc: New
594 test.
595 * testsuite/experimental/net/internet/resolver/base.cc: New test.
596 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
597 test.
598 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
599 test.
600 * testsuite/experimental/net/timer/waitable/cons.cc: New test.
601 * testsuite/experimental/net/timer/waitable/dest.cc: New test.
602 * testsuite/experimental/net/timer/waitable/ops.cc: New test.
603
604 PR libstdc++/77691
605 * include/experimental/memory_resource (__resource_adaptor_imp): Do
606 not allocate sizes smaller than alignment when relying on guaranteed
607 alignment.
608 * testsuite/experimental/memory_resource/new_delete_resource.cc:
609 Adjust expected number of bytes allocated for alignof(max_align_t).
610
611 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
612
613 * include/debug/forward_list
614 (forward_list<>::before_begin()): Use C++11 direct initialization.
615 (forward_list<>::begin()): Likewise.
616 (forward_list<>::end()): Likewise.
617 (forward_list<>::cbefore_begin()): Likewise.
618 (forward_list<>::cbegin()): Likewise.
619 (forward_list<>::cend()): Likewise.
620 (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
621 (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
622 (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
623 (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
624 Likewise.
625 (forward_list<>::insert_after(const_iterator, initializer_list<>)):
626 Likewise.
627 (forward_list<>::erase_after(const_iterator)): Likewise.
628 (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
629 and ensure consistent iterator comparison.
630
631 * include/bits/forward_list.h
632 (_Fwd_list_iterator<>::operator==): Replace member function with inline
633 friend.
634 (_Fwd_list_iterator<>::operator!=): Likewise.
635 (_Fwd_list_const_iterator<>::operator==): Likewise.
636 (_Fwd_list_const_iterator<>::operator!=): Likewise.
637 (operator==(const _Fwd_list_iterator<>&,
638 const _Fwd_list_const_iterator<>&)): Remove.
639 (operator!=(const _Fwd_list_iterator<>&,
640 const _Fwd_list_const_iterator<>&)): Remove.
641 (forward_list<>::_Node): Take typedef from base type.
642 (forward_list<>::iterator): Likewise.
643 (forward_list<>::const_iterator): Likewise.
644
645 2018-10-11 Jonathan Wakely <jwakely@redhat.com>
646
647 PR libstdc++/80538
648 * src/c++11/thread.cc (this_thread::__sleep_for)
649 [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
650 Loop while sleep call is interrupted and until steady_clock
651 shows requested duration has elapsed.
652 (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
653 avoiding the usleep call.
654 * testsuite/30_threads/this_thread/60421.cc: Test repeated
655 signal interruptions.
656
657 * include/bits/allocator.h
658 (operator==(const allocator<_Tp>&, const allocator<_Tp>))
659 (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
660 with inline friends.
661 * include/ext/debug_allocator.h (operator==, operator!=): Replace
662 with inline friend functions that compare to rebound allocators.
663 * include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
664 * include/ext/new_allocator.h (operator==, operator!=): Likewise.
665 * testsuite/ext/debug_allocator/eq.cc: New test.
666 * testsuite/ext/ext_pointer/alloc_eq.cc: New test.
667 * testsuite/ext/malloc_allocator/eq.cc: New test.
668 * testsuite/ext/new_allocator/eq.cc: New test.
669
670 2018-10-10 Jonathan Wakely <jwakely@redhat.com>
671
672 PR libstdc++/87544
673 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to
674 PTRDIFF_MAX / sizeof(value_type).
675 * include/ext/malloc_allocator.h (malloc_allocator::max_size):
676 Likewise.
677 * include/ext/new_allocator.h (new_allocator::max_size): Likewise.
678 * testsuite/23_containers/vector/allocator/minimal.cc: Adjust
679 expected value for max_size().
680 * testsuite/23_containers/vector/capacity/87544.cc: New test.
681
682 2018-10-09 François Dumont <fdumont@gcc.gnu.org>
683
684 * include/bits/stl_list.h
685 (_List_operator<>::operator==): Replace member function with inline
686 friend.
687 (_List_operator<>::operator!=): Likewise.
688 (_List_const_operator<>::operator==): Likewise.
689 (_List_const_operator<>::operator!=): Likewise.
690 (operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
691 Remove.
692 (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
693 Remove.
694
695 2018-10-09 Jonathan Wakely <jwakely@redhat.com>
696
697 * include/bits/stringfwd.h (string, wstring, u16string, u32string):
698 Define typedefs outside of __cxx11 inline namespace.
699 * python/libstdcxx/v6/printers.py (register_type_printers): Also
700 register printers for typedefs in new location.
701
702 2018-10-08 Jonathan Wakely <jwakely@redhat.com>
703
704 PR libstdc++/87538
705 * testsuite/experimental/functional/87538.cc: New test.
706
707 PR libstdc++/87538
708 * include/std/functional (_Not_fn::operator()): Check value of
709 __is_nothrow_invocable as well.
710 * testsuite/20_util/function_objects/not_fn/87538.cc: New test.
711
712 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
713
714 * include/debug/list (list<>::cbegin()): Use C++11 direct
715 initialization.
716 (list<>::cend()): Likewise.
717 (list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
718 (list<>::insert(const_iterator, initializer_list<>)): Likewise.
719 (list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
720 (list<>::erase(const_iterator, const_iterator)): Ensure consistent
721 iterator comparisons.
722 (list<>::splice(const_iterator, list&&, const_iterator,
723 const_iterator)): Likewise.
724
725 2018-10-05 François Dumont <fdumont@gcc.gnu.org>
726
727 * include/bits/stl_tree.h
728 (_Rb_tree_iterator<>::operator==): Make inline friend.
729 (_Rb_tree_iterator<>::operator!=): Likewise.
730 (_Rb_tree_const_iterator<>::operator==): Likewise.
731 (_Rb_tree_const_iterator<>::operator!=): Likewise.
732 (operator==(const _Rb_tree_iterator<>&,
733 const _Rb_tree_const_iterator&)): Remove.
734 (operator!=(const _Rb_tree_iterator<>&,
735 const _Rb_tree_const_iterator&)): Remove.
736 (operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
737 (operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
738 (operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
739 deprecate.
740 (operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
741 (operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
742 (operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
743 * include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
744 Compare __victim with _Base::cend().
745 * include/debug/multimap.h
746 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
747 * include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
748 Compare __victim with _Base::cend().
749 * include/debug/multiset.h
750 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
751
752 2018-10-03 Jonathan Wakely <jwakely@redhat.com>
753
754 PR libstdc++/59439
755 * src/c++98/locale.cc (locale::locale(const locale&)): Bypass
756 reference count updates for the classic locale.
757 (locale::~locale()): Likewise.
758 (locale::operator=(const locale&)): Likewise.
759 * src/c++98/locale_init.cc (locale::locale()): Likewise.
760 (locale::global(const locale&)): Likewise.
761
762 2018-10-03 François Dumont <fdumont@gcc.gnu.org>
763
764 * include/debug/map.h
765 (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
766 (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
767 (map<>::insert(value_type&&)): Likewise.
768 (map<>::insert<>(_Pair&&)): Likewise.
769 (map<>::insert<>(const_iterator, _Pair&&)): Likewise.
770 (map<>::try_emplace): Likewise.
771 (map<>::insert_or_assign): Likewise.
772 (map<>::insert(node_type&&)): Likewise.
773 (map<>::insert(const_iterator, node_type&&)): Likewise.
774 (map<>::erase(const_iterator)): Likewise.
775 (map<>::erase(const_iterator, const_iterator)): Likewise.
776 * include/debug/multimap.h
777 (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
778 (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
779 (multimap<>::insert<>(_Pair&&)): Likewise.
780 (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
781 (multimap<>::insert(node_type&&)): Likewise.
782 (multimap<>::insert(const_iterator, node_type&&)): Likewise.
783 (multimap<>::erase(const_iterator)): Likewise.
784 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
785 * include/debug/set.h
786 (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
787 (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
788 (set<>::insert(value_type&&)): Likewise.
789 (set<>::insert<>(const_iterator, value_type&&)): Likewise.
790 (set<>::insert(const_iterator, node_type&&)): Likewise.
791 (set<>::erase(const_iterator)): Likewise.
792 (set<>::erase(const_iterator, const_iterator)): Likewise.
793 * include/debug/multiset.h
794 (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
795 (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
796 (multiset<>::insert<>(value_type&&)): Likewise.
797 (multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
798 (multiset<>::insert(node_type&&)): Likewise.
799 (multiset<>::insert(const_iterator, node_type&&)): Likewise.
800 (multiset<>::erase(const_iterator)): Likewise.
801 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
802
803 2018-10-02 Marc Glisse <marc.glisse@inria.fr>
804
805 PR libstdc++/87258
806 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
807 Rebuild _M_start with an explicit 0 offset.
808
809 2018-10-02 Jonathan Wakely <jwakely@redhat.com>
810
811 * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
812 directly instead of get, as caller ensures correct index is used.
813 (holds_alternative, get, get_if): Remove redundant inline specifiers.
814 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
815
816 2018-10-02 Joseph Myers <joseph@codesourcery.com>
817
818 * testsuite/lib/libstdc++.exp (libstdc++_init): Use
819 -fno-show-column in default cxxflags.
820
821 2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
822
823 * config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
824
825 2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
826
827 * doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
828 Custom Memory Allocation".
829
830 2018-10-01 Jonathan Wakely <jwakely@redhat.com>
831
832 * doc/html/*: Regenerate.
833
834 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
835
836 * doc/xml/manual/messages.xml: Switch link to www.oracle.com
837 to https.
838
839 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
840
841 * doc/xml/manual/policy_data_structures_biblio.xml: Update
842 link to Microsoft Component Model Object Technologies.
843
844 2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
845
846 * doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
847 site now uses https. Also omit the unnecessary trailing slash.
848 * doc/xml/gnu/gpl-3.0.xml: Ditto.
849
850 2018-09-28 François Dumont <fdumont@gcc.gnu.org>
851
852 * include/debug/functions.h
853 (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
854 const _InputIter&, __true_type)): Use empty() rather than begin() ==
855 end().
856
857 2018-09-25 Mike Crowe <mac@mcrowe.com>
858
859 * include/std/condition_variable (condition_variable::wait_for): Use
860 steady clock in overload that uses a predicate.
861
862 2018-09-25 Jonathan Wakely <jwakely@redhat.com>
863
864 PR libstdc++/87431
865 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
866 Avoid runtime test when all alternatives are scalars and so cannot
867 throw during initialization.
868
869 2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
870
871 * doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
872 to https.
873
874 2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
875
876 * doc/xml/manual/policy_data_structures_biblio.xml: Update link
877 to "Priority Queues and the STL".
878
879 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
880
881 * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
882 https.
883
884 2018-09-21 François Dumont <fdumont@gcc.gnu.org>
885
886 PR libstdc++/87135
887 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
888 Use __builtin_floor to compute _M_next_resize.
889 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
890 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
891 Adapt.
892
893 2018-09-21 Jonathan Wakely <jwakely@redhat.com>
894
895 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
896 * testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
897 long double unconditionally, but use lower tolerance when
898 sizeof(long double) == sizeof(double).
899
900 2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
901
902 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
903 on arm*.
904
905 2018-09-19 Jonathan Wakely <jwakely@redhat.com>
906
907 * include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
908 Remove __glibcxx_assert statements and use map::find instead of
909 map::operator[].
910
911 2018-09-18 François Dumont <fdumont@gcc.gnu.org>
912
913 PR libstdc++/87135
914 * src/c++11/hashtable_c++0x.cc:
915 (_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
916 requested size, but not necessarily greater.
917 (_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
918 strictly greater than next resize threshold.
919 * testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
920 to validate that there is no rehash as long as number of insertion is
921 lower or equal to the reserved number of elements.
922
923 2018-09-18 Jonathan Wakely <jwakely@redhat.com>
924
925 * include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
926 checking invocable condition.
927 (unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
928 here, where types must be complete. Pass pointer to deleter as an
929 rvalue.
930 * testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
931
932 2018-09-13 Jonathan Wakely <jwakely@redhat.com>
933
934 * include/std/variant (variant) [__clang__]: Limit workaround to
935 Clang 7 and older.
936
937 2018-09-11 Jonathan Wakely <jwakely@redhat.com>
938
939 PR libstdc++/87278
940 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
941 remove_const.
942 * testsuite/20_util/shared_ptr/creation/87278.cc: New test.
943
944 Implement LWG 2905 changes to constrain unique_ptr constructors
945 * include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
946 check deleter type.
947 (unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
948 constructible constraint.
949 (unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
950 deleters of reference type and add move constructible constraint.
951 (unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
952 Disable for deleters of non-reference type. Define as deleted.
953 (unique_ptr<T[], D>): Likewise.
954 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
955 directives with unstable line numbers with dg-prune-output.
956 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
957 * testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
958 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
959 Make deleter types invocable.
960
961 2018-09-05 Jonathan Wakely <jwakely@redhat.com>
962
963 * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
964
965 2018-09-03 Jonathan Wakely <jwakely@redhat.com>
966
967 PR libstdc++/78179
968 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
969 that runs the long double part of hypot.cc.
970 * testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
971 tests unless TEST_HYPOT_LONG_DOUBLE is defined.
972
973 * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
974 Return raw pointer not allocator's pointer type.
975 (vector::_Temporary_value::_M_val): Use _M_ptr.
976
977 PR libstdc++/87194
978 * include/bits/stl_map.h
979 (map::map(initializer_list<value_type>, const Compare&, const Alloc&))
980 (map::map(initializer_list<value_type>, const Alloc&))
981 (map::map(InputIterator, InputIterator, const Alloc&))
982 (map::map(InputIterator, InputIterator))
983 (map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
984 (map::insert(InputIterator, InputIterator)):
985 Call _M_insert_range_unique instead of _M_insert_unique.
986 * include/bits/stl_multimap.h
987 (multimap::multimap(initializer_list<value_type>, const C&, const A&))
988 (multimap::multimap(initializer_list<value_type>, const A&))
989 (multimap::multimap(InputIterator, InputIterator, const A&))
990 (multimap::multimap(InputIterator, InputIterator))
991 (multimap::multimap(InputIterator, InputIterator, const C&, const A&))
992 (multimap::insert(InputIterator, InputIterator)): Call
993 _M_insert_range_equal instead of _M_insert_equal.
994 * include/bits/stl_multiset.h
995 (multiset::multiset(InputIterator, InputIterator))
996 (multiset::multiset(InputIterator, InputIterator, const C&, const A&))
997 (multiset::multiset(initializer_list<value_type>, const C&, const A&))
998 (multiset::multiset(initializer_list<value_type>, const A&))
999 (multiset::multiset(InputIterator, InputIterator, const A&))
1000 (multiset::insert(InputIterator, InputIterator)): Call
1001 _M_insert_range_equal instead of _M_insert_equal.
1002 * include/bits/stl_set.h
1003 (set::set(InputIterator, InputIterator))
1004 (set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
1005 (set::set(initializer_list<value_type>, const Compare&, const Alloc&))
1006 (set::set(initializer_list<value_type>, const Alloc&))
1007 (set::set(InputIterator, InputIterator, const Alloc&))
1008 (set::insert(InputIterator, InputIterator)):
1009 Call _M_insert_range_unique instead of _M_insert_unique.
1010 * include/bits/stl_tree.h
1011 [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
1012 template for SFINAE constraints.
1013 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
1014 constrained overloads that either insert or emplace, depending on
1015 iterator's value_type.
1016 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
1017 [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
1018 (_Rb_tree::_M_insert_range_equal): New functions replacing range
1019 versions of _M_insert_unique and _M_insert_equal.
1020 (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
1021 (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
1022 * testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
1023 * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
1024 * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
1025 * testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
1026
1027 PR libstdc++/78595
1028 * include/bits/stl_map.h (map::insert(_Pair&&))
1029 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
1030 * include/bits/stl_multimap.h (multimap::insert(_Pair&&))
1031 (multimap::insert(const_iterator, _Pair&&)): Likewise.
1032 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
1033 (unordered_map::insert(const_iterator, _Pair&&))
1034 (unordered_multimap::insert(_Pair&&))
1035 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
1036 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
1037 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
1038 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
1039 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
1040 test.
1041
1042 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
1043
1044 * include/debug/safe_iterator.h
1045 (_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
1046 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
1047 New.
1048 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1049 ::_OtherSelf): New.
1050 (_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
1051 (_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
1052 (_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
1053 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1054 ::operator+(difference_type)): Use latters, inline as friend.
1055 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1056 ::operator-(difference_type)): Likewise.
1057 (operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1058 Likewise.
1059 (operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1060 Likewise.
1061 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1062 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1063 Likewise.
1064 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1065 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1066 Likewise.
1067 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1068 (operator+(difference_type, const _Safe_iterator<>&)): Likewise.
1069 (operator-(const _Safe_iterator<>&, difference_type)): Likewise.
1070 * include/debug/safe_iterator.tcc
1071 (_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
1072 copy.
1073 * include/debug/safe_local_iterator.h
1074 (_Safe_local_iterator<_It, _Seq>::_Self): New.
1075 (_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
1076 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
1077 (operator==(const _Safe_local_iterator<>&,
1078 const _Safe_local_iterator<>&)): Use latter, inline as friend.
1079 (operator!=(const _Safe_local_iterator<>&,
1080 const _Safe_local_iterator<>&)): Likewise.
1081 * testsuite/util/testsuite_containers.h: Include utility.
1082 (struct forward_members_unordered<_Tp, bool>): Remove 2nd template
1083 parameter.
1084 (forward_members_unordered<>::forward_members_unordered(value_type&)):
1085 Add using namespace std::rel_ops.
1086 Add iterator_concept_checks on local_iterator and const_local_iterator.
1087 Add asserts on comparison between const_local_iterator and
1088 local_iterator.
1089 (struct forward_members_unordered<_Tp, false>): Remove partial
1090 specialization.
1091 * testsuite/23_containers/forward_list/types/1.cc: New.
1092 * testsuite/23_containers/list/types/1.cc: New.
1093
1094 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
1095
1096 * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
1097 references.
1098
1099 2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
1100
1101 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
1102 Add dg-require-fileio.
1103 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
1104 Likewise.
1105 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
1106 Likewise.
1107 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1108 Likewise.
1109 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
1110 Likewise.
1111 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
1112 Likewise.
1113 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
1114 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
1115 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
1116 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
1117 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
1118 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
1119 Likewise.
1120 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
1121 Likewise.
1122 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
1123 Likewise.
1124 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
1125 Likewise.
1126 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
1127 Likewise.
1128 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
1129 Likewise.
1130 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
1131 Likewise.
1132 * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
1133 * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
1134 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
1135 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
1136 * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
1137 Likewise.
1138 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
1139 Likewise.
1140 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
1141 * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
1142 * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
1143 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
1144 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
1145 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
1146 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
1147 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
1148 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
1149 Likewise.
1150 * testsuite/27_io/objects/wchar_t/10.cc: Likewise.
1151 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
1152 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
1153 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
1154 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
1155 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
1156 * testsuite/experimental/string_view/inserters/wchar_t/2.cc:
1157 Likewise.
1158 * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
1159
1160 2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
1161
1162 * testsuite/experimental/propagate_const/observers/1.cc: Make
1163 dependence on -fdelete-null-pointer-checks explicit.
1164
1165 2018-08-30 Jonathan Wakely <jwakely@redhat.com>
1166
1167 * include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
1168 targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
1169 of the number of bits in the type.
1170 * include/std/bit (__ceil2): Avoid undefined shifts.
1171 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
1172 the most signifiant bit set.
1173
1174 * config/abi/pre/gnu.ver: Add missing exports for mingw.
1175
1176 * include/ext/pointer.h (_Pointer_adapter): Define operators for
1177 pointer arithmetic using long long offsets.
1178 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
1179 long long values.
1180
1181 2018-08-29 Jonathan Wakely <jwakely@redhat.com>
1182
1183 PR libstdc++/31413
1184 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
1185 string for alternative format.
1186
1187 2018-08-28 Jonathan Wakely <jwakely@redhat.com>
1188
1189 PR libstdc++/87116
1190 * src/filesystem/std-path.cc (path::lexically_normal): When handling
1191 a dot-dot filename, preserve an empty final component in the iteration
1192 sequence.
1193 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
1194 root-directory.
1195 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
1196 for more than two adjacent dot-dot filenames.
1197 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
1198 preferred-separator in expected normalized strings.
1199
1200 2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
1201
1202 PR libstdc++/70694
1203 * configure.host (OPT_LDFLAGS): Don't append
1204 -fvisibility-inlines-hidden for newer Darwin.
1205
1206 2018-08-24 Marc Glisse <marc.glisse@inria.fr>
1207
1208 PR libstdc++/86822
1209 * libsupc++/new (operator new(size_t, nothrow_t), operator
1210 new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
1211 operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
1212
1213 2018-08-24 Jonathan Wakely <jwakely@redhat.com>
1214
1215 * include/debug/deque (std::__debug::deque): Declare.
1216 * include/debug/forward_list (std::__debug::forward_list): Declare.
1217 * include/debug/list (std::__debug::list): Declare.
1218 * include/debug/map (std::__debug::map): Declare.
1219 * include/debug/set (std::__debug::set): Declare.
1220 * include/debug/unordered_map (std::__debug::unordered_map): Declare.
1221 * include/debug/unordered_set (std::__debug::unordered_set): Declare.
1222 * include/debug/vector (std::__debug::vector): Declare.
1223 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
1224 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
1225 test.
1226 * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
1227 * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
1228 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
1229 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
1230 * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
1231 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
1232 test.
1233 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1234 New test.
1235 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1236 New test.
1237 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
1238 test.
1239 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1240 Adjust dg-error lineno.
1241 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
1242 test.
1243
1244 2018-08-23 Jonathan Wakely <jwakely@redhat.com>
1245
1246 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
1247 Only define when RTTI is enabled.
1248
1249 * include/debug/vector (__niter_base): Define for C++98.
1250
1251 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
1252 Fix C++98 test to not use C++11 features.
1253 * testsuite/25_algorithms/fill_n/2.cc: Likewise.
1254
1255 * scripts/check_compile: Fix comments.
1256
1257 * include/debug/string (insert(__const_iterator, _InIter, _InIter)):
1258 [!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
1259 begin(), for C++98 compatibility.
1260
1261 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1262 (basic_string::__const_iterator): Change access to protected.
1263 [!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
1264 as typedef for iterator.
1265 * include/debug/string (__const_iterator): Use typedef from base.
1266 (insert(const_iterator, _CharT))
1267 (replace(const_iterator, const_iterator, const basic_string&))
1268 (replace(const_iterator, const_iterator, const _CharT*, size_type))
1269 (replace(const_iterator, const_iterator, const CharT*))
1270 (replace(const_iterator, const_iterator, size_type, _CharT))
1271 (replace(const_iterator, const_iterator, _InputIter, _InputIter))
1272 (replace(const_iterator, const_iterator, initializer_list<_CharT>)):
1273 Change const_iterator parameters to __const_iterator.
1274 (insert(iterator, size_type, _CharT)): Add C++98 overload.
1275 (insert(const_iterator, _InputIterator, _InputIterator)): Change
1276 const_iterator parameter to __const_iterator.
1277 [!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
1278 of base's member function.
1279 (insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
1280 Likewise.
1281 (insert(const_iterator, initializer_list<_CharT>))
1282 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1283 * testsuite/21_strings/basic_string/init-list.cc: Remove effective
1284 target directive.
1285
1286 * testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
1287 not use C++14 feature.
1288 * testsuite/23_containers/list/68222_neg.cc: Likewise.
1289
1290 * testsuite/21_strings/basic_string/init-list.cc:
1291 Require cxx11-abi.
1292 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1293 Likewise.
1294 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1295 Likewise.
1296
1297 * testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
1298 C++98 mode.
1299 * testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
1300 * testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
1301 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
1302 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
1303 * testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
1304
1305 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
1306
1307 PR libstdc++/87061
1308 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
1309 (experimental::pmr::match_results, experimental::pmr::cmatch)
1310 (experimental::pmr::smatch, experimental::pmr::wcmatch)
1311 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
1312 because COW strings don't support C++11 allocator model.
1313 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
1314 (experimental::pmr::basic_string, experimental::pmr::string)
1315 (experimental::pmr::u16string, experimental::pmr::u32string)
1316 (experimental::pmr::wstring): Likewise.
1317 * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
1318 (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
1319 * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
1320 (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
1321 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
1322 cxx11-abi.
1323 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1324
1325 PR libstdc++/78448
1326 * include/bits/deque.tcc (deque::_M_range_initialize): Use
1327 _S_check_init_len to check size.
1328 (deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
1329 error if size would exceed max_size().
1330 * include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
1331 (_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
1332 size_t instead of size_type.
1333 (deq(size_type, const allocator_type&)
1334 (deq(size_type, const value_type&, const allocator_type&)
1335 (deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
1336 (deque::max_size): Call _S_max_size.
1337 (deque::_S_check_init_len, deque::_S_max_size): New functions.
1338 * include/bits/stl_vector.h (vector(size_type, const allocator_type&))
1339 (vector(size_type, const value_type&, const allocator_type&))
1340 (vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
1341 _S_check_init_len to check size.
1342 (vector::max_size): Call _S_max_size.
1343 (vector::_M_check_len): Prevent max from being expanded as a
1344 function-like macro.
1345 (vector::_S_check_init_len, vector::_S_max_size): New functions.
1346 * include/bits/vector.tcc (vector::_M_assign_aux): Use
1347 _S_check_init_len to check size.
1348 * testsuite/23_containers/deque/capacity/max_size.cc: New test.
1349 * testsuite/23_containers/vector/capacity/max_size.cc: New test.
1350
1351 2018-08-22 François Dumont <fdumont@gcc.gnu.org>
1352
1353 PR libstdc++/68222
1354 * include/debug/safe_iterator.h
1355 (_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
1356 (_Safe_iterator<>::_Const_iterator): Remove.
1357 (_Safe_iterator<>::_IsConstant): New.
1358 (_Safe_iterator<>::_OtherIterator): New.
1359 (_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
1360 const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
1361 __gnu_cxx::__enable_if condition.
1362 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
1363 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
1364 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
1365 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
1366 (_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
1367 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1368 ::operator--()): ...here.
1369 (_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
1370 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1371 ::operator--(int)): ...here.
1372 (_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
1373 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
1374 ::_M_decrementable()): ...here.
1375 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
1376 (_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
1377 Move...
1378 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1379 ::operator[](const difference_type&)): ...here.
1380 (_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
1381 Move...
1382 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1383 ::operator+=(const difference_type&)): ...here.
1384 (_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
1385 Move...
1386 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1387 ::operator+(const difference_type&)): ...here.
1388 (_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
1389 Move...
1390 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1391 ::operator-=(const difference_type&)): ...here.
1392 (_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
1393 Move...
1394 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
1395 ::operator-(const difference_type&)): ...here.
1396 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1397 Constraint to random access iterators.
1398 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1399 Likewise.
1400 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1401 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1402 Likewise.
1403 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
1404 (operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
1405 (__check_dereferenceable(const _Safe_iterator<>&)): Remove.
1406 (__get_distance): Remove.
1407 (__get_distance_from_begin): Remove.
1408 (__get_distance_to_end): Remove.
1409 (struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
1410 specialization.
1411 (__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
1412 (__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
1413 (__base(const _Safe_iterator<>&)): Constraint to random access iterator.
1414 * include/debug/safe_iterator.tcc
1415 (_Safe_iterator<>::_M_get_distance_from_begin()): New.
1416 (_Safe_iterator<>::_M_get_distance_to_end()): New.
1417 (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
1418 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
1419 ::_M_valid_range): New.
1420 * include/debug/safe_local_iterator.h
1421 (_Safe_local_iterator<>::_Const_local_iterator): Remove.
1422 (_Safe_local_iterator<>::_IsConstant): New.
1423 (_Safe_local_iterator<>::_OtherIterator): New.
1424 (_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
1425 const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
1426 in __gnu_cxx::__enable_if condition. If singular compare base iterator
1427 with _MutIte rather than _It.
1428 (_Safe_local_iterator<>::_S_constant): Make constexpr.
1429 (_Safe_local_iterator<>::_M_get_distance_to): New.
1430 (__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
1431 (__get_distance(const _Safe_local_iterator<>&,
1432 const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
1433 (__valid_range(const _Safe_local_iterator<>&,
1434 const _Safe_local_iterator<>&)): New.
1435 * include/debug/safe_local_iterator.tcc
1436 (_Safe_local_iterator<>::_M_get_distance_to): New.
1437 * include/debug/deque (std::__debug::deque<>): Add
1438 ::__gnu_debug::_Safe_iterator<> friend declaration.
1439 * include/debug/forward_list (std::__debug::forward_list<>): Likewise.
1440 * include/debug/list (std::__debug::list<>): Likewise.
1441 * include/debug/map.h (std::__debug::map<>): Likewise.
1442 * include/debug/multimap.h (std::__debug::multimap<>): Likewise.
1443 * include/debug/set.h (std::__debug::set<>): Likewise.
1444 * include/debug/multiset.h (std::__debug::multiset<>): Likewise.
1445 * include/debug/string (std::__debug::basic_string<>): Likewise.
1446 * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
1447 and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
1448 (std::__debug::unordered_multimap<>): Likewise.
1449 * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
1450 (std::__debug::unordered_multiset<>): Likewise.
1451 * include/debug/formatter.h: Adapt.
1452 * include/debug/helper_functions.h
1453 (__gnu_debug::_Safe_local_iterator<>): Add declaration.
1454 (__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
1455 Pass parameter by copy.
1456 (__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
1457 (__get_distance<_Ite>(_Ite, _Ite): Likewise.
1458 (__valid_range_aux<_Integral>): Pass _Integral by copy.
1459 (__valid_range<_InputIterator>): Pass _InputIterator by copy.
1460 (__valid_range<>(const _Safe_iterator<>&,
1461 const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
1462 Declare.
1463 (__valid_range(const _Safe_local_iterator<>&,
1464 const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
1465 Declare.
1466 (__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
1467 Declare.
1468 (__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
1469 Declare.
1470 (__can_advance): Adapt.
1471 (struct __is_safe_random_iterator<>): Remove.
1472 (struct _SIter_base<>): Remove.
1473 * include/debug/functions.h: Include <bits/stl_iterator.h>.
1474 (__check_dereferenceable): Remove.
1475 (__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
1476 (__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
1477 (__foreign_iterator): Adapt.
1478 * include/debug/stl_iterator.h
1479 (__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
1480 (__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
1481 Constraint for random access iterators.
1482 (__niter_base): Adapt.
1483 * testsuite/util/testsuite_containers.h:
1484 Include <bits/boost_concept_check.h>.
1485 (iterator_concept_checks<_It, _Mutable, _Category>): New.
1486 (citerator<_Cont>::forward_members::forward_members()): Instantiate
1487 latter for container iterator and const_iterator.
1488 * testsuite/23_containers/list/68222_neg.cc: New.
1489 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
1490 line number.
1491 * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
1492 (test01): Remove.
1493 * testsuite/23_containers/vector/debug/debug_functions.cc (test01):
1494 Remove.
1495
1496 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
1497
1498 PR libstdc++/77854
1499 * doc/xml/manual/status_cxx1998.xml: Document size_type and
1500 difference_type for containers.
1501 * doc/html/*: Regenerate.
1502
1503 2018-08-21 François Dumont <fdumont@gcc.gnu.org>
1504
1505 P0646R1 Improving the Return Value of Erase-Like Algorithms I
1506 * include/debug/forward_list (forward_list::__remove_return_type):
1507 Define typedef as size_type or void, according to __cplusplus value.
1508 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1509 empty, according to __cplusplus value.
1510 (_GLIBCXX20_ONLY): Define macro.
1511 (forward_list::remove, forward_list::unique): Use typedef and macro
1512 to change return type and add abi-tag for C++2a. Return number of
1513 removed elements for C++2a.
1514 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1515 typedef to change return type for C++2a. Return number of removed
1516 elements for C++2a.
1517 * include/debug/list (list::__remove_return_type): Define typedef as
1518 size_type or void, according to __cplusplus value.
1519 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1520 empty, according to __cplusplus value.
1521 (_GLIBCXX20_ONLY): Define macro.
1522 (list::remove, list::unique): Use typedef and macro to change return
1523 type and add abi-tag for C++2a. Return number of removed elements for
1524 C++2a.
1525 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
1526 to change return type for C++2a. Return number of removed elements for
1527 C++2a.
1528
1529 2018-08-21 David Edelsohn <dje.gcc@gmail.com>
1530
1531 * testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
1532
1533 2018-08-21 Jonathan Wakely <jwakely@redhat.com>
1534
1535 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
1536 redundant dg-do directive.
1537 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
1538 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
1539 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
1540 * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
1541
1542 2018-08-20 Jonathan Wakely <jwakely@redhat.com>
1543
1544 PR libstdc++/86963
1545 * include/std/tuple (_Tuple_impl::operator=): Define as deleted.
1546 (_Tuple_impl::_M_assign): New functions to perform assignment instead
1547 of assignment operators.
1548 (_Tuple_impl::_M_swap): Remove exception specification.
1549 (_Tuple_impl<_Idx, _Head>): Likewise.
1550 (_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
1551 (__tuple_base): Remove.
1552 (tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
1553 (tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
1554 (tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
1555 using __is_nothrow_swappable.
1556 (tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
1557
1558 * include/std/optional (_Optional_payload): Use variable templates
1559 for conditions in default template arguments and exception
1560 specifications.
1561 (optional): Likewise. Adjust indentation.
1562 (optional::__not_self, optional::__not_tag, optional::_Requires): New
1563 SFINAE helpers.
1564 (optional::optional): Use new helpers in constructor constraints.
1565 * include/std/type_traits (__or_v, __and_v): New variable templates.
1566 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
1567 dg-prune-output. Remove unused header.
1568
1569 2018-08-18 François Dumont <fdumont@gcc.gnu.org>
1570
1571 * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
1572 _GLIBCXX_DEBUG.
1573
1574 2018-08-17 Jonathan Wakely <jwakely@redhat.com>
1575
1576 PR libstdc++/86963
1577 * include/std/tuple (__tuple_base): New class template with deleted
1578 copy assignment operator.
1579 (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
1580 implicit copy/move assignment operator will be deleted/suppressed.
1581 (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
1582 functions for SFINAE constraints on assignment operators.
1583 (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
1584 New helper functions for exception specifications.
1585 (tuple::operator=(const tuple&), tuple::operator=(tuple&&))
1586 (tuple<_T1, _T2>::operator=(const tuple&))
1587 (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
1588 __nonesuch_no_braces when the operator should be defined implicitly.
1589 Use __nothrow_assignable for exception specifications.
1590 (tuple::operator=(const tuple<_UElements...>&))
1591 (tuple::operator=(tuple<_UElements...>&&))
1592 (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
1593 (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
1594 (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
1595 (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
1596 __assignable and use __nothrow_assignable for exception
1597 specifications.
1598 * python/libstdcxx/v6/printers.py (is_specialization_of): Accept
1599 gdb.Type as first argument, instead of a string.
1600 (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
1601 tuple for expected structure.
1602 (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
1603 * testsuite/20_util/tuple/dr2729.cc: New test.
1604 * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
1605 to dg-prune-output.
1606
1607 2018-08-16 Jonathan Wakely <jwakely@redhat.com>
1608
1609 * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
1610 about signed/unsigned comparison.
1611
1612 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress
1613 deprecation warnings for using uncaught_exception().
1614
1615 PR libstdc++/86447
1616 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
1617 (logic_error::logic_error(logic_error&&))
1618 (logic_error::operator=(logic_error&&))
1619 (runtime_error::runtime_error(runtime_error&&))
1620 (runtime_error::operator=(runtime_error&&)): Copy strings instead of
1621 moving, to avoid allocating empty reps for moved-from strings.
1622
1623 2018-08-15 Jonathan Wakely <jwakely@redhat.com>
1624
1625 * include/experimental/regex: Remove begin/end macros for namespace.
1626 * include/experimental/string: Likewise.
1627 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
1628 New test.
1629 * testsuite/experimental/polymorphic_allocator/
1630 pmr_typedefs_forward_list.cc: New test.
1631 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
1632 New test.
1633 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
1634 New test.
1635 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1636 New test.
1637 * testsuite/experimental/polymorphic_allocator/
1638 pmr_typedefs_multimap.cc: New test.
1639 * testsuite/experimental/polymorphic_allocator/
1640 pmr_typedefs_multiset.cc: New test.
1641 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
1642 New test.
1643 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1644 New test.
1645 * testsuite/experimental/polymorphic_allocator/
1646 pmr_typedefs_unordered_map.cc: New test.
1647 * testsuite/experimental/polymorphic_allocator/
1648 pmr_typedefs_unordered_multimap.cc: New test.
1649 * testsuite/experimental/polymorphic_allocator/
1650 pmr_typedefs_unordered_multiset.cc: New test.
1651 * testsuite/experimental/polymorphic_allocator/
1652 pmr_typedefs_unordered_set.cc: New test.
1653 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
1654 New test.
1655
1656 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
1657 calls to __uses_allocator_construct_impl and __use_alloc.
1658 * include/experimental/memory_resource
1659 (polymorphic_allocator::_M_construct): Remove.
1660 (polymorphic_allocator::construct): Call __uses_allocator_construct.
1661 Qualify calls to __use_alloc.
1662 * include/std/memory_resource (polymorphic_allocator::construct): Fix
1663 type in SFINAE constraint. Use constexpr if instead of tag dispatching
1664 to _S_construct overloads.
1665 (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
1666 arguments to _S_construct_p.
1667 (polymorphic_allocator::_S_construct): Remove.
1668 (polymorphic_allocator::_S_construct_p): Return allocators by value
1669 not by reference.
1670 * include/std/scoped_allocator (scoped_allocator_adaptor::construct):
1671 Qualify calls to __use_alloc.
1672 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
1673 copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
1674 * testsuite/experimental/polymorphic_allocator/1.cc: New test.
1675 * testsuite/experimental/polymorphic_allocator/construct_pair.cc:
1676 New test.
1677
1678 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
1679 (atomic_mem_res): Add unsynchronized definition for single-threaded.
1680
1681 2018-08-14 Jonathan Wakely <jwakely@redhat.com>
1682
1683 PR libstdc++/86954
1684 * include/bits/stl_tempbuf.h (return_temporary_buffer): Use
1685 non-placement delete.
1686
1687 * include/std/chrono (__check_overflow): Simplify definition.
1688 (_Checked_integral_constant): Remove.
1689
1690 PR libstdc++/86846
1691 * src/c++17/default_resource.h: New file, defining default_res.
1692 * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
1693 (atomic_mem_res): Define alternative for atomic<memory_resource*>
1694 using a mutex instead of atomics.
1695
1696 PR libstdc++/85343
1697 * config/abi/pre/gnu.ver: Export new symbol.
1698 * doc/xml/manual/abi.xml: Document new versions.
1699 * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
1700 (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
1701 * include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
1702 Declare new overload.
1703 * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
1704 and static member function.
1705 (__throw_ios_failure(const char*, int)): Define.
1706 * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
1707 (__throw_ios_failure(const char*, int)): Define.
1708
1709 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
1710
1711 * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
1712 (_Rope_const_iterator::operator=(const _Rope_const_iterator&))
1713 (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
1714 copied/assigned rope iterators don't retain pointers to the iterator
1715 they were copied/assigned from.
1716 * testsuite/ext/rope/7.cc: New.
1717
1718 2018-08-13 Jonathan Wakely <jwakely@redhat.com>
1719
1720 PR libstdc++/45093
1721 * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
1722 Combine definitions to avoid --detect-odr-violations warning.
1723
1724 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
1725 __is_pow2 to check for valid alignment. Avoid branching when rounding
1726 size to multiple of alignment.
1727
1728 * include/Makefile.am: Install <bit> and <version> for freestanding.
1729 * include/Makefile.in: Regenerate.
1730 * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
1731
1732 Revert
1733 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1734
1735 PR target/85904
1736 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1737 Newlib.
1738 * configure: Regenerate.
1739
1740 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1741
1742 PR libstdc++/68210
1743 * doc/xml/manual/intro.xml: Document LWG 206 change.
1744 * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1745 * libsupc++/del_opa.cc: Likewise.
1746 * libsupc++/del_opant.cc: Likewise.
1747 * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
1748 of free(ptr).
1749 * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1750 * libsupc++/del_opsa.cc: Likewise.
1751 * libsupc++/del_opva.cc: Likewise.
1752 * libsupc++/del_opvant.cc: Likewise.
1753 * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
1754 instead of operator delete(ptr).
1755 * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1756 * libsupc++/del_opvsa.cc: Likewise.
1757 * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
1758 * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
1759 * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
1760 with noexcept.
1761 * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
1762 malloc(sz).
1763 * libsupc++/new_opvant.cc: Use nullptr and noexcept.
1764 * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
1765 operator new(sz, nothrow).
1766 * testsuite/18_support/new_nothrow.cc: New test.
1767
1768 2018-08-10 Martin Liska <mliska@suse.cz>
1769
1770 * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
1771 predictor can handle that.
1772 * libsupc++/new_opa.cc: Likewise.
1773 * libsupc++/new_opnt.cc (new): Likewise.
1774
1775 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1776
1777 PR target/85904
1778 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1779 Newlib.
1780 * configure: Regenerate.
1781
1782 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1783
1784 * include/std/deque (std::pmr::deque): Declare alias.
1785 * include/std/forward_list (std::pmr::forward_list): Likewise.
1786 * include/std/list (std::pmr::list): Likewise.
1787 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
1788 * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
1789 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
1790 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
1791 * include/std/string (std::pmr::basic_string, std::pmr::string)
1792 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
1793 Likewise.
1794 * include/std/unordered_map (std::pmr::unordered_map)
1795 (std::pmr::unordered_multimap): Likewise.
1796 * include/std/unordered_set (std::pmr::unordered_set)
1797 (std::pmr::unordered_multiset): Likewise.
1798 * include/std/vector (std::pmr::vector): Likewise.
1799 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
1800 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
1801 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
1802 * testsuite/23_containers/list/pmr_typedefs.cc: New test.
1803 * testsuite/23_containers/map/pmr_typedefs.cc: New test.
1804 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
1805 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
1806 * testsuite/23_containers/set/pmr_typedefs.cc: New test.
1807 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
1808 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
1809 test.
1810 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
1811 test.
1812 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
1813 * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
1814 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
1815
1816 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
1817
1818 * include/bits/stl_algo.h
1819 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
1820 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
1821 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
1822 duplication...
1823 (rotate(_Ite, _Ite, _Ite)): ...here.
1824 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
1825 Simplify rotate call.
1826 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
1827 Likewise.
1828 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
1829 Likewise.
1830
1831 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
1832
1833 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
1834 avoid clashing with an ::aligned_alloc function that was not detected
1835 by configure.
1836
1837 * doc/xml/manual/using.xml: Fix markup for empty table entry.
1838 * doc/html/*: Regenerate.
1839
1840 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
1841 * doc/html/*: Regenerate.
1842
1843 PR libstdc++/86597
1844 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
1845 Clear error_code when cached type is used.
1846 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
1847
1848 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
1849
1850 PR libstdc++/86874
1851 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
1852 here instead of in _Move_assign_base.
1853 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
1854 (_Copy_assign_base::operator=): Use _M_destructive_move when changing
1855 the contained value to another alternative.
1856 (_Move_assign_base::operator=): Likewise.
1857 (_Move_assign_base::_M_destructive_move): Remove.
1858 * testsuite/20_util/variant/86874.cc: New test.
1859
1860 PR libstdc++/86861
1861 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
1862 Replace macro with inline function.
1863 [__sun]: Increase alignment to meet memalign precondition.
1864 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
1865 (aligned_alloc): Move check for valid alignment to operator new.
1866 Remove redundant check for non-zero size, it's enforced by the caller.
1867 (operator new): Move check for valid alignment here. Use
1868 __builtin_expect on check for zero size.
1869
1870 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
1871 * include/std/memory_resource (monotonic_buffer_resource::release):
1872 Call _M_release_buffers to free buffers.
1873 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
1874 allocate a new buffer from upstream.
1875 (monotonic_buffer_resource::_M_new_buffer): Declare.
1876 (monotonic_buffer_resource::_M_release_buffers): Declare.
1877 (monotonic_buffer_resource::_Chunk): Replace definition with
1878 declaration as opaque type.
1879 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
1880 Define.
1881 (monotonic_buffer_resource::_M_new_buffer): Define.
1882 (monotonic_buffer_resource::_M_release_buffers): Define.
1883
1884 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
1885
1886 * include/bits/stl_iterator.h: Fix comment.
1887
1888 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
1889
1890 * src/c++11/system_error.cc
1891 (system_error_category::default_error_condition): Add workaround for
1892 ENOTEMPTY and EEXIST having the same value on AIX.
1893 * testsuite/19_diagnostics/error_category/system_category.cc: Add
1894 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
1895
1896 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1897
1898 * configure: Regenerate.
1899 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
1900 * src/c++11/futex.cc: Use __glibcxx_assert instead of
1901 _GLIBCXX_DEBUG_ASSERT.
1902
1903 2018-08-01 Mike Crowe <mac@mcrowe.com>
1904
1905 * include/std/condition_variable (wait_for): Use steady_clock.
1906
1907 2018-08-01 Mike Crowe <mac@mcrowe.com>
1908
1909 * include/std/condition_variable (wait_until): Only report timeout
1910 if we really have timed out when measured against the
1911 caller-supplied clock.
1912 * testsuite/30_threads/condition_variable/members/2.cc: Add test
1913 case to confirm above behaviour.
1914
1915 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1916
1917 PR libstdc++/60555
1918 * src/c++11/system_error.cc
1919 (system_error_category::default_error_condition): New override to
1920 check for POSIX errno values.
1921 * testsuite/19_diagnostics/error_category/generic_category.cc: New
1922 * testsuite/19_diagnostics/error_category/system_category.cc: New
1923 test.
1924
1925 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
1926
1927 PR libstdc++/86751
1928 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
1929 assignment operator.
1930 (pair): Derive from __pair_base.
1931 (pair::operator=): Remove deleted overload.
1932 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
1933 so that new base class isn't shown in GDB.
1934 * testsuite/20_util/pair/86751.cc: New test.
1935 * testsuite/20_util/pair/ref_assign.cc: New test.
1936
1937 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1938 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
1939 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
1940 instead of __has_builtin.
1941 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1942 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
1943 * include/std/version [!_GLIBCXX_HAS_GTHREADS]
1944 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
1945 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
1946 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
1947 (__cpp_lib_has_unique_object_representations): Don't define when
1948 builtin not available.
1949 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
1950 Likewise.
1951 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
1952 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
1953 from here.
1954
1955 * doc/xml/manual/test.xml: Improve documentation on writing tests for
1956 newer standards.
1957 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
1958 * doc/html/*: Regenerate.
1959
1960 * include/ext/pointer.h [__cplusplus >= 201103L]
1961 (_Pointer_adapter::operator bool): Add explicit conversion operator
1962 to replace safe bool idiom.
1963
1964 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
1965
1966 PR libstdc++/86734
1967 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
1968 _S_to_pointer (LWG 1052, LWG 2118).
1969 (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
1970 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
1971 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
1972
1973 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
1974 workaround for aligned_alloc bug on AIX.
1975 * testsuite/18_support/new_aligned.cc: New test.
1976
1977 2018-07-26 Marek Polacek <polacek@redhat.com>
1978
1979 * testsuite/30_threads/condition_variable_any/cond.cc: New.
1980
1981 2018-07-26 Marek Polacek <polacek@redhat.com>
1982
1983 * src/c++98/locale_init.cc: Fix #ifdef condition.
1984
1985 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
1986
1987 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
1988 dg-require-cstdint directive.
1989 * testsuite/20_util/allocator/overaligned.cc: Likewise.
1990 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1991 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
1992 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
1993 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1994 Likewise.
1995 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1996 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
1997 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
1998 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
1999 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
2000 random_device effective-target.
2001 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
2002 * testsuite/25_algorithms/sample/1.cc: Require cstdint.
2003 * testsuite/25_algorithms/sample/2.cc: Likewise.
2004 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
2005 and random_device.
2006 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
2007 cstdint.
2008 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
2009 Likewise.
2010 * testsuite/26_numerics/random/discard_block_engine/requirements/
2011 constexpr_data.cc: Likewise.
2012 * testsuite/26_numerics/random/discard_block_engine/requirements/
2013 constexpr_functions.cc: Likewise.
2014 * testsuite/26_numerics/random/independent_bits_engine/requirements/
2015 constexpr_functions.cc: Likewise.
2016 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
2017 constexpr_data.cc: Likewise.
2018 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
2019 constexpr_functions.cc: Likewise.
2020 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
2021 constexpr_data.cc: Likewise.
2022 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
2023 constexpr_functions.cc: Likewise.
2024 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
2025 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
2026 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
2027 constexpr_data.cc: Add dg-require-cstdint directive.
2028 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
2029 constexpr_functions.cc: Likewise.
2030 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
2031 constexpr_data.cc: Likewise.
2032 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
2033 constexpr_functions.cc: Likewise.
2034 * testsuite/26_numerics/random/uniform_real_distribution/operators/
2035 64351.cc: Likewise.
2036 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
2037 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
2038 * testsuite/experimental/algorithm/sample.cc: Likewise.
2039 * testsuite/experimental/algorithm/search.cc: Likewise.
2040 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2041 * testsuite/experimental/any/cons/aligned.cc: Likewise.
2042 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2043 Likewise.
2044 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
2045 * testsuite/experimental/random/randint.cc: Likewise.
2046 * testsuite/experimental/source_location/1.cc: Likewise.
2047 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
2048 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
2049 * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
2050 * testsuite/ext/new_allocator/overaligned.cc: Likewise.
2051 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
2052 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
2053 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
2054 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
2055 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
2056 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
2057 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2058 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
2059 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
2060 * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
2061 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
2062 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
2063 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
2064 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
2065 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
2066 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
2067 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
2068 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
2069 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
2070
2071 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
2072 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
2073 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
2074 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
2075 Likewise.
2076 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
2077 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
2078 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
2079 Likewise.
2080 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
2081 Likewise.
2082 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
2083 Likewise.
2084 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
2085 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
2086 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
2087 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
2088 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
2089 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
2090 Likewise.
2091 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
2092 Likewise.
2093 * testsuite/30_threads/recursive_timed_mutex/dest/
2094 destructor_locked.cc: Likewise.
2095 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
2096 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
2097 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
2098 Likewise.
2099 * testsuite/30_threads/recursive_timed_mutex/native_handle/
2100 typesizes.cc: Likewise.
2101 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
2102 Likewise.
2103 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
2104 Likewise.
2105 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
2106 Likewise.
2107 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
2108 Likewise.
2109 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
2110 Likewise.
2111 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
2112 Likewise.
2113 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
2114 Likewise.
2115 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
2116 Likewise.
2117 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
2118 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
2119 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
2120 * testsuite/30_threads/scoped_lock/requirements/
2121 explicit_instantiation.cc: Likewise.
2122 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
2123 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
2124 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
2125 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
2126 * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
2127 * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
2128 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
2129 * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
2130 * testsuite/30_threads/shared_future/members/get.cc: Likewise.
2131 * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
2132 * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
2133 * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
2134 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
2135 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
2136 * testsuite/30_threads/shared_future/requirements/
2137 explicit_instantiation.cc: Likewise.
2138 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
2139 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
2140 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
2141 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
2142 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
2143 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
2144 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
2145 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
2146 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
2147 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
2148 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
2149 * testsuite/30_threads/shared_lock/requirements/
2150 explicit_instantiation.cc: Likewise.
2151 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
2152 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
2153 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
2154 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
2155 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
2156 Likewise.
2157 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
2158 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
2159 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
2160 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
2161 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
2162 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
2163 * testsuite/30_threads/shared_timed_mutex/requirements/
2164 standard_layout.cc: Likewise.
2165 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
2166 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
2167 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
2168 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
2169 * testsuite/30_threads/this_thread/1.cc: Likewise.
2170 * testsuite/30_threads/this_thread/2.cc: Likewise.
2171 * testsuite/30_threads/this_thread/3.cc: Likewise.
2172 * testsuite/30_threads/this_thread/4.cc: Likewise.
2173 * testsuite/30_threads/this_thread/58038.cc: Likewise.
2174 * testsuite/30_threads/thread/70503.cc: Likewise.
2175 * testsuite/30_threads/thread/84532.cc: Likewise.
2176 * testsuite/30_threads/thread/adl.cc: Likewise.
2177 * testsuite/30_threads/thread/cons/1.cc: Likewise.
2178 * testsuite/30_threads/thread/cons/2.cc: Likewise.
2179 * testsuite/30_threads/thread/cons/3.cc: Likewise.
2180 * testsuite/30_threads/thread/cons/4.cc: Likewise.
2181 * testsuite/30_threads/thread/cons/49668.cc: Likewise.
2182 * testsuite/30_threads/thread/cons/5.cc: Likewise.
2183 * testsuite/30_threads/thread/cons/6.cc: Likewise.
2184 * testsuite/30_threads/thread/cons/7.cc: Likewise.
2185 * testsuite/30_threads/thread/cons/8.cc: Likewise.
2186 * testsuite/30_threads/thread/cons/84535.cc: Likewise.
2187 * testsuite/30_threads/thread/cons/9.cc: Likewise.
2188 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
2189 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
2190 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
2191 * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
2192 * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
2193 * testsuite/30_threads/thread/id/operators.cc: Likewise.
2194 * testsuite/30_threads/thread/members/1.cc: Likewise.
2195 * testsuite/30_threads/thread/members/2.cc: Likewise.
2196 * testsuite/30_threads/thread/members/3.cc: Likewise.
2197 * testsuite/30_threads/thread/members/4.cc: Likewise.
2198 * testsuite/30_threads/thread/members/5.cc: Likewise.
2199 * testsuite/30_threads/thread/members/hardware_concurrency.cc:
2200 Likewise.
2201 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
2202 * testsuite/30_threads/thread/swap/1.cc: Likewise.
2203 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
2204 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
2205 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
2206 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
2207 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
2208 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
2209 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
2210 Likewise.
2211 * testsuite/30_threads/timed_mutex/requirements/
2212 standard_layout.cc: Likewise.
2213 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
2214 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
2215 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
2216 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
2217 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
2218 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
2219 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
2220 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
2221 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
2222 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
2223 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
2224 * testsuite/30_threads/try_lock/1.cc: Likewise.
2225 * testsuite/30_threads/try_lock/2.cc: Likewise.
2226 * testsuite/30_threads/try_lock/3.cc: Likewise.
2227 * testsuite/30_threads/try_lock/4.cc: Likewise.
2228 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
2229 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
2230 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
2231 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
2232 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
2233 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
2234 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
2235 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
2236 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
2237 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
2238 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
2239 * testsuite/30_threads/unique_lock/requirements/
2240 explicit_instantiation.cc: Likewise.
2241 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
2242
2243 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
2244 directive.
2245 * testsuite/30_threads/async/49668.cc: Likewise.
2246 * testsuite/30_threads/async/54297.cc: Likewise.
2247 * testsuite/30_threads/async/84532.cc: Likewise.
2248 * testsuite/30_threads/async/any.cc: Likewise.
2249 * testsuite/30_threads/async/async.cc: Likewise.
2250 * testsuite/30_threads/async/except.cc: Likewise.
2251 * testsuite/30_threads/async/forced_unwind.cc: Likewise.
2252 * testsuite/30_threads/async/launch.cc: Likewise.
2253 * testsuite/30_threads/async/lwg2021.cc: Likewise.
2254 * testsuite/30_threads/async/sync.cc: Likewise.
2255 * testsuite/30_threads/call_once/39909.cc: Likewise.
2256 * testsuite/30_threads/call_once/49668.cc: Likewise.
2257 * testsuite/30_threads/call_once/60497.cc: Likewise.
2258 * testsuite/30_threads/call_once/call_once1.cc: Likewise.
2259 * testsuite/30_threads/call_once/constexpr.cc: Likewise.
2260 * testsuite/30_threads/call_once/dr2442.cc: Likewise.
2261 * testsuite/30_threads/call_once/once_flag.cc: Likewise.
2262 * testsuite/30_threads/condition_variable/54185.cc: Likewise.
2263 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
2264 * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
2265 Likewise.
2266 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
2267 * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
2268 * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
2269 * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
2270 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
2271 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
2272 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
2273 Likewise.
2274 * testsuite/30_threads/condition_variable/requirements/
2275 standard_layout.cc: Likewise.
2276 * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
2277 * Likewise.
2278 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
2279 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
2280 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
2281 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
2282 Likewise.
2283 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
2284 Likewise.
2285 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
2286 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
2287 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
2288 * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
2289 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
2290 * testsuite/30_threads/future/cons/default.cc: Likewise.
2291 * testsuite/30_threads/future/cons/move.cc: Likewise.
2292 * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
2293 * testsuite/30_threads/future/members/45133.cc: Likewise.
2294 * testsuite/30_threads/future/members/get.cc: Likewise.
2295 * testsuite/30_threads/future/members/get2.cc: Likewise.
2296 * testsuite/30_threads/future/members/share.cc: Likewise.
2297 * testsuite/30_threads/future/members/valid.cc: Likewise.
2298 * testsuite/30_threads/future/members/wait.cc: Likewise.
2299 * testsuite/30_threads/future/members/wait_for.cc: Likewise.
2300 * testsuite/30_threads/future/members/wait_until.cc: Likewise.
2301 * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
2302 Likewise.
2303 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
2304 Likewise.
2305 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
2306 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
2307 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
2308 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
2309 * testsuite/30_threads/lock/1.cc: Likewise.
2310 * testsuite/30_threads/lock/2.cc: Likewise.
2311 * testsuite/30_threads/lock/3.cc: Likewise.
2312 * testsuite/30_threads/lock/4.cc: Likewise.
2313 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
2314 * testsuite/30_threads/lock_guard/requirements/
2315 explicit_instantiation.cc: Likewise.
2316 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
2317 * testsuite/30_threads/mutex/cons/1.cc: Likewise.
2318 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
2319 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
2320 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
2321 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
2322 * testsuite/30_threads/mutex/lock/1.cc: Likewise.
2323 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
2324 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
2325 * testsuite/30_threads/mutex/requirements/standard_layout.cc::
2326 Likewise.
2327 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
2328 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
2329 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
2330 * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
2331 * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
2332 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
2333 * testsuite/30_threads/packaged_task/49668.cc: Likewise.
2334 * testsuite/30_threads/packaged_task/60564.cc: Likewise.
2335 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
2336 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
2337 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
2338 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
2339 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
2340 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
2341 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
2342 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
2343 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
2344 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
2345 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
2346 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
2347 Likewise.
2348 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
2349 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
2350 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
2351 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
2352 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
2353 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
2354 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
2355 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
2356 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
2357 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
2358 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
2359 * testsuite/30_threads/packaged_task/requirements/
2360 explicit_instantiation.cc: Likewise.
2361 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
2362 * testsuite/30_threads/promise/60966.cc: Likewise.
2363 * testsuite/30_threads/promise/69106.cc: Likewise.
2364 * testsuite/30_threads/promise/cons/1.cc: Likewise.
2365 * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
2366 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
2367 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
2368 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
2369 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
2370 * testsuite/30_threads/promise/cons/move.cc: Likewise.
2371 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
2372 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
2373 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
2374 * testsuite/30_threads/promise/members/get_future.cc: Likewise.
2375 * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
2376 * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
2377 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
2378 * testsuite/30_threads/promise/members/set_value.cc: Likewise.
2379 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
2380 * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
2381 * testsuite/30_threads/promise/members/swap.cc: Likewise.
2382 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
2383 * Likewise.
2384 * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
2385
2386 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
2387 from namespace std.
2388 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
2389 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
2390 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
2391 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
2392 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
2393 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
2394 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
2395 * testsuite/20_util/duration/cons/1.cc: Likewise.
2396 * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
2397 * testsuite/20_util/duration/cons/2.cc: Likewise.
2398 * testsuite/20_util/duration/cons/54025.cc: Likewise.
2399 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
2400 * testsuite/20_util/duration/requirements/explicit_instantiation/
2401 explicit_instantiation.cc: Likewise.
2402 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2403 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2404 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2405 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
2406 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
2407 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
2408 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
2409 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
2410 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
2411 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
2412 * testsuite/20_util/ratio/operations/53840.cc: Likewise.
2413 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
2414 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
2415 * testsuite/20_util/system_clock/1.cc: Likewise.
2416 * testsuite/20_util/time_point/1.cc: Likewise.
2417 * testsuite/20_util/time_point/2.cc: Likewise.
2418 * testsuite/20_util/time_point/3.cc: Likewise.
2419 * testsuite/20_util/time_point/requirements/explicit_instantiation/
2420 explicit_instantiation.cc: Likewise.
2421 * testsuite/21_strings/basic_string/requirements/
2422 explicit_instantiation/char16_t/1.cc: Likewise.
2423 * testsuite/21_strings/basic_string/requirements/
2424 explicit_instantiation/char32_t/1.cc: Likewise.
2425 * testsuite/21_strings/basic_string_view/requirements/
2426 explicit_instantiation/char16_t/1.cc: Likewise.
2427 * testsuite/21_strings/basic_string_view/requirements/
2428 explicit_instantiation/char32_t/1.cc: Likewise.
2429 * testsuite/21_strings/char_traits/requirements/
2430 explicit_instantiation/char16_t/1.cc: Likewise.
2431 * testsuite/21_strings/char_traits/requirements/
2432 explicit_instantiation/char32_t/1.cc: Likewise.
2433 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
2434 * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
2435 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
2436 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
2437 Likewise.
2438 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
2439 Likewise.
2440 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
2441 Likewise.
2442 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
2443 * testsuite/23_containers/vector/bool/72847.cc: Likewise.
2444 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
2445 Likewise.
2446 * testsuite/experimental/string_view/requirements/
2447 explicit_instantiation/char16_t/1.cc: Likewise.
2448 * testsuite/experimental/string_view/requirements/
2449 explicit_instantiation/char32_t/1.cc: Likewise.
2450 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
2451 1.cc: Likewise.
2452 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
2453 1.cc: Likewise.
2454
2455 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2456 (random_condition, throw_value_random, throw_allocator_random)
2457 (std::hash<throw_value_random>): Do not define when <tr1/random> is
2458 not usable.
2459 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
2460 define transactional memory support when <stdint.h> is not usable.
2461
2462 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
2463 implementation that doesn't depend on <stdint.h> types.
2464 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
2465 std::size_t when std::uintptr_t is not usable.
2466 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
2467 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
2468 Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
2469
2470 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2471 (hash<u16string>, hash<u32string>): Remove dependency on
2472 _GLIBCXX_USE_C99_STDINT_TR1.
2473 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2474 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
2475 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
2476 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
2477 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2478 (codecvt<char16_t, char, mbstate_t>)
2479 (codecvt<char32_t, char, mbstate_t>)
2480 (codecvt_byname<char16_t, char, mbstate_t>)
2481 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
2482 on _GLIBCXX_USE_C99_STDINT_TR1.
2483 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2484 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
2485 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2486 (char_traits<char16_t>, char_traits<char32_t>)
2487 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
2488 on _GLIBCXX_USE_C99_STDINT_TR1.
2489 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
2490 (u16string_view, u32string_view, hash<u16string_view>)
2491 (hash<u32string_view>, operator""sv(const char16_t, size_t))
2492 (operator""sv(const char32_t, size_t)): Likewise.
2493 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2494 (hash<__u16vstring>, hash<__u32vstring>): Likewise.
2495 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2496 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
2497 (__u32sso_string, __u32rc_string): Likewise.
2498 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
2499 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
2500 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
2501 (u16string_view, u32string_view, hash<u16string_view>)
2502 (hash<u32string_view>, operator""sv(const char16_t, size_t))
2503 (operator""sv(const char32_t, size_t)): Likewise.
2504 * src/c++11/codecvt.cc: Likewise.
2505 * src/c++98/locale_init.cc: Likewise.
2506 * src/c++98/localename.cc: Likewise.
2507
2508 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2509 (__atomic_futex_unsigned_base): Remove dependency on
2510 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2511 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2512 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2513 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
2514 (uintmax_t): Define using predefined macros.
2515 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
2516 (time_point, system_clock, high_resolution_clock, steady_clock): Remove
2517 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
2518 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
2519 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
2520 long long when <stdint.h> is not usable.
2521 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
2522 (condition_variable, condition_variable_any): Remove dependency on
2523 _GLIBCXX_USE_C99_STDINT_TR1.
2524 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
2525 (packaged_task, async): Likewise.
2526 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
2527 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
2528 (once_flag, call_once): Likewise.
2529 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
2530 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
2531 (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
2532 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
2533 (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
2534 (this_thread::sleep_until): Likewise.
2535 * src/c++11/chrono.cc: Remove dependency on
2536 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2537 * src/c++11/condition_variable.cc: Likewise.
2538 * src/c++11/futex.cc: Likewise.
2539 * src/c++11/future.cc: Likewise.
2540 * src/c++11/mutex.cc: Likewise.
2541 * src/c++11/thread.cc: Likewise.
2542 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
2543 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2544 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2545 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2546 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
2547 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2548
2549 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2550
2551 PR libstdc++/77691
2552 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2553 xfail execution on 32-bit Solaris/x86.
2554
2555 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
2556
2557 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
2558 (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
2559 (vector::_M_move_assign): Reorder the swaps.
2560
2561 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
2562
2563 PR libstdc++/86676
2564 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
2565 same alignment for post-release allocation.
2566
2567 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
2568
2569 PR libstdc++/86676
2570 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
2571 buffer being misaligned and so returned pointer not being at start.
2572
2573 * include/experimental/memory_resource: Include <cstddef> header.
2574
2575 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
2576 * src/Makefile.am: Add comment.
2577 * src/c++17/Makefile.in: Regenerate.
2578
2579 * include/Makefile.am: Add new <bits/unique_lock.h> header.
2580 * include/Makefile.in: Regenerate.
2581 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
2582 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
2583 (unique_lock): Move definition to ...
2584 * include/bits/unique_lock.h: New header.
2585 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
2586 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
2587 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
2588 (unique_lock::try_lock_for): Define only when <chrono> is usable.
2589 * include/std/condition_variable: Include <bits/unique_lock.h>.
2590 * include/std/mutex: Likewise.
2591
2592 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
2593
2594 * config/abi/pre/gnu.ver: Export new symbols.
2595 * configure: Regenerate.
2596 * include/Makefile.am: Add new <memory_resource> header.
2597 * include/Makefile.in: Regenerate.
2598 * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
2599 * include/std/memory_resource: New header.
2600 (memory_resource, polymorphic_allocator, new_delete_resource)
2601 (null_memory_resource, set_default_resource, get_default_resource)
2602 (pool_options, monotonic_buffer_resource): Define.
2603 * src/Makefile.am: Add c++17 directory.
2604 * src/Makefile.in: Regenerate.
2605 * src/c++11/Makefile.am: Fix comment.
2606 * src/c++17/Makefile.am: Add makefile for new sub-directory.
2607 * src/c++17/Makefile.in: Generate.
2608 * src/c++17/memory_resource.cc: New.
2609 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
2610 (default_res, new_delete_resource, null_memory_resource)
2611 (set_default_resource, get_default_resource): Define.
2612 * testsuite/20_util/memory_resource/1.cc: New test.
2613 * testsuite/20_util/memory_resource/2.cc: New test.
2614 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
2615 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
2616 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
2617 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
2618 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2619 New test.
2620 * testsuite/20_util/polymorphic_allocator/1.cc: New test.
2621 * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
2622 * testsuite/20_util/polymorphic_allocator/select.cc: New test.
2623 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
2624 Define concrete memory resource for testing.
2625 (__gnu_test::default_resource_mgr): Define RAII helper for changing
2626 default resource.
2627
2628 PR libstdc++/86658
2629 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
2630 parameter by reference, to avoid copying invalid iterators.
2631 * testsuite/25_algorithms/copy/86658.cc: New test.
2632
2633 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
2634 local variables for number of digits instead of type aliases.
2635 (__log2p1): Remove redundant branch also checked in __countl_zero.
2636
2637 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
2638 conditions. Add comments.
2639 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
2640 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2641 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
2642
2643 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
2644 (__uses_allocator_helper): Check conditions directly instead of
2645 using __is_erased_or_convertible.
2646
2647 * include/experimental/memory_resource: Adjust comments and
2648 whitespace.
2649 (__resource_adaptor_imp): Add second template parameter for type of
2650 memory resource base class.
2651 (memory_resource): Define default constructor, destructor, copy
2652 constructor and copy assignment operator as defaulted.
2653
2654 PR libstdc++/70966
2655 * include/experimental/memory_resource (__get_default_resource): Use
2656 placement new to create an object with dynamic storage duration.
2657
2658 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
2659
2660 PR libstdc++/70940
2661 * include/experimental/memory_resource
2662 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
2663 (__resource_adaptor_common::__guaranteed_alignment): New helper to
2664 give maximum alignment an allocator guarantees. Specialize for known
2665 allocators using new and malloc.
2666 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
2667 (__resource_adaptor_imp::do_deallocate): Likewise.
2668 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2669 Check that new and delete are called with expected sizes.
2670
2671 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2672
2673 PR libstdc++/86595
2674 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
2675 noexcept.
2676
2677 2018-07-20 Fangrui Song <maskray@google.com>
2678
2679 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
2680 _GLIBCXX_VISIBILITY(default).
2681
2682 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2683
2684 PR libstdc++/86603
2685 * include/std/version: Move __cpp_lib_list_remove_return_type macro.
2686
2687 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
2688
2689 * include/std/type_traits (__is_member_object_pointer_helper): Use
2690 __not_<is_function<_Tp>>::type instead of integral_constant.
2691 (__is_member_function_pointer_helper): Likewise for
2692 is_function<_Tp>::type.
2693 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
2694 (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
2695 (is_trivially_constructible): Remove redundant use of
2696 is_constructible.
2697 (__is_trivially_copy_assignable_impl): Remove redundant use of
2698 is_copy_assignable.
2699 (__is_trivially_move_assignable_impl): Remove redundant use of
2700 is_move_assignable.
2701 (is_trivially_destructible): Use __bool_constant.
2702 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
2703 tests for scalar types.
2704
2705 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
2706
2707 * include/bits/stl_algobase.h (__copy_move_a): Used
2708 __is_trivially_copyable.
2709 (__copy_move_backward_a): Likewise.
2710 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2711 New test.
2712
2713 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
2714
2715 PR libstdc++/86450
2716 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
2717 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
2718 * configure: Regenerate.
2719 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
2720 * doc/Makefile.in: Regenerate.
2721 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
2722 * include/Makefile.in: Regenerate.
2723 * libsupc++/Makefile.in: Regenerate.
2724 * po/Makefile.in: Regenerate.
2725 * python/Makefile.in: Regenerate.
2726 * src/Makefile.in: Regenerate.
2727 * src/c++11/Makefile.in: Regenerate.
2728 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
2729 from -Wabi=2 that don't affect exported symbols.
2730 * src/c++98/Makefile.in: Regenerate.
2731 * src/filesystem/Makefile.in: Regenerate.
2732 * testsuite/Makefile.in: Regenerate.
2733
2734 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
2735 (_Async_state_common::_M_join): Simplify use of std::call_once and
2736 corresponding explicit instantiation.
2737 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
2738 (__bind_simple): Remove definitions and explicit instantiation that
2739 are not required by exported symbols.
2740
2741 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
2742
2743 * scripts/create_testsuite_files: Fix typo in comment.
2744
2745 PR libstdc++/86537
2746 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
2747 non-standard partial specialization.
2748 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
2749 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
2750 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
2751
2752 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
2753
2754 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
2755 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
2756 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2757
2758 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
2759
2760 * include/debug/functions.h (__gnu_debug::__check_string): Move...
2761 * include/debug/string (__gnu_debug::__check_string): ... here.
2762 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
2763 (__glibcxx_check_string_n_constructor): New.
2764 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
2765 Use latter.
2766 (__glibcxx_check_string_constructor): New.
2767 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
2768 Use latter.
2769 * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
2770 * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
2771
2772 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
2773
2774 PR libstdc++/84928 use std::move in <numeric> algorithms
2775 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
2776 conditionally move, according to __cplusplus value.
2777 (accumulate, inner_product, partial_sum, adjacent_difference): Use
2778 _GLIBCXX_MOVE_IF_20.
2779 * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
2780 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
2781 * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
2782 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
2783
2784 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
2785
2786 P0935R0 Eradicating unnecessarily explicit default constructors
2787 * config/abi/pre/gnu.ver: Tighten existing patterns and export new
2788 default constructor symbols.
2789 * include/std/sstream (basic_stringbuf, basic_istringstream)
2790 (basic_ostringstream, basic_stringstream): Remove default arguments
2791 from explicit constructors taking ios_base::openmode and add separate
2792 non-explicit default constructors.
2793 * testsuite/27_io/basic_istringstream/cons/default.cc: New.
2794 * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
2795 * testsuite/27_io/basic_stringstream/cons/default.cc: New.
2796 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
2797 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
2798
2799 * include/std/variant (__accepted_index): Use void_t.
2800
2801 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
2802
2803 PR libstdc++/85831
2804 * config/abi/pre/gnu.ver: Export move constructors and move
2805 assignment operators for std::logic_error and std::runtime_error.
2806 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
2807 _GLIBCXX_USE_NOEXCEPT.
2808 (logic_error, runtime_error): Declare move constructors and move
2809 assignment operators. When not declared already, define copy
2810 constructors and copy assignment operators as explicit-defaulted.
2811 (domain_error, invalid_argument, length_error, out_of_range)
2812 (overflow_error, underflow_error): Define move constructors and move
2813 assignment operators as explicitly-defaulted.
2814 * libsupc++/exception.h (exception): Likewise.
2815 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
2816 move constructors and move assignment operators as defaulted.
2817 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
2818 assignment operators are defined.
2819
2820 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
2821 COW strings.
2822 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2823 Likewise.
2824 * testsuite/21_strings/basic_string/requirements/
2825 explicit_instantiation/debug.cc: Likewise.
2826
2827 PR libstdc++/58265
2828 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2829 (basic_string::assign(basic_string&&)): Add conditional noexcept
2830 depending on the allocator's is_always_equal property (LWG 2063).
2831 * testsuite/21_strings/basic_string/modifiers/assign/char/
2832 move_assign.cc: Check for non-throwing exception specification.
2833 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
2834 move_assign.cc: Likewise.
2835
2836 PR libstdc++/58265
2837 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2838 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
2839 Add GLIBCXX_NOEXCEPT.
2840 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
2841 to depend on the allocator's is_always_equal property (LWG 2063).
2842 (basic_string::swap(basic_string&)): Likewise.
2843 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
2844 (basic_string::swap(basic_string&)): Likewise.
2845 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2846 Check is_nothrow_move_assignable.
2847 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2848 Check is_nothrow_move_assignable.
2849 * testsuite/21_strings/basic_string/cons/char/
2850 noexcept_move_construct.cc: Likewise.
2851 * testsuite/21_strings/basic_string/cons/wchar_t/
2852 noexcept_move_construct.cc: Likewise.
2853
2854 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2855
2856 P0646R1 Improving the Return Value of Erase-Like Algorithms I
2857 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
2858 Define.
2859 (forward_list::__remove_return_type): Define typedef as size_type or
2860 void, according to __cplusplus value.
2861 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2862 empty, according to __cplusplus value.
2863 (forward_list::remove, forward_list::unique): Use typedef and macro
2864 to change return type and add abi-tag for C++2a.
2865 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
2866 typedef to change return type for C++2a.
2867 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
2868 (forward_list::remove, forward_list::remove_if<Pred>)
2869 (forward_list::unique<BinPred>): Return number of removed elements
2870 for C++2a.
2871 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
2872 (list::remove, list::unique, list::remove_if<Predicate>)
2873 (list::unique<BinaryPredicate>): Return number of removed elements
2874 for C++2a.
2875 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
2876 (list::__remove_return_type): Define typedef as size_type or
2877 void, according to __cplusplus value.
2878 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2879 empty, according to __cplusplus value.
2880 (list::remove, list::unique): Use typedef and macro to change return
2881 type and add abi-tag for C++2a.
2882 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
2883 typedef to change return type for C++2a.
2884 * include/std/version (__cpp_lib_list_remove_return_type): Define.
2885 * testsuite/23_containers/forward_list/operations/
2886 remove_cxx20_return.cc: New.
2887 * testsuite/23_containers/forward_list/operations/
2888 unique_cxx20_return.cc: New.
2889
2890 P0458R2 Checking for Existence of an Element in Associative Containers
2891 * include/bits/stl_map.h (map::contains): Add for C++2a.
2892 * include/bits/stl_multimap.h (multimap::contains): Likewise.
2893 * include/bits/stl_multiset.h (multiset::contains): Likewise.
2894 * include/bits/stl_set.h (set::contains): Likewise.
2895 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
2896 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
2897 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
2898 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
2899 * include/bits/unordered_map.h (unordered_map::contains)
2900 (unordered_multimap::contains): Add for C++2a.
2901 * include/bits/unordered_set.h (unordered_set::contains)
2902 (unordered_multiset::contains): Likewise.
2903 * testsuite/23_containers/map/operations/contains.cc: New.
2904 * testsuite/23_containers/multimap/operations/contains.cc: New.
2905 * testsuite/23_containers/multiset/operations/contains.cc: New.
2906 * testsuite/23_containers/set/operations/contains.cc: New.
2907 * testsuite/23_containers/unordered_map/operations/contains.cc: New.
2908 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2909 New.
2910 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2911 New.
2912 * testsuite/23_containers/unordered_set/operations/contains.cc: New.
2913
2914 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
2915
2916 PR libstdc++/86272
2917 * include/debug/string
2918 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
2919 Use __glibcxx_check_insert_range.
2920 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
2921 __gnu_debug::string when _GLIBCXX_DEBUG.
2922 * 21_strings/basic_string/init-list.cc: Likewise.
2923 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
2924 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
2925 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
2926 * 21_strings/basic_string/types/1.cc: Likewise.
2927
2928 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2929
2930 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
2931 target for std::random_device.
2932 * testsuite/26_numerics/random/random_device/cons/default.cc:
2933 Likewise.
2934 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
2935 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2936 * testsuite/experimental/random/randint.cc: Likewise.
2937 * testsuite/lib/libstdc++.exp
2938 (check_effective_target_random_device): New proc.
2939
2940 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2941 Jakub Jelinek <jakub@redhat.com>
2942
2943 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
2944
2945 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2946
2947 PR libstdc++/86398
2948 * include/std/type_traits (is_trivially_constructible): Check
2949 is_constructible before __is_trivially_constructible.
2950 * testsuite/20_util/is_trivially_constructible/value.cc: Add more
2951 tests, including negative cases.
2952 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
2953 zero for dg-error lineno.
2954 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2955 Likewise.
2956
2957 * include/std/bit (__rotl, __rotr): Avoid branch.
2958 (_If_is_unsigned_integer): Use remove_cv_t.
2959 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
2960
2961 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
2962
2963 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
2964 * include/Makefile.am: Add new header.
2965 * include/Makefile.in: Regenerate.
2966 * include/precompiled/stdc++.h: Include new header.
2967 * include/std/bit: New header.
2968 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
2969 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
2970 Define for C++14.
2971 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
2972 (countr_one, popcount): Define for C++2a. Also overload for std::byte.
2973 (ispow2, ceil2, floor2, log2p1): Define for C++2a.
2974 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
2975 std::byte.
2976 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
2977 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
2978 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
2979 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
2980 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
2981 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
2982 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
2983 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
2984 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
2985 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
2986
2987 * include/bits/alloc_traits.h: Remove redundant preprocessor
2988 condition.
2989
2990 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
2991
2992 * include/bits/stl_algobase.h (__niter_wrap): New.
2993 (__copy_move_a2(_II, _II, _OI)): Use latter.
2994 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
2995 (fill_n(_OI, _Size, const _Tp&)): Likewise.
2996 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
2997 * include/debug/stl_iterator.h
2998 (std::__niter_base(const __gnu_cxx::_Safe_iterator<
2999 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
3000 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
3001 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
3002
3003 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
3004
3005 P0758R1 Implicit conversion traits
3006 * include/std/type_traits [__cplusplus > 201703]
3007 (__is_convertible_helper::__is_nothrow_type): Define new member.
3008 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
3009 noexcept.
3010 (__is_convertible_helper<_From, _To, false>::__test_nothrow)
3011 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
3012 new members.
3013 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
3014 * testsuite/20_util/is_nothrow_convertible/value.cc: New.
3015 * testsuite/20_util/is_nothrow_convertible/requirements/
3016 explicit_instantiation.cc: New.
3017 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
3018 New.
3019
3020 P0887R1 The identity metafunction
3021 * include/std/type_traits (type_identity, type_identity_t): Define
3022 for C++2a.
3023 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
3024 * testsuite/20_util/type_identity/requirements/
3025 explicit_instantiation.cc:New.
3026 * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
3027
3028 * include/bits/regex.h (sub_match::operator string_type): Call str().
3029 (sub_match::compare): Use _M_str() instead of str().
3030 (sub_match::_M_compare): New public function.
3031 (sub_match::__string_view): New helper type.
3032 (sub_match::_M_str): New overloaded functions to avoid creating a
3033 string_type object when not needed.
3034 (operator==, operator!=, operator<, operator>, operator<=, operator>=):
3035 Use sub_match::_M_compare instead of creating string_type objects.
3036 Fix Doxygen comments.
3037 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
3038 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
3039 simplify.
3040 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
3041 __enable_if_t.
3042 * include/std/type_traits (__enable_if_t): Define for C++11.
3043 * testsuite/28_regex/sub_match/compare.cc: New.
3044 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
3045 trait.
3046 (input_iterator_wrapper): Use remove_cv for value_type argument of
3047 std::iterator base class.
3048
3049 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
3050
3051 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
3052 Add whitespace to dejagnu directive.
3053 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
3054
3055 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
3056
3057 * include/bits/stl_vector.h
3058 (struct _Vector_base<>::_Vector_impl_data): New.
3059 (struct _Vector_base<>::_Vector_impl): Inherit from latter.
3060 (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
3061 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
3062 (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
3063 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
3064 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
3065 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
3066 (_Vector_base()): Default.
3067 (_Vector_base(_Vector_base&&)): Default.
3068 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
3069 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
3070 (_Vector_base::_M_create_storage(size_t)): Make protected.
3071 (vector()): Default.
3072 (vector(vector&&)): Default.
3073 (vector(vector&&, const allocator_type&, true_type)): New.
3074 (vector(vector&&, const allocator_type&, false_type)): New.
3075 (vector(vector&&, const allocator_type&)): Use latters.
3076 (vector(_InputIte, _InputIte, const allocator_type&)): Call
3077 _M_range_initialize directly.
3078 * include/debug/vector
3079 (vector(vector&&, const allocator_type&)): Add noexcept qualification.
3080 * testsuite/23_containers/vector/allocator/default_init.cc: New.
3081 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
3082 static assertions.
3083
3084 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
3085
3086 * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
3087 (__is_byte<byte>): Define specialization for std::byte.
3088
3089 PR libstdc++/86138
3090 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
3091 Declare explicit instantiations of COW empty reps and I/O functions.
3092
3093 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
3094
3095 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
3096 directives.
3097 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
3098
3099 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
3100
3101 * include/bits/regex.tcc (regex_iterator::operator==): Add missing
3102 noexcept.
3103
3104 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
3105
3106 PR libstdc++/86112
3107 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
3108 Replace dict comprehension.
3109
3110 PR libstdc++/81092
3111 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3112
3113 PR libstdc++/86292
3114 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
3115 Add try-catch block.
3116 * testsuite/23_containers/vector/cons/86292.cc: New.
3117
3118 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
3119
3120 * include/experimental/algorithm (sample, shuffle): Add new overloads
3121 using per-thread random number engine.
3122 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
3123 dependencies by using __gnu_test::test_container.
3124 * testsuite/experimental/algorithm/sample-2.cc: New.
3125 * testsuite/experimental/algorithm/shuffle.cc: New.
3126
3127 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
3128
3129 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
3130 different size_t mangling on 32-bit targets.
3131
3132 PR libstdc++/86280
3133 * include/experimental/memory_resource
3134 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
3135 enough for result of left shift.
3136
3137 PR libstdc++/86138
3138 * include/bits/basic_string.tcc:
3139 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
3140 (basic_string<char>::_Rep::_S_empty_rep_storage)
3141 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
3142 instantiation declarations.
3143 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
3144 explicit instantiation declarations.
3145 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
3146 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
3147
3148 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
3149
3150 PR libstdc++/83328
3151 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
3152 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
3153 * configure: Regenerate.
3154 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3155 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
3156 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
3157 (basic_string::insert(iterator, initializer_list<C>)): Suppress
3158 definition.
3159 * include/debug/string (basic_string::insert(iterator, C)): Change
3160 first parameter to const_iterator.
3161 (basic_string::insert(iterator, size_type, C)): Likewise. Change
3162 return type to iterator.
3163 (basic_string::insert(iterator, InputIterator, InputIterator)):
3164 Likewise.
3165 (basic_string::insert(iterator, initializer_list<C>)): Change first
3166 parameter to const_iterator and return type to iterator.
3167 * src/c++11/string-inst.cc: Extend comment.
3168 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
3169 New.
3170 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
3171 New.
3172 * testsuite/util/testsuite_abi.cc: Add new symbol version.
3173
3174 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3175
3176 PR libstdc++/70940
3177 * include/experimental/memory_resource
3178 (__resource_adaptor_imp::do_deallocate): Add missing return.
3179 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
3180 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
3181 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
3182 __gnu_cxx::malloc_allocator.
3183
3184 PR libstdc++/70940
3185 * include/experimental/memory_resource (__resource_adaptor_common):
3186 New base class.
3187 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
3188 pointer from unaligned, and vice versa.
3189 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
3190 allocated pointer to meet alignment request.
3191 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
3192 original pointer for deallocation.
3193 (__resource_adaptor_imp::do_is_equal): Reformat.
3194 (__resource_adaptor_imp::_S_aligned_size): Remove.
3195 (__resource_adaptor_imp::_S_supported): Remove.
3196 (new_delete_resource): Use __gnu_cxx::new_allocator.
3197 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
3198 extended alignments and use debug_allocator to check for matching
3199 allocate/deallocate pairs.
3200
3201 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
3202
3203 * include/debug/safe_iterator.h
3204 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
3205 Compare __x base iterator with a value-initialized iterator of the
3206 same type.
3207
3208 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
3209
3210 PR libstdc++/70966
3211 * include/experimental/memory_resource (__resource_adaptor_imp): Add
3212 static assertions to enforce requirements on pointer types.
3213 (__resource_adaptor_imp::get_allocator()): Add noexcept.
3214 (new_delete_resource, null_memory_resource): Return address of an
3215 object with dynamic storage duration.
3216 (__null_memory_resource): Remove.
3217 * testsuite/experimental/memory_resource/70966.cc: New.
3218
3219 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
3220 missed from recent commit.
3221
3222 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
3223
3224 * include/std/utility: Remove unused <exception> header.
3225
3226 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
3227
3228 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
3229 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
3230 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
3231 a specialization of std::pair.
3232 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
3233 pair elements are constructed correctly.
3234
3235 LWG 2989 hide path iostream operators from normal lookup
3236 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
3237 friends.
3238 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
3239
3240 LWG 3050 Fix cv-qualification of convertibility constraints
3241 * include/std/chrono (duration, operator*, operator/, operator%): Use
3242 const-qualified type as source type in is_convertible constraints.
3243 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
3244 * testsuite/20_util/duration/cons/dr3050.cc: New.
3245 * testsuite/20_util/duration/literals/range.cc: Rename to...
3246 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
3247 dg-error lineno.
3248
3249 2018-06-18 Maya Rashish <coypu@sdf.org>
3250
3251 * crossconfig.m4: Handle OpenBSD just like NetBSD.
3252 * configure: Rebuilt.
3253
3254 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
3255
3256 P0754R2 <version> header
3257 * include/Makefile.am: Add new header.
3258 * include/Makefile.in: Regenerate.
3259 * include/bits/c++config: Change doxygen comment to suggest <version>
3260 instead of <iosfwd>.
3261 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
3262 unconditionally. Add C++17 and C++20 headers.
3263 * include/std/version: New header.
3264 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
3265 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
3266 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
3267 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
3268 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
3269 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
3270 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3271 New.
3272 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
3273 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
3274 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
3275 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
3276 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
3277 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
3278 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
3279 New.
3280 * testsuite/18_support/headers/version/macros.cc: New.
3281 * testsuite/18_support/headers/version/macros.cc: New.
3282
3283 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
3284 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
3285 symlink.
3286 * config.h.in: Regenerate.
3287 * configure: Regenerate.
3288 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
3289
3290 LWG 3035. std::allocator's constructors should be constexpr
3291 * include/bits/allocator.h (allocator): Add constexpr to constructors
3292 for C++2a. Replace dynamic exception specifications with NOTHROW
3293 macro.
3294 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
3295 NOTHROW.
3296 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
3297 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
3298 to constructors for C++2a.
3299 * include/ext/new_allocator.h (new_allocator): Likewise.
3300
3301 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
3302
3303 LWG 3076 basic_string CTAD ambiguity
3304 * doc/xml/manual/intro.xml: Document LWG 3076 change.
3305 * include/bits/basic_string.h
3306 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
3307 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
3308 template constrained by _RequireAllocator.
3309 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
3310 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
3311 Define.
3312 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
3313 deduction
3314 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3315 Likewise.
3316
3317 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
3318
3319 PR libstdc++/86169
3320 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3321 (basic_string::data()): Unshare string.
3322 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3323 New.
3324
3325 * include/std/string_view (basic_string_view(const CharT*)): Remove
3326 check for null pointer and add nonnull attribute.
3327 (compare(const CharT*), compare(size_type, size_type, const CharT*))
3328 (find(const CharT*, size_type), rfind(const CharT*, size_type))
3329 (find_first_of(const CharT*, size_type))
3330 (find_last_of(const CharT*, size_type))
3331 (find_first_not_of(const CharT*, size_type))
3332 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
3333 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
3334 * testsuite/21_strings/basic_string_view/operations/compare/char/
3335 nonnull.cc: New.
3336 * testsuite/21_strings/basic_string_view/operations/find/char/
3337 nonnull.cc: New.
3338 * testsuite/21_strings/basic_string_view/operations/rfind/char/
3339 nonnull.cc: New.
3340
3341 PR libstdc++/86168
3342 * include/bits/random.h (random_device(const string&)): Remove
3343 default argument.
3344
3345 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
3346 define for C++17 and above.
3347
3348 LWG 2993 reference_wrapper<T> conversion from T&&
3349 * doc/xml/manual/intro.xml: Document LWG 2993 change.
3350 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
3351 (reference_wrapper(_Tp&&)): Remove.
3352 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
3353 template.
3354 (reference_wrapper): Add deduction guide.
3355 * testsuite/20_util/reference_wrapper/deduction.cc: New.
3356 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
3357
3358 LWG 3039 Unnecessary decay in thread and packaged_task
3359 * include/std/future (__constrain_pkgdtask): Replace with ...
3360 (packaged_task::__not_same): New alias template, using
3361 __remove_cvref_t instead of decay.
3362 * include/std/thread (thread::__not_same): Add comment.
3363
3364 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
3365
3366 LWG 3075 basic_string needs deduction guides from basic_string_view
3367 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
3368 deduction from string views.
3369 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3370 Likewise.
3371
3372 LWG 3074 make scalar types non-deduced in valarray non-member functions
3373 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
3374 scalar parameters to be a non-deduced context.
3375 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
3376 whitespace.
3377 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
3378 * testsuite/26_numerics/valarray/transcend.cc: New.
3379
3380 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
3381 Move back to <utility>.
3382 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
3383 Restore to here.
3384
3385 P0935R0 Eradicating unnecessarily explicit default constructors
3386 * include/backward/strstream (strstreambuf): Add non-explicit default
3387 constructor.
3388 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
3389 Likewise.
3390 * include/bits/regex.h (match_results): Likewise.
3391 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
3392 default constructor.
3393 * testsuite/22_locale/conversions/string/1.cc: Likewise.
3394 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
3395 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
3396
3397 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
3398 macro from <utility> and change type to long.
3399 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
3400 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
3401 macro.
3402
3403 P0935R0 Eradicating unnecessarily explicit default constructors
3404 * include/bits/random.h (uniform_real_distribution::param_type)
3405 (normal_distribution::param_type, lognormal_distribution::param_type)
3406 (gamma_distribution::param_type, chi_squared_distribution::param_type)
3407 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
3408 (student_t_distribution::param_type)
3409 (bernoulli_distribution::param_type)
3410 (binomial_distribution::param_type)
3411 (geometric_distribution::param_type)
3412 (negative_binomial_distribution::param_type)
3413 (poisson_distribution::param_type)
3414 (exponential_distribution::param_type)
3415 (weibull_distribution::param_type)
3416 (extreme_value_distribution::param_type): Add non-explicit default
3417 constructors. Remove default argument for first parameter of explicit
3418 constructors.
3419 * include/bits/uniform_int_dist.h
3420 (uniform_int_distribution::param_type): Likewise.
3421 * include/ext/random
3422 (beta_distribution::param_type, rice_distribution::param_type)
3423 (nakagami_distribution::param_type, pareto_distribution::param_type)
3424 (k_distribution::param_type, arcsine_distribution::param_type)
3425 (hoyt_distribution::param_type, triangular_distribution::param_type)
3426 (von_mises_distribution::param_type)
3427 (hypergeometric_distribution::param_type)
3428 (logistic_distribution::param_type)
3429 (uniform_inside_sphere_distribution::param_type): Likewise.
3430 (uniform_on_sphere_distribution::param_type): Make default constructor
3431 non-explicit.
3432 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
3433 Test param_type for non-explicit default constructor.
3434 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
3435 Likewise.
3436 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
3437 Likewise.
3438 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
3439 Likewise.
3440 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
3441 Likewise.
3442 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
3443 Likewise.
3444 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
3445 Likewise.
3446 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
3447 Likewise.
3448 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
3449 Likewise.
3450 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
3451 Likewise.
3452 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
3453 Likewise.
3454 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
3455 Likewise.
3456 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
3457 Likewise.
3458 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
3459 Likewise.
3460 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
3461 Likewise.
3462 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
3463 Likewise.
3464 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
3465 Likewise.
3466 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
3467 Likewise.
3468 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
3469 Likewise.
3470 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
3471 Likewise.
3472 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
3473 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
3474 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
3475 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
3476 Likewise.
3477 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
3478 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
3479 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
3480 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
3481 Likewise.
3482 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
3483 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
3484 * testsuite/ext/random/triangular_distribution/cons/default.cc:
3485 Likewise.
3486 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
3487 Likewise.
3488 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
3489 Likewise.
3490 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
3491 Likewise.
3492
3493 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
3494 Jonathan Wakely <jwakely@redhat.com>
3495
3496 PR libstdc++/83982
3497 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
3498 Default-construct new elements before moving existing ones.
3499 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
3500 New.
3501
3502 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
3503
3504 PR libstdc++/86127
3505 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
3506 unused typedef.
3507 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
3508 Use node allocator to create and destroy elements.
3509 (forward_list::_Tp_alloc_type): Remove unused typedef.
3510 (forward_list::_Alloc_traits): Use allocator_traits instead of
3511 __gnu_cxx::__alloc_traits.
3512
3513 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
3514
3515 * include/debug/helper_functions.h
3516 (__gnu_debug::_Safe_iterator<>): Add declaration.
3517 (__can_advance(_Ite, _Size)): New.
3518 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
3519 * include/debug/functions.h
3520 (__gnu_debug::_Safe_iterator<>): Remove declaration.
3521 * include/debug/stl_iterator.h
3522 (__can_advance(const _Safe_iterator<>&)): New definition.
3523 * include/debug/stl_iterator.h
3524 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
3525 (__can_advance(const std::move_iterator<>&, _Size)): New.
3526 * include/debug/macros.h (__glibcxx_check_can_increment): New.
3527 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
3528 * include/bits/stl_algobase.h (fill_n): Use latter.
3529 * testsuite/25_algorithms/fill_n/2.cc: New.
3530 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
3531 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
3532 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
3533 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
3534
3535 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
3536 (__glibcxx_requires_can_decrement_range): New.
3537
3538 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
3539
3540 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
3541 (__glibcxx_check_can_decrement_range): New.
3542 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
3543 __glibcxx_requires_can_increment_range.
3544 (std::move(_II, _II, _OI)): Likewise.
3545 (std::copy_backward(_BI, _BI, _BI2)): Use
3546 __glibcxx_requires_can_decrement_range.
3547 (std::move_backward(_BI, _BI, _BI2)): Likewise.
3548 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
3549 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
3550 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
3551 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
3552 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
3553 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
3554
3555 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
3556
3557 P0935R0 Eradicating unnecessarily explicit default constructors
3558 * include/bits/random.h (linear_congruential_engine)
3559 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
3560 (uniform_real_distribution, normal_distribution)
3561 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
3562 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
3563 (bernoulli_distribution, binomial_distribution,geometric_distribution)
3564 (negative_binomial_distribution, exponential_distribution)
3565 (weibull_distribution, extreme_value_distribution): Add non-explicit
3566 default constructors. Remove default argument for first parameter of
3567 explicit constructors.
3568 (piecewise_constant_distribution, piecewise_linear_distribution):
3569 Make default constructor non-explicit.
3570 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
3571 non-explicit default constructors. Remove default argument for first
3572 parameter of explicit constructor.
3573 * include/ext/random
3574 (simd_fast_mersenne_twister_engine, beta_distribution)
3575 (rice_distribution, nakagami_distribution, pareto_distribution)
3576 (k_distribution, arcsine_distribution, hoyt_distribution)
3577 (triangular_distribution, von_mises_distribution)
3578 (hypergeometric_distribution, logistic_distribution)
3579 (uniform_inside_sphere_distribution): Likewise.
3580 (uniform_on_sphere_distribution): Make default constructor
3581 non-explicit.
3582 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
3583 Test for non-explicit default constructor. Fix references to standard.
3584 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
3585 Likewise.
3586 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
3587 Likewise.
3588 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
3589 Likewise.
3590 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
3591 Likewise.
3592 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
3593 Likewise.
3594 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
3595 Likewise.
3596 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
3597 Likewise.
3598 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
3599 Likewise.
3600 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
3601 Likewise.
3602 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
3603 Likewise.
3604 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
3605 Likewise.
3606 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
3607 Likewise.
3608 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
3609 Likewise.
3610 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
3611 Likewise.
3612 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
3613 Likewise.
3614 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
3615 Likewise.
3616 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
3617 Likewise.
3618 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
3619 Likewise.
3620 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
3621 Likewise.
3622 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
3623 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
3624 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
3625 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
3626 Likewise.
3627 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
3628 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
3629 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
3630 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
3631 Likewise.
3632 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
3633 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
3634 * testsuite/ext/random/triangular_distribution/cons/default.cc:
3635 Likewise.
3636 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
3637 Likewise.
3638 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
3639 Likewise.
3640 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
3641 Likewise.
3642 * testsuite/util/testsuite_common_types.h
3643 (implicitly_default_constructible): New helper.
3644
3645 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
3646
3647 * include/bits/ios_base.h (ios::Init::Init(const Init&))
3648 (ios::Init::operator=): Define as defaulted.
3649 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
3650 Likewise.
3651 * include/bits/stream_iterator.h (istream_iterator::operator=)
3652 (ostream_iterator::operator=): Likewise.
3653 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
3654 Likewise.
3655 * include/std/bitset (bitset::reference::reference(const reference&)):
3656 Likewise.
3657 * include/std/complex (complex<float>::complex(const complex&))
3658 (complex<double>::complex(const complex&))
3659 (complex<long double>::complex(const complex&)): Likewise.
3660
3661 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
3662
3663 * include/bits/regex.h (sub_match): Add noexcept to default
3664 constructor and length observer.
3665 (match_results): Add noexcept to default constructor and observers
3666 with no preconditions. Define destructor as defaulted.
3667 (operator==, operator!=, swap): Add noexcept.
3668 (regex_iterator): Add default member initializers and define default
3669 constructor and destructor as defaulted. Add noexcept to equality
3670 and dereference operators.
3671
3672 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
3673
3674 * src/c++11/debug.cc
3675 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
3676 (_Safe_iterator_base::_M_detach_single()): Likewise.
3677 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
3678 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
3679
3680 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3681
3682 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
3683 move of const value.
3684
3685 2018-06-06 Jakub Jelinek <jakub@redhat.com>
3686
3687 PR c++/86068
3688 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
3689 rather than __cpp_transactional_memory >= 201505L.
3690
3691 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3692
3693 PR libstdc++/86008
3694 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
3695 Define new partial specialization.
3696 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
3697 new overload.
3698 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
3699 value not reference for iteration.
3700 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
3701 comment.
3702 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
3703 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
3704 comment.
3705
3706 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
3707
3708 * include/std/type_traits: Fix comment typos.
3709
3710 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
3711 mingw* targets.
3712 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
3713 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3714 Likewise.
3715
3716 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
3717
3718 * include/bits/stl_tempbuf.h
3719 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
3720 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
3721 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
3722 * include/bits/stl_algo.h (__stable_partition): Adapt.
3723 (__inplace_merge): Adapt.
3724 (__stable_sort): Adapt.
3725
3726 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
3727
3728 PR libstdc++/85930
3729 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
3730 unconditionally. Remove redundant declaration.
3731 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
3732 alignment-specifier.
3733
3734 * include/bits/postypes.h (fpos): Define special members as defaulted.
3735
3736 PR libstdc++/85930
3737 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
3738 the static variable correctly.
3739
3740 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3741
3742 PR libstdc++/78870 support std::filesystem on Windows
3743 * config.h.in: Regenerate.
3744 * configure: Regenerate.
3745 * configure.ac: Check for link, readlink and symlink.
3746 * include/bits/fs_path.h (path::operator/=(const path&)): Move
3747 definition out of class body.
3748 (path::is_absolute(), path::_M_append(path)): Likewise.
3749 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
3750 (operator>>(basic_istream, path&)): Likewise.
3751 (u8path): Reorder definitions and fix Windows implementation.
3752 (path::is_absolute()): Define inline and fix for Windows.
3753 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3754 Define POSIX version inline.
3755 (path::_M_append(path)): Define inline.
3756 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
3757 definition out of class body.
3758 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
3759 escape characters.
3760 (operator>>(basic_istream, path&)): Likewise.
3761 (path::is_absolute()): Define inline and fix for Windows.
3762 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
3763 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
3764 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
3765 Define as adaptors for Windows functions/types or as
3766 using-declarations for POSIX functions/types.
3767 (_Dir_base, get_file_type): Qualify names to use declarations from
3768 __gnu_posix namespace.
3769 (_Dir_base::is_dor_or_dotdot): New helper functions.
3770 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
3771 names to use declarations from __gnu_posix namespace.
3772 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
3773 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
3774 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
3775 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
3776 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
3777 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
3778 Define as adaptors for Windows functions/types or as
3779 using-declarations for POSIX functions/types.
3780 (stat_type, do_copy_file): Qualify names to use declarations from
3781 __gnu_posix namespace.
3782 (do_space): Declare new function.
3783 (make_file_type): Only use S_ISLNK if defined.
3784 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
3785 path::value_type not char.
3786 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3787 names to use declarations from __gnu_posix namespace.
3788 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3789 add implementation for Windows.
3790 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3791 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3792 [!_PC_PATH_MAX]: Don't use pathconf.
3793 [PATH_MAX]: Use if defined.
3794 (filesystem::current_path(const path&, error_code&))
3795 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3796 (filesystem::last_write_time, filesystem::permissions): Use names
3797 from __gnu_posix.
3798 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3799 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3800 implementation for Windows.
3801 (filesystem::rename, filesystem::resize_file): Use names from
3802 __gnu_posix.
3803 (filesystem::space): Use do_space.
3804 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
3805 (filesystem::status, filesystem::symlink_status): Use names from
3806 __gnu_posix.
3807 (filesystem::temp_directory_path): Add implementation for Windows.
3808 * src/filesystem/path.cc (dot): Define constant.
3809 (path::replace_extension): Use dot.
3810 (path::_M_find_extension): Likewise. Use path::string_type not
3811 std::string.
3812 (path::_M_split_cmpts): Use dot.
3813 (filesystem_error::_M_get_what): Use u8string() not native().
3814 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
3815 Qualify names to use declarations from __gnu_posix namespace.
3816 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
3817 correct error_code.
3818 (filesystem::absolute(const path&, error_code&)): Add implementation
3819 for Windows.
3820 (char_ptr, filesystem::canonical): Use path::value_type not char.
3821 (do_copy_file): Use names from __gnu_posix.
3822 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
3823 sendfile.
3824 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3825 names to use declarations from __gnu_posix namespace.
3826 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3827 add implementation for Windows.
3828 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3829 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3830 [!_PC_PATH_MAX]: Don't use pathconf.
3831 [PATH_MAX]: Use if defined.
3832 (filesystem::current_path(const path&, error_code&))
3833 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3834 (filesystem::last_write_time, filesystem::permissions): Use names
3835 from __gnu_posix.
3836 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3837 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3838 implementation for Windows.
3839 (filesystem::rename, filesystem::resize_file): Use names from
3840 __gnu_posix.
3841 (do_space): Define.
3842 (filesystem::space): Use do_space.
3843 (filesystem::status, filesystem::symlink_status): Use names from
3844 __gnu_posix.
3845 (filesystem::temp_directory_path): Add implementation for Windows.
3846 * src/filesystem/std-path.cc
3847 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3848 Define for Windows.
3849 (dot): Define constant.
3850 (path::replace_extension, is_dot): Use dot.
3851 (path::lexically_normal): Check _M_type instead of calling
3852 non-existent function.
3853 (path::_M_find_extension): Use dot. Use path::string_type not
3854 std::string.
3855 (path::_M_split_cmpts): Use dot.
3856 (filesystem_error::_M_get_what): Use u8string() not native().
3857 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
3858 use symlinks.
3859 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3860 Likewise.
3861 * testsuite/27_io/filesystem/operations/absolute.cc: Use
3862 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
3863 * testsuite/27_io/filesystem/operations/canonical.cc: Use
3864 path::string() to get narrow string, not path::native().
3865 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
3866 with std::filesystem::path not std::basic_string.
3867 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3868 * testsuite/27_io/filesystem/operations/exists.cc: Use
3869 __gnu_test::root_path() instead of "/".
3870 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
3871 fstreams with std::filesystem::path not std::basic_string.
3872 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
3873 path::string() to get narrow string.
3874 * testsuite/27_io/filesystem/operations/space.cc: Check results for
3875 errors, expect sensible values otherwise.
3876 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
3877 helpers for adjusting the environment on Windows.
3878 * testsuite/27_io/filesystem/path/append/path.cc: Test
3879 Windows-specific behaviour.
3880 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
3881 of path::string_type objects.
3882 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
3883 string to wide string on Windows.
3884 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
3885 for backslash as root-directory.
3886 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
3887 path::string() to get narrow string.
3888 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
3889 paths.
3890 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
3891 not std::string.
3892 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
3893 different definintion of absolute paths on Windows.
3894 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3895 Do not use symlinks.
3896 * testsuite/experimental/filesystem/operations/absolute.cc: Test
3897 Windows behaviour.
3898 * testsuite/experimental/filesystem/operations/copy.cc: Construct
3899 fstreams with NTCTS not std::basic_string.
3900 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
3901 * testsuite/experimental/filesystem/operations/exists.cc: Use
3902 __gnu_test::root_path() instead of "/".
3903 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
3904 fstreams with NTCTS not std::basic_string.
3905 * testsuite/experimental/filesystem/operations/last_write_time.cc:
3906 Use path::string() to get narrow string.
3907 * testsuite/experimental/filesystem/operations/space.cc: Use
3908 __gnu_test::root_path() instead of "/".
3909 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3910 Add helpers for adjusting the environment on Windows.
3911 * testsuite/experimental/filesystem/path/append/path.cc: Use
3912 path::string() to get narrow strings for comparisons.
3913 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
3914 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
3915 Likewise.
3916 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
3917 * testsuite/experimental/filesystem/path/native/string.cc: Use
3918 string_type not std::string.
3919 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
3920 Adjust for different definintion of absolute paths on Windows.
3921 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
3922 function.
3923 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
3924 std::basic_string.
3925
3926 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
3927
3928 PR libstdc++/85951
3929 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
3930 uint_least16_t and uint_least32_t.
3931 (__make_unsigned<wchar_t>): Define unconditionally.
3932 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
3933 typedefs.
3934 (__make_unsigned_selector_base): New type to provide helper templates.
3935 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
3936 __make_unsigned_selector_base helpers.
3937 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
3938 (__make_signed_selector<_Tp, true, false>): Remove intermediate
3939 typedefs.
3940 (__make_signed<wchar_t>, __make_signed<char16_t>)
3941 (__make_signed<char32_t>)): Define unconditionally.
3942 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
3943 wchar_t, char16_t and char32_t are transformed correctly.
3944 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
3945 dg-error lineno.
3946 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
3947 wchar_t, char16_t and char32_t are transformed correctly.
3948 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
3949 dg-error lineno.
3950
3951 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
3952
3953 * include/std/variant (__erased_dtor): Qualify call to __get.
3954
3955 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
3956
3957 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
3958 (_Rb_tree(const allocator_type&)): Use latter.
3959 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
3960 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
3961 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3962 * include/bits/stl_multimap.h
3963 (multimap(const allocator_type&)): Likewise.
3964 (multimap(initializer_list<value_type>, const allocator_type&)):
3965 Likewise.
3966 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
3967 Likewise.
3968 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
3969 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
3970 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3971 * include/bits/stl_multiset.h
3972 (multiset(const allocator_type&)): Likewise.
3973 (multiset(initializer_list<value_type>, const allocator_type&)):
3974 Likewise.
3975 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
3976 Likewise.
3977
3978 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
3979
3980 PR libstdc++/85768
3981 * src/c++11/debug.cc: Remove backtrace usage.
3982
3983 2018-05-24 Maya Rashish <coypu@sdf.org>
3984
3985 PR target/85904
3986 * crossconfig.m4: Test for aligned_alloc on netbsd.
3987 * configure: Regenerate.
3988
3989 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3990
3991 PR libstdc++/69769
3992 PR libstdc++/85886
3993 * include/bits/atomic_base.h (__atomic_base::value_type)
3994 (__atomic_base::difference_type): Add new typedefs.
3995 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
3996 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
3997 (atomic<T*>::operator++, atomic<T*>::operator--)
3998 (atomic<T*>::operator+=, atomic<T*>::operator-=)
3999 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
4000 to enforce C++17 requirement on pointer arithmetic.
4001 (__atomic_val_t, __atomic_diff_t): New alias templates.
4002 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
4003 (atomic_compare_exchange_weak_explicit)
4004 (atomic_compare_exchange_strong_explicit, atomic_store)
4005 (atomic_exchange, atomic_compare_exchange_weak)
4006 (atomic_compare_exchange_strong): Use __atomic_val_t to make
4007 scalar parameters be non-deduced contexts.
4008 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
4009 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
4010 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
4011 parameters.
4012 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
4013 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
4014 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
4015 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
4016 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
4017 address types.
4018 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
4019 * testsuite/29_atomics/atomic/69769.cc: New test.
4020 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
4021 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
4022 Disable test for C++17 and later.
4023 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
4024 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
4025 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
4026 test.
4027
4028 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
4029
4030 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
4031 template to alias template.
4032 (path::__value_type_is_char): Use remove_const_t.
4033 (path:_S_string_from_iter): New helper function.
4034 (path::_S_convert(InputIter, __null_terminated))
4035 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
4036 Use _S_string_from_iter.
4037 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
4038 rep for COW strings.
4039 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
4040 Change from class template to alias template.
4041 (path::__value_type_is_char): Use remove_const.
4042 (path:_S_string_from_iter): New helper function.
4043 (path::_S_convert(InputIter, __null_terminated))
4044 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
4045 Use _S_string_from_iter.
4046 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
4047 wide strings.
4048 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
4049 string equality, not path equivalence.
4050 * testsuite/27_io/filesystem/path/construct/format.cc: Check
4051 construction from std::string and std::wstring and input iterators.
4052 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
4053 construction from iterators.
4054 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
4055 exact string equality, not path equivalence.
4056 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
4057 construction from iterators.
4058
4059 * include/bits/fs_path.h (path::_M_type): Change default member
4060 initializer to _Filename.
4061 (path::begin): Create past-the-end iterator for empty path.
4062 * src/filesystem/std-path.cc (path::remove_filename()): Remove
4063 debugging check.
4064 (path::has_relative_path()): Return false for empty filenames.
4065 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
4066 Fix offset of empty final component.
4067 * testsuite/27_io/filesystem/path/itr/components.cc: New.
4068 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
4069
4070 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
4071
4072 Add support for opening file streams from wide character strings.
4073 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
4074 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
4075 Define new overload.
4076 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
4077 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
4078 Declare new overload.
4079 * configure.ac: Check for _wfopen.
4080 * crossconfig.m4: Likewise.
4081 * configure: Regenerate.
4082 * config.h.in: Regenerate.
4083 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
4084 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
4085 Define new overload.
4086 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
4087 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
4088 Declare new overload.
4089 [_GLIBCXX_HAVE__WFOPEN]
4090 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4091 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
4092 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4093 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
4094 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
4095 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
4096 new overloads.
4097 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
4098 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
4099 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
4100 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
4101 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
4102 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
4103 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
4104
4105 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
4106
4107 PR libstdc++/85845
4108 * include/bits/stl_tree.h
4109 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
4110 qualification.
4111
4112 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
4113
4114 * src/filesystem/std-ops.cc (absolute): Report an error for empty
4115 paths.
4116 (weakly_canonical(const path&)): Do not call canonical on empty path.
4117 (weakly_canonical(const path&, error_code&)): Likewise.
4118 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
4119
4120 PR libstdc++/85818
4121 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
4122 dg-require-filesystem-ts.
4123
4124 PR libstdc++/85843
4125 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
4126 initialize base class to avoid warnings.
4127
4128 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
4129
4130 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
4131 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
4132 little_endian element in bitmask.
4133 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
4134 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
4135
4136 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
4137
4138 * include/bits/stl_tree.h
4139 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
4140 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
4141 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
4142 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
4143 * include/debug/map.h
4144 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
4145 * include/debug/multimap.h
4146 (multimap(multimap&&, const_allocator_type&)): Likewise.
4147 * include/debug/set.h
4148 (set(set&&, const_allocator_type&)): Likewise.
4149 * include/debug/multiset.h
4150 (multiset(multiset&&, const_allocator_type&)): Likewise.
4151 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
4152 Add checks.
4153 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
4154 Add checks.
4155 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
4156 Add checks.
4157 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
4158 Add checks.
4159 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
4160 Add checks.
4161 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
4162 Add checks.
4163 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
4164 Add checks.
4165 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
4166 Add checks.
4167
4168 2018-05-18 Jason Merrill <jason@redhat.com>
4169
4170 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
4171 for conversion to const_iterator. Add defaulted copy ops.
4172 * libsupc++/new (bad_alloc): Add defaulted copy ops.
4173 * libsupc++/exception.h (exception): Add defaulted copy ops.
4174 * include/std/system_error (system_error): Add defaulted copy ops.
4175 * include/std/stdexcept (domain_error, invalid_argument)
4176 (length_error, out_of_range, range_error, overflow_error)
4177 (underflow_error): Add defaulted copy ops.
4178 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
4179 copy assignment.
4180 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
4181 * include/ext/throw_allocator.h (condition_base): Add defaulted
4182 default and copy ctor and copy assignment.
4183
4184 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
4185
4186 PR libstdc++/85098
4187 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
4188 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
4189 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
4190 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
4191 definitions.
4192 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
4193 whitespace.
4194 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
4195 braces around body of do-while.
4196 * testsuite/28_regex/basic_regex/85098.cc: New
4197
4198 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
4199
4200 PR libstdc++/85818
4201 * src/filesystem/path.cc (path::preferred_separator): Add used
4202 attribute.
4203 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
4204
4205 PR libstdc++/85812
4206 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
4207 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
4208 Refactor to separate non-throwing and throwing implementations.
4209 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
4210 if constructing the object throws.
4211
4212 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
4213
4214 PR libstdc++/85749
4215 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
4216 (linear_congruential_engine, mersenne_twister_engine)
4217 (subtract_with_carry_engine, discard_block_engine)
4218 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
4219 constrain function templates taking seed sequences.
4220 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
4221 (mersenne_twister_engine::seed(_Sseq&))
4222 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
4223 match declarations.
4224 * include/ext/random (simd_fast_mersenne_twister_engine): Use
4225 __is_seed_seq to constrain function templates taking seed sequences.
4226 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
4227 Change return type to match declaration.
4228 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
4229 New.
4230 * testsuite/26_numerics/random/independent_bits_engine/cons/
4231 seed_seq2.cc: New.
4232 * testsuite/26_numerics/random/linear_congruential_engine/cons/
4233 seed_seq2.cc: New.
4234 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
4235 seed_seq2.cc: New.
4236 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
4237 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
4238 New.
4239 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
4240 seed_seq2.cc: New.
4241 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
4242 seed_seq2.cc: New.
4243
4244 PR libstdc++/83891
4245 * include/bits/fs_path.h (path::is_absolute()): Use same definition
4246 for all operating systems.
4247 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
4248 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
4249 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
4250 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
4251
4252 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
4253 unused <vector> header.
4254 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4255 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
4256 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
4257 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
4258 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4259 Likewise.
4260 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4261 Likewise.
4262 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
4263 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
4264 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4265 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
4266 * testsuite/experimental/filesystem/path/decompose/extension.cc:
4267 Likewise.
4268 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
4269 * testsuite/experimental/filesystem/path/query/has_extension.cc:
4270 Likewise.
4271 * testsuite/experimental/filesystem/path/query/has_filename.cc:
4272 Likewise.
4273 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
4274 Likewise.
4275 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
4276 Likewise.
4277 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
4278 Likewise.
4279 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
4280 Likewise.
4281 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
4282 Likewise.
4283 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
4284 * testsuite/experimental/filesystem/path/query/is_relative.cc:
4285 Likewise.
4286
4287 PR libstdc++/84159
4288 * include/bits/fs_path.h (path::operator/=, path::append): Construct
4289 temporary path before calling _M_append.
4290 (path::_M_append): Change parameter to path and implement C++17
4291 semantics.
4292 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
4293 and more examples from the standard.
4294 * testsuite/27_io/filesystem/path/append/source.cc: New.
4295 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
4296 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
4297
4298 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
4299 __invoke to prevent ADL.
4300
4301 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
4302
4303 PR libstdc++/81256
4304 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
4305 exceptions from _M_terminate_output().
4306 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
4307 exceptions from close().
4308 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
4309
4310 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
4311 (__valarray_get_storage): Call operator new directly. Remove ignored
4312 top-level restrict qualifier and add malloc attribute instead.
4313 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
4314
4315 PR libstdc++/67554
4316 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
4317 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
4318
4319 PR libstdc++/82966
4320 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
4321 instead of type.
4322 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
4323
4324 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
4325
4326 PR libstdc++/80165
4327 * testsuite/20_util/variant/80165.cc: New.
4328
4329 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
4330
4331 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
4332 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
4333 of C++11 containers with Debug Mode support.
4334 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
4335 * doc/html/*: Regenerate.
4336
4337 2018-05-10 Jason Merrill <jason@redhat.com>
4338
4339 * include/bits/regex_compiler.h (_S_cache_size): Change from
4340 function to variable.
4341
4342 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
4343
4344 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
4345 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
4346 argument defaulted to +1. Doxy comments on same.
4347 * testsuite/special_functions/02_assoc_legendre/
4348 check_value.cc: Regen.
4349 * testsuite/tr1/5_numerical_facilities/special_functions/
4350 02_assoc_legendre/check_value.cc: Regen.
4351
4352 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
4353
4354 PR libstdc++/85729
4355 * include/bits/c++config.h (__replacement_assert): Add linkage
4356 specification.
4357 * include/bits/std_abs.h: Add comment to closing brace of block.
4358 * include/c_global/cstddef: Add linkage specification.
4359 * include/c_global/cstring: Likewise.
4360 * include/c_global/cwchar: Likewise.
4361
4362 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
4363
4364 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
4365 Rename in...
4366 (_Safe_iterator<>::_S_constant()): ...that.
4367 * include/debug/safe_local_iterator.h
4368 (_Safe_local_iterator<>::_M_constant()): Rename in...
4369 (_Safe_local_iterator<>::_S_constant()): ...that.
4370 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
4371 (_Iterator_state::__rbegin): New.
4372 (_Iterator_state::__rmiddle): New.
4373 (_Iterator_state::__rend): New.
4374 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
4375 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
4376 iterator type.
4377 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
4378 _Is_iterator)): Likewise.
4379 (_Parameter::_S_reverse_state(_Iterator_state)): New.
4380 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
4381 _Is_iterator)): New.
4382 (_Parameter(std::reverse_iterator<> const&, const char*,
4383 _Is_iterator)): New.
4384 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
4385 const char*, _Is_iterator)): New.
4386 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
4387 New.
4388 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
4389 _Is_iterator)): New.
4390 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
4391 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
4392 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
4393
4394 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
4395
4396 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
4397 Use constexpr if in C++17 mode.
4398 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
4399 Copy from const object.
4400 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
4401
4402 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
4403
4404 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
4405 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
4406 backtrace.
4407
4408 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
4409 * include/debug/functions.h (__check_valid_range): Use latter.
4410 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
4411 use latter.
4412 * include/debug/deque
4413 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
4414 * include/debug/forward_list
4415 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
4416 Likewise.
4417 * include/debug/list
4418 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4419 * include/debug/list
4420 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4421 * include/debug/map.h
4422 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4423 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
4424 Likewise.
4425 * include/debug/multimap.h
4426 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4427 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
4428 const _Alloc&)): Likewise.
4429 * include/debug/set.h
4430 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4431 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
4432 Likewise.
4433 * include/debug/multiset.h
4434 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
4435 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
4436 const _Alloc&)): Likewise.
4437 * include/debug/string
4438 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
4439 Likewise.
4440 * include/debug/unordered_map
4441 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
4442 Likewise.
4443 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
4444 const _Alloc&)): Likewise.
4445 * include/debug/unordered_set
4446 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
4447 Likewise.
4448 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
4449 const _Alloc&)): Likewise.
4450 * include/debug/vector
4451 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
4452
4453 * include/debug/formatter.h (_Error_formatter::_M_function): New.
4454 (_Error_formatter(const char*, unsigned int)): Adapt.
4455 (_Error_formatter::_M_at): Rename in...
4456 (_Error_formatter::_S_at): ...that and adapt.
4457 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
4458 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
4459 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
4460 when available.
4461
4462 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
4463
4464 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
4465 Use normal std::vector even in Debug Mode.
4466
4467 PR libstdc++/85672
4468 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
4469 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
4470 * include/Makefile.in: Regenerate.
4471 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
4472 within conditional block.
4473
4474 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
4475
4476 * doc/xml/manual/using.xml (table.cmd_options): Document that the
4477 C++17 Filesystem implementation also needs -lstdc++fs.
4478
4479 PR libstdc++/85671
4480 * include/bits/fs_path.h (operator/): Permit copy elision.
4481 * include/experimental/bits/fs_path.h (operator/): Likewise.
4482
4483 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
4484
4485 Moar PR libstdc++/80506
4486 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
4487 Fix magic number used in loop condition.
4488
4489 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
4490
4491 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
4492 * include/std/optional (_Optional_payload): Add noexcept to default
4493 constructor. Re-indent.
4494 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
4495 constructor for copying disengaged payloads.
4496 (_Optional_payload<_Tp, true, false, true>): Likewise.
4497 (_Optional_payload<_Tp, true, true, false>): Likewise.
4498 (_Optional_payload<_Tp, true, false, false>): Likewise.
4499 * testsuite/20_util/optional/cons/85642.cc: New.
4500 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
4501
4502 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
4503
4504 PR libstdc++/82644
4505 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
4506 inline definitions instead of using-declarations.
4507 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
4508 * testsuite/tr1/5_numerical_facilities/special_functions/
4509 07_conf_hyperg/compile_cxx17.cc: New.
4510 * testsuite/tr1/5_numerical_facilities/special_functions/
4511 17_hyperg/compile_cxx17.cc: New.
4512
4513 PR libstdc++/84769
4514 * include/std/variant (visit): Qualify std::get call.
4515
4516 PR libstdc++/85632 use uintmax_t for arithmetic
4517 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
4518 arithmetic in result type.
4519 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
4520 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
4521 is greater than free space.
4522 * testsuite/experimental/filesystem/operations/space.cc: New.
4523
4524 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
4525 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
4526 New.
4527 * testsuite/20_util/remove_cvref/value.cc: New.
4528 * testsuite/20_util/remove_cvref/value_ext.cc: New.
4529
4530 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
4531 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
4532 (append(const basic_string&, size_type, size_type)
4533 (assign(const basic_string&, size_type, size_type)
4534 (insert(size_type, const basic_string&, size_type, size_type)
4535 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4536 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4537 Add default arguments (LWG 2268).
4538 [_GLIBCXX_USE_CXX11_ABI=0]
4539 (append(const basic_string&, size_type, size_type)
4540 (assign(const basic_string&, size_type, size_type)
4541 (insert(size_type, const basic_string&, size_type, size_type)
4542 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4543 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4544 Likewise.
4545 * testsuite/21_strings/basic_string/dr2268.cc: New test.
4546
4547 PR libstdc++/84535
4548 * include/std/thread (thread::__not_same): New SFINAE helper.
4549 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
4550 first argument is not a std::thread. Add static assertion to check
4551 INVOKE expression is valid.
4552 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
4553 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
4554 __invoke_result for return types and remove exception specifications.
4555 * testsuite/30_threads/thread/cons/84535.cc: New.
4556
4557 * include/std/future (__async_result_of): Use __invoke_result instead
4558 of result_of.
4559
4560 * include/std/any (any_cast): Use __remove_cvref_t.
4561 * include/std/tuple (__make_tuple): Likewise.
4562 * include/std/type_traits (__remove_cvref_t): Define.
4563 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
4564 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
4565 * include/std/variant (__erased_hash): Use __remove_cvref_t.
4566
4567 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
4568
4569 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
4570 ensure overloaded comma not used.
4571 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
4572 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
4573 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
4574 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
4575 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
4576 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
4577 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
4578
4579 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
4580
4581 PR libstdc++/68197
4582 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
4583 indices to unsigned.
4584 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
4585 as failure. Refactor error handling.
4586 * testsuite/27_io/ios_base/storage/68197.cc: New.
4587
4588 PR libstdc++/57997
4589 PR libstdc++/83860
4590 * include/bits/gslice_array.h (gslice_array): Define default
4591 constructor as deleted, as per C++11 standard.
4592 * include/bits/mask_array.h (mask_array): Likewise.
4593 * include/bits/slice_array.h (slice_array): Likewise.
4594 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
4595 to namespace __detail.
4596 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
4597 members.
4598 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
4599 of data members in closure objects.
4600 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
4601 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
4602 __detail.
4603 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
4604 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
4605 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
4606 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
4607 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
4608 using-declarations to namespace std.
4609 * testsuite/26_numerics/valarray/83860.cc: New.
4610
4611 * testsuite/backward/strstream_move.cc: Remove duplicate function
4612 call.
4613
4614 PR libstdc++/69608
4615 * include/backward/strstream (strstreambuf): Define move constructor
4616 and move assignment operator.
4617 (istrstream, ostrstream, strstream): Likewise.
4618 * testsuite/backward/strstream_move.cc: New.
4619
4620 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
4621
4622 PR libstdc++/84654
4623 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
4624 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
4625 * configure: Regenerate.
4626 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
4627 based on ENABLE_FLOAT128.
4628 * include/Makefile.in: Regenerate.
4629 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
4630 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
4631 _GLIBCXX_USE_FLOAT128.
4632
4633 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
4634
4635 * configure: Regenerated.
4636
4637 2018-04-19 Jakub Jelinek <jakub@redhat.com>
4638
4639 * configure: Regenerated.
4640
4641 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4642 Jakub Jelinek <jakub@redhat.com>
4643
4644 PR libstdc++/85442
4645 * src/c++11/Makefile.am: Don't generate debuginfo again for
4646 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
4647 * src/c++11/Makefile.in: Regenerate.
4648
4649 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4650
4651 PR libstdc++/84442
4652 * testsuite/30_threads/thread/cons/terminate.cc
4653 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
4654
4655 2018-04-18 David Malcolm <dmalcolm@redhat.com>
4656
4657 PR jit/85384
4658 * configure: Regenerate.
4659
4660 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
4661
4662 * testsuite/experimental/filesystem/file_status/1.cc: Add
4663 -DUSE_FILESYSTEM_TS to dg-options.
4664 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4665 Likewise.
4666 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
4667 * testsuite/experimental/filesystem/iterators/
4668 recursive_directory_iterator.cc: Likewise.
4669 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
4670 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
4671 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
4672 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
4673 * testsuite/experimental/filesystem/operations/create_directories.cc:
4674 Likewise.
4675 * testsuite/experimental/filesystem/operations/create_directory.cc:
4676 Likewise.
4677 * testsuite/experimental/filesystem/operations/create_symlink.cc:
4678 Likewise.
4679 * testsuite/experimental/filesystem/operations/current_path.cc:
4680 Likewise.
4681 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
4682 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
4683 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
4684 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
4685 * testsuite/experimental/filesystem/operations/last_write_time.cc:
4686 Likewise.
4687 * testsuite/experimental/filesystem/operations/permissions.cc:
4688 Likewise.
4689 * testsuite/experimental/filesystem/operations/read_symlink.cc:
4690 Likewise.
4691 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
4692 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
4693 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
4694 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
4695 Likewise.
4696 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
4697 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
4698 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
4699 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
4700 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
4701 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
4702 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
4703 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
4704 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
4705 * testsuite/experimental/filesystem/path/construct/default.cc:
4706 Likewise.
4707 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
4708 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
4709 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4710 Likewise.
4711 * testsuite/experimental/filesystem/path/decompose/extension.cc:
4712 Likewise.
4713 * testsuite/experimental/filesystem/path/decompose/filename.cc:
4714 Likewise.
4715 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
4716 Likewise.
4717 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
4718 Likewise.
4719 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
4720 Likewise.
4721 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
4722 Likewise.
4723 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
4724 Likewise.
4725 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
4726 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
4727 Likewise.
4728 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
4729 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
4730 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
4731 Likewise.
4732 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
4733 Likewise.
4734 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
4735 Likewise.
4736 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
4737 Likewise.
4738 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
4739 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
4740 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
4741 Likewise.
4742 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
4743 * testsuite/experimental/filesystem/path/query/has_extension.cc:
4744 Likewise.
4745 * testsuite/experimental/filesystem/path/query/has_filename.cc:
4746 Likewise.
4747 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
4748 Likewise.
4749 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
4750 Likewise.
4751 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
4752 Likewise.
4753 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
4754 Likewise.
4755 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
4756 Likewise.
4757 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
4758 * testsuite/experimental/filesystem/path/query/is_relative.cc:
4759 Likewise.
4760
4761 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
4762
4763 * src/c++11/Makefile.am: Fix sed command.
4764 * src/c++11/Makefile.in: Regenerate.
4765
4766 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
4767 handle mangled names starting with double underscores on darwin.
4768 * src/c++11/Makefile.in: Regenerate.
4769
4770 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
4771
4772 * src/c++11/Makefile.am: Fix comment.
4773 * src/c++11/Makefile.in: Regenerate.
4774 * src/c++11/cxx11-ios_failure.cc: Fix comment.
4775 * src/c++98/ios_failure.cc: Likewise.
4776
4777 * src/c++11/ios.cc: Remove redundant macro definition.
4778
4779 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
4780
4781 * doc/xml/manual/abi.xml: Document header locations in recent
4782 releases.
4783 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
4784 * doc/xml/manual/spine.xml: Update copyright years.
4785 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
4786 undefined behaviour.
4787 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
4788 * doc/html/*: Regenerate.
4789
4790 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
4791
4792 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
4793 * doc/xml/manual/backwards_compatibility.xml: Likewise.
4794 * doc/xml/manual/containers.xml: Likewise.
4795 * doc/xml/manual/debug_mode.xml: Likewise.
4796 * doc/xml/manual/extensions.xml: Likewise.
4797 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
4798 * doc/xml/manual/using.xml: Likewise.
4799 * doc/xml/manual/utilities.xml: Likewise.
4800
4801 PR libstdc++/85222
4802 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
4803 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
4804 * src/c++11/Makefile.in: Regenerate.
4805 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
4806 New types.
4807 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4808 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
4809 * src/c++98/ios_failure.cc (__construct_ios_failure)
4810 (__destroy_ios_failure, is_ios_failure_handler): New functions.
4811 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4812 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
4813 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
4814 handler types, to always catch std::ios_base::failure.
4815 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
4816 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
4817 exceptions_failbit.cc: Likewise.
4818 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
4819 exceptions_failbit.cc: Likewise.
4820 * testsuite/27_io/basic_istream/extractors_other/char/
4821 exceptions_null.cc: Likewise.
4822 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
4823 exceptions_null.cc: Likewise.
4824 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
4825 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
4826 * testsuite/27_io/basic_ostream/inserters_other/char/
4827 exceptions_null.cc: Likewise.
4828 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
4829 exceptions_null.cc: Likewise.
4830 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
4831
4832 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
4833
4834 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
4835 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
4836
4837 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
4838
4839 PR libstdc++/85183
4840 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
4841 value categories.
4842 * testsuite/20_util/variant/85183.cc: New.
4843
4844 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
4845
4846 * include/std/variant (__get): Qualify calls to avoid ADL.
4847 (__select_index): Adjust whitespace.
4848 (variant): Add using-declaration to workaround Clang bug.
4849
4850 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
4851
4852 PR libstdc++/85040
4853 * include/bits/stl_function.h (greater::__not_overloaded)
4854 (less::__not_overloaded, greater_equal::__not_overloaded)
4855 (less_equal::__not_overloaded): Fix ambiguous specializations.
4856 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
4857 tests for type with overloaded operators.
4858
4859 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4860
4861 PR libstdc++/77691
4862 * testsuite/experimental/memory_resource/resource_adaptor.cc:
4863 xfail execution on 32-bit Solaris/x86.
4864
4865 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
4866
4867 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
4868 VERIFY instead of assert.
4869 * testsuite/20_util/hash/84998.cc: New test.
4870 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
4871 copy of test adjusted for Debug Mode.
4872 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
4873 test in Debug Mode.
4874
4875 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
4876
4877 PR libstdc++/84998
4878 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
4879 * include/std/bitset: Likewise.
4880 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
4881 declaration.
4882 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
4883 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
4884 * include/bits/stl_set.h (std::set<>): Likewise.
4885 * include/bits/unordered_map.h (std::unordered_map<>): Fix
4886 _Hash_merge_helper friend declaration.
4887 (std::unordered_multimap<>): Likewise.
4888 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
4889 (std::unordered_multiset<>): Likewise.
4890
4891 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4892
4893 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
4894 trailing slash for domain level link.
4895 * doc/xml/faq.xml: Ditto.
4896 * doc/xml/manual/appendix_free.xml (software): Ditto.
4897 * doc/xml/manual/intro.xml: Ditto.
4898 * doc/xml/manual/spine.xml: Ditto.
4899 * doc/xml/spine.xml: Ditto.
4900
4901 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4902
4903 * doc/xml/manual/documentation_hacking.xml: Adjust link to
4904 docbook.org.
4905
4906 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
4907
4908 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
4909 to compile as C++98.
4910
4911 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
4912
4913 PR libstdc++/78420
4914 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
4915 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
4916 to ensure total order for pointers.
4917 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
4918 Add operator() overloads for pointer arguments and make generic
4919 overloads dispatch to new _S_cmp functions when comparisons would
4920 use built-in operators for pointers.
4921 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
4922
4923 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
4924
4925 PR libstdc++/84773
4926 PR libstdc++/83662
4927 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
4928 * configure: Regenerate.
4929 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
4930 (aligned_alloc): Add using-declaration.
4931 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
4932
4933 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
4934
4935 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
4936 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
4937 registration.
4938
4939 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
4940
4941 PR libstdc++/84769
4942 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
4943 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
4944
4945 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
4946 src/filesystem/std-ops.cc (create_dir): Likewise.
4947
4948 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
4949
4950 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
4951 (StdListIteratorPrinter): Inherit from latter.
4952 (StdFwdListIteratorPrinter): New, inherit from latter.
4953 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
4954 when iterator has no associated container.
4955 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
4956 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
4957 registrations.
4958 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
4959 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
4960
4961 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
4962
4963 PR libstdc++/84601
4964 * include/std/optional (_Optional_payload): Split into multiple
4965 specializations that can handle different cases of trivial or
4966 non-trivial assignment operators.
4967 * testsuite/20_util/optional/84601.cc: New.
4968 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
4969
4970 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
4971
4972 PR libstdc++/84671
4973 * include/bits/parse_numbers.h (_Number_help): Add partial
4974 specialization to handle digit separators. Adjust partial
4975 specialization for recursion temrination to require _Pow == 1ULL.
4976 * testsuite/20_util/duration/literals/84671.cc: New
4977
4978 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
4979
4980 Implement the missing bits of LWG 2769
4981 * include/std/any (any_cast(const any&)): Add static_assert.
4982 (any_cast(any&)): Likewise.
4983 (any_cast(any&&)): Likewise, and remove the handling
4984 for copyable-but-not-movable type.
4985 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
4986 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
4987 add new tests.
4988
4989 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
4990
4991 PR libstdc++/84532
4992 * include/std/thread (thread::__make_invoker): Construct tuple
4993 directly instead of using make_tuple.
4994 * testsuite/30_threads/async/84532.cc: New.
4995 * testsuite/30_threads/thread/84532.cc: New.
4996
4997 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
4998
4999 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
5000 (template<> __aligned_buffer): Define as __aligned_membuf alias.
5001
5002 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
5003
5004 PR target/84148
5005 * configure: Regenerate.
5006
5007 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
5008
5009 PR libstdc++/81797
5010 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
5011 * configure: Regenerate.
5012 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
5013 defined.
5014 * include/Makefile.in: Regenerate.
5015
5016 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
5017
5018 PR libstdc++/83833
5019 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
5020 Add -ffloat-store to options for m68k and ia32.
5021
5022 * doc/xml/faq.xml: Update copyright years.
5023 * doc/html/*: Regenerate.
5024
5025 PR libstdc++/83658
5026 * include/std/any (any::__do_emplace): Only set _M_manager after
5027 constructing the contained object.
5028 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
5029 * testsuite/20_util/any/modifiers/83658.cc: New test.
5030
5031 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
5032
5033 PR libstdc++/81076
5034 * include/c_global/cstddef (__byte_operand): Define primary template.
5035 * testsuite/18_support/byte/81076.cc: New test.
5036
5037 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
5038
5039 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
5040 dg-options and dg-add-options order.
5041 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
5042 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
5043 Likewise.
5044 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
5045 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
5046 Likewise.
5047 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
5048 Likewise.
5049 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
5050 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
5051 Likewise.
5052 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
5053 Likewise.
5054 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
5055 Likewise.
5056 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
5057 Likewise.
5058 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
5059 Likewise.
5060 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
5061 Likewise.
5062 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
5063 Likewise.
5064 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
5065 Likewise.
5066 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
5067 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
5068 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
5069 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
5070 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
5071 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
5072 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
5073 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
5074 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
5075 Likewise.
5076 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
5077 Likewise.
5078 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
5079 Likewise.
5080 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
5081 Likewise.
5082
5083 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
5084
5085 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
5086 include linux/types.h when checking linux/random.h header.
5087 * config.h.in: Regenerate.
5088 * configure: Ditto.
5089 * src/c++11/random.cc: Conditionally include linux/types.h.
5090
5091 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
5092
5093 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
5094
5095 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
5096
5097 PR libstdc++/83834
5098 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
5099 pattern with exact match for std::cerr.
5100
5101 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
5102
5103 PR libstdc++/83833
5104 * include/bits/random.h (chi_squared_distribution::param): Update
5105 gamma distribution parameter.
5106 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
5107 test.
5108
5109 PR libstdc++/83830
5110 * include/std/type_traits (has_unique_object_representations_v): Add
5111 variable template.
5112 * testsuite/20_util/has_unique_object_representations/value.cc: Check
5113 variable template.
5114
5115 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
5116
5117 Make optional conditionally
5118 trivially_{copy,move}_{constructible,assignable}
5119 * include/std/optional (_Optional_payload): Fix the comment in
5120 the class head and turn into a primary and one specialization.
5121 (_Optional_payload::_M_engaged): Strike the NSDMI.
5122 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
5123 New.
5124 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
5125 Likewise.
5126 (_Optional_payload<_Tp, false>::_M_get): Likewise.
5127 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
5128 (_Optional_base_impl): Likewise.
5129 (_Optional_base): Turn into a primary and three specializations.
5130 (optional(nullopt)): Change the base init.
5131 * testsuite/20_util/optional/assignment/8.cc: New.
5132 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5133 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
5134
5135 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
5136
5137 PR libstdc++/80276
5138 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
5139 (get_template_arg_list): New.
5140 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
5141 instead.
5142 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
5143 of strings and regular expressions.
5144 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
5145 (FilteringTypePrinter): Add docstring. Match using startswith. Use
5146 strip_inline_namespaces instead of strip_versioned_namespace.
5147 (add_one_type_printer): Prepend namespace to match argument.
5148 (register_type_printers): Add type printers for char16_t and char32_t
5149 string types and for types using cxx11 ABI. Update calls to
5150 add_one_template_type_printer to provide default argument dicts.
5151 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
5152 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
5153 basic_string<unsigned char> and basic_string<signed char>.
5154 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
5155 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
5156
5157 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
5158
5159 PR libstdc++/81092
5160 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5161
5162 2018-01-13 Tim Shen <timshen@google.com>
5163
5164 PR libstdc++/83601
5165 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
5166 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
5167 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
5168
5169 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5170
5171 PR libstdc++/64054
5172 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
5173 Remove dg-xfail-run-if.
5174
5175 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
5176
5177 * include/bits/forward_list.h
5178 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
5179 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
5180 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
5181 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
5182 (_Fwd_list_impl()): Add noexcept qualification.
5183 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
5184 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
5185 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
5186 (_Fwd_list_base()): Default.
5187 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
5188 (_Fwd_list_base(_Fwd_list_base&&)): Default.
5189 (forward_list<>()): Default.
5190 (forward_list<>(forward_list&&)): Default.
5191 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
5192 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
5193 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
5194 * include/bits/forward_list.tcc
5195 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
5196 _M_impl._M_head move assignment.
5197 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
5198 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
5199
5200 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
5201
5202 PR libstdc++/80276
5203 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
5204 (UniquePointerPrinter): Print correct template argument, not type of
5205 the pointer.
5206 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
5207 a type.
5208 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
5209 array type.
5210 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
5211 weak_ptr of array types.
5212
5213 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
5214
5215 PR libstdc++/83709
5216 * include/bits/hashtable_policy.h
5217 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
5218 __first != __last.
5219 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
5220 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
5221 Add false_type parameter.
5222 (_Insert_base::insert): Adapt.
5223 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
5224 Adapt.
5225 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
5226 Add __n_elt parameter, defaulted to 1.
5227 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
5228 policy _M_need_rehash.
5229 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
5230 produce only 1 rehash if necessary.
5231 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
5232 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
5233
5234 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
5235 Jonathan Wakely <jwakely@redhat.com>
5236
5237 PR libstdc++/59253 (partial)
5238 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
5239 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
5240 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
5241 children.
5242 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
5243 of unique_ptr printer.
5244 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
5245 output of shared_ptr printer.
5246
5247 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
5248
5249 PR libstdc++/83626
5250 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
5251 unnecessary symlink_status call.
5252 (remove_all(const path&, error_code&)): Use filesystem::remove.
5253 * src/filesystem/std-ops.cc: Likewise.
5254
5255 PR libstdc++/83279
5256 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
5257 sendfile.
5258
5259 PR libstdc++/83626
5260 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
5261 report an error for ENOENT.
5262 (remove_all(const path&)): Fix type of result variable.
5263 (remove_all(const path&, error_code&)): Use non-throwing increment
5264 for directory iterator. Call POSIX remove directly to avoid redundant
5265 calls to symlink_status. Do not report errors for ENOENT.
5266 * src/filesystem/std-ops.cc: Likewise.
5267 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
5268 overload.
5269 * testsuite/experimental/filesystem/operations/remove_all.cc:
5270 Likewise.
5271
5272 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
5273
5274 PR libstdc++/83626
5275 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
5276 redundant call to ec.clear().
5277 (remove_all(const path&, error_code&))): Do not return an error for
5278 non-existent paths.
5279 * src/filesystem/std-ops.cc: Likewise.
5280 * testsuite/27_io/filesystem/operations/remove.cc: New test.
5281 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
5282 results for non-existent paths.
5283 * testsuite/experimental/filesystem/operations/remove.cc: New test.
5284 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
5285 expected results for non-existent paths.
5286
5287 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
5288 check status_known once.
5289 * include/experimental/bits/fs_ops.h: Likewise.
5290
5291 PR libstdc++/83607
5292 * include/std/functional (__is_byte_like): New trait.
5293 (__is_std_equal_to): Remove.
5294 (__boyer_moore_base_t): Use __is_byte_like instead of
5295 __is_std_equal_to.
5296 * include/experimental/functional (__is_std_equal_to): Remove.
5297 (__boyer_moore_base_t): Use __is_byte_like instead of
5298 __is_std_equal_to.
5299 * testsuite/20_util/function_objects/83607.cc: New test.
5300
5301 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
5302
5303 Protect optional's deduction guide with the feature macro
5304 * include/std/optional: Use the feature macro.
5305
5306 2018-01-03 Jakub Jelinek <jakub@redhat.com>
5307
5308 Update copyright years.
5309 \f
5310 Copyright (C) 2018 Free Software Foundation, Inc.
5311
5312 Copying and distribution of this file, with or without modification,
5313 are permitted in any medium without royalty provided the copyright
5314 notice and this notice are preserved.