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