]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
interface.c (check_dtio_interface1): Introduce errors for alternate returns and incor...
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
41501d1a
TS
12016-09-22 Tim Shen <timshen@google.com>
2
3 PR libstdc++/77641
4 * include/std/variant (_Variant_storage::_Variant_storage):
5 Change _Variant_storage's union to be default constructible.
6 * testsuite/20_util/variant/compile.cc: New test.
7
b641f833
VV
82016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
9
10 PR libstdc++/77288
11 * include/std/optional (__is_optional_impl, __is_optional): Remove.
12 (__converts_from_optional, __assigns_from_optional): New.
13 (optional(_Up&&)): Use is_same instead of __is_optional.
14 (optional(const optional<_Up>&)): Constrain with
15 __converts_from_optional.
16 (optional(optional<_Up>&&)): Likewise.
17 (operator=(_Up&&)): Use is_same instead of __is_optional, check
18 is_same and is_scalar.
19 (operator=(const optional<_Up>&)): Constrain with
20 __converts_from_optional and __assigns_from_optional.
21 (operator=(optional<_Up>&&)): Likewise.
22 * testsuite/20_util/optional/77288.cc: New.
23 * testsuite/20_util/optional/cons/value.cc: Adjust.
24
55786785
VV
252016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
26
27 Implement LWG 2729 for tuple.
28 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
29 Suppress conditionally.
30 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
31 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
32 (_Tuple_impl(const _Head&)): Constrain.
33 (_Tuple_impl(_UHead&&)): Likewise.
34 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
35 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
36 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
37 (operator=(const tuple&)): Enable conditionally.
38 (operator=(tuple&&)): Suppress conditionally.
39 (operator=(const tuple<_UElements...>&)): Constrain.
40 (operator=(tuple<_UElements...>&&)): Likewise.
41 (operator=(const tuple&)): Enable conditionally (2-param tuple).
42 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
43 (operator=(const tuple<_U1, _U2>&)): Constrain.
44 (operator=(tuple<_U1, _U2>&&)): Likewise.
45 (operator=(const pair<_U1, _U2>&)): Likewise.
46 (operator=(pair<_U1, _U2>&&)): Likewise.
47 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
48 * testsuite/20_util/tuple/tuple_traits.cc: New.
49
f524d5b3
VV
502016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
51
52 PR libstdc++/77537
53 Implement LWG 2729 for pair.
54 * include/bits/stl_pair.h (_PCC): New.
55 (_ConstructiblePair, _ImplicitlyConvertiblePair):
56 Turn into static member functions of _PCC.
57 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
58 (_PCCP): New.
59 (pair(const _T1&, const _T2&)): Adjust.
60 (_PCCFP): New.
61 (pair(const pair<_U1, _U2>&)): Adjust.
62 (pair(_U1&&, const _T2&)): Likewise.
63 (pair(const _T1&, _U2&&)): Likewise.
64 (pair(_U1&&, _U2&&)): Likewise.
65 (pair(pair<_U1, _U2>&&)): Likewise.
66 (operator=(const pair&)): Make conditionally deleted.
67 (operator=(pair&&)): Make conditionally suppressed.
68 (operator=(const pair<_U1, _U2>&)): Constrain.
69 (operator=(pair<_U1, _U2>&&): Likewise.
70 * include/std/type_traits (__nonesuch): New.
71 * testsuite/20_util/pair/traits.cc: New.
72
377f30c0
VV
732016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
74
75 PR libstdc++/77619
76 * include/bits/stl_construct.h: (_Construct_novalue): New.
77 (_Destroy_n_aux, _Destroy_n): New.
78 * include/bits/stl_uninitialized.h: (type_traits):
79 New include in C++11 mode.
80 (__uninitialized_default_novalue_1): New.
81 (__uninitialized_default_novalue_n_1): Likewise.
82 (__uninitialized_default_novalue): Likewise.
83 (__uninitialized_default_novalue_n): Likewise.
84 (__uninitialized_copy_n_pair): Likewise.
85 (uninitialized_default_construct):
86 Use __uninitialized_default_novalue.
87 (uninitialized_default_construct_n):
88 Use __uninitialized_default_novalue_n.
89 (uninitialized_value_construct): Use __uninitialized_default.
90 (uninitialized_value_construct_n): Use __uninitialized_default_n.
91 (uninitialized_move): Use uninitialized_copy.
92 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
93 (destroy_at): Use _Destroy.
94 (destroy): Likewise.
95 (destroy_n): Likewise.
96 * testsuite/20_util/specialized_algorithms/
97 memory_management_tools/1.cc: Add tests for exceptions,
98 add tests for trivial cases for construct and move.
99
564beb5f
JW
1002016-09-20 Jonathan Wakely <jwakely@redhat.com>
101
102 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
103 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
104
019270bc
JW
1052016-09-19 Jonathan Wakely <jwakely@redhat.com>
106
d0f59435
JW
107 PR libstdc++/77645
108 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
109 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
110 division to int to work with Python 3.
111
ee1ab3e3
JW
112 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
113
a0a1009a
JW
114 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
115 display_hint to be set by subclasses.
116 (StdVariantPrinter): Use array for display_hint. Adjust output to be
117 more similar to std::any and std::optional output.
118 (register_type_printers): Add type printers for basic_string_view
119 typedefs and experimental::any. Adjust type printers for
120 fundamentals_v1 templates to match fundamentals_v2 and later.
121 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
122
019270bc
JW
123 PR libstdc++/77645
124 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
125 argument.
126 (ListWorkerBase.get_value_from_node): Define new method.
127 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
128
00895372
JW
1292016-09-17 Jonathan Wakely <jwakely@redhat.com>
130
131 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
132 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
133 Register for C++17 components in namespace std. Strip inline namespace
134 from typename.
135
6ee3fd97
JW
1362016-09-16 Jonathan Wakely <jwakely@redhat.com>
137
138 * doc/xml/manual/profile_mode.xml: Fix typo.
139 * doc/html/manual/profile_mode_devel.html: Regenerate.
140
84c08ec9
JW
1412016-09-16 Jonathan Wakely <jwakely@redhat.com>
142 Marc Glisse <marc.glisse@inria.fr>
143
144 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
145 (operator new(size_t, align_val_t)): Replace modulus operator with
146 mask.
147
426042f5
JW
1482016-09-16 Jonathan Wakely <jwakely@redhat.com>
149
150 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
151 Increase alignment if less than sizeof(void*).
152 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
153 Increase size if not a multiple of alignment.
154
0273c10e
JW
1552016-09-15 Jonathan Wakely <jwakely@redhat.com>
156
1b75c936
JW
157 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
158 * doc/html/*: Regenerate.
700e2faa
JW
159
160 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
161 -Wno-deprecated.
162 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
0273c10e 163
20a1e5b8
MP
1642016-09-14 Marek Polacek <polacek@redhat.com>
165
166 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
167 -Wno-deprecated.
168
13cddbc1
CL
1692016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
170
171 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
172 Move dg-do directive before dg-skip.
173 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
174 Move dg-do directive before dg-require.
175 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
176 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
177 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
178 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
179 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
180 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
181 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
182 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
183 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
184 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
185 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
186 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
187 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
188 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
189 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
190 Likewise.
191 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
192 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
193 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
194 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
195 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
196
8e14a10c
VV
1972016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
198
199 Implement P0040R3, Extending memory management tools.
200 * include/bits/stl_uninitialized.h (utility): New include
201 in C++17 mode.
202 (uninitialized_default_construct): New.
203 (uninitialized_default_construct_n): Likewise.
204 (uninitialized_value_construct): Likewise.
205 (uninitialized_value_construct_n): Likewise.
206 (uninitialized_move): Likewise.
207 (uninitialized_move_n): Likewise.
208 (destroy_at, destroy, destroy_n): Likewise.
7a461e27
JW
209 * testsuite/20_util/specialized_algorithms/memory_management_tools/
210 1.cc: New.
8e14a10c 211
a313485b
JM
2122016-09-12 Jason Merrill <jason@redhat.com>
213
214 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
215
5e8037ba
VV
2162016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
217
218 Implement P0253R1, Fixing a design mistake in the searchers
219 interface in Library Fundamentals.
220 * include/std/functional: (utility): New include in C++17 mode.
221 (default_searcher): Use a pair as return type, adjust the definition.
222 (boyer_moore_searcher): Likewise.
223 (boyer_moore_horspool_searcher): Likewise.
224 * testsuite/20_util/function_objects/searchers.cc: Adjust.
225
f82dfb8d
VV
2262016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
227
228 Implement C++17 string searchers.
229 * include/std/functional: (unordered_map, vector): New includes
230 in C++17 mode.
231 (array, bits/stl_algo.h): Likewise.
232 (default_searcher, __boyer_moore_map_base): New.
233 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
234 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
235 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
236 (make_boyer_moore_searcher): Likewise.
237 (make_boyer_moore_horspool_searcher): Likewise.
238 * testsuite/20_util/function_objects/searchers.cc: New.
239
684211e1
MW
2402016-09-12 Matthew Wahab <matthew.wahab@arm.com>
241
242 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
243 Move dg-do directive before dg-require.
244 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
245 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
246 Likewise.
247 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
248 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
249 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
250 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
251 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
252 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
253 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
254 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
255 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
256 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
257 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
258 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
259 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
260 Likewise.
7a461e27
JW
261 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
262 Likewise.
684211e1
MW
263 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
264 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
7a461e27
JW
265 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
266 Likewise.
267 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
268 Likewise.
269 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
270 Likewise.
271 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
272 Likewise.
273 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
274 Likewise.
275 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
276 Likewise.
277 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
278 Likewise.
279 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
280 Likewise.
281 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
282 Likewise.
283 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
284 Likewise.
285 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
286 Likewise.
287 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
288 Likewise.
289 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
684211e1 290 Likewise.
7a461e27
JW
291 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
292 Likewise.
293 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
294 Likewise.
295 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
296 Likewise.
297 * testsuite/23_containers/forward_list/debug/
298 iterator_self_move_assign_neg.cc: Likewise.
684211e1
MW
299 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
300 Likewise.
7a461e27
JW
301 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
302 Likewise.
303 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
304 Likewise.
305 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
306 Likewise.
307 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
308 Likewise.
309 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
310 Likewise.
311 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
312 Likewise.
313 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
314 Likewise.
684211e1
MW
315 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
316 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
317 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
318 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
319 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
320 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
321 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
322 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
323 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
324 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
325 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
326 Likewise.
327 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
328 * testsuite/23_containers/map/debug/60499.cc: Likewise.
329 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
330 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
331 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
332 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
333 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
334 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
335 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
336 Likewise.
337 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
338 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
339 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
340 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
341 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
342 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
343 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
344 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
7a461e27
JW
345 * testsuite/23_containers/multimap/debug/
346 iterator_self_move_assign_neg.cc: Likewise.
347 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
684211e1 348 Likewise.
684211e1
MW
349 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
350 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
351 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
352 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
353 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
354 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
355 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
7a461e27
JW
356 * testsuite/23_containers/multiset/debug/
357 iterator_self_move_assign_neg.cc: Likewise.
358 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
684211e1 359 Likewise.
684211e1
MW
360 * testsuite/23_containers/set/debug/60499.cc: Likewise.
361 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
362 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
363 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
364 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
365 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
366 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
367 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
368 Likewise.
369 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
370 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
371 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
372 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
7a461e27
JW
373 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
374 Likewise.
684211e1
MW
375 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
376 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
7a461e27
JW
377 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
378 Likewise.
379 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
380 Likewise.
381 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
382 Likewise.
684211e1
MW
383 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
384 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
385 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
386 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
387 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
7a461e27
JW
388 * testsuite/23_containers/unordered_map/debug/
389 invalid_local_iterator_compare_neg.cc: Likewise.
390 * testsuite/23_containers/unordered_map/debug/
391 invalid_local_iterator_range_neg.cc: Likewise.
392 * testsuite/23_containers/unordered_map/debug/
393 iterator_self_move_assign_neg.cc: Likewise.
684211e1
MW
394 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
395 Likewise.
396 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
397 Likewise.
7a461e27
JW
398 * testsuite/23_containers/unordered_map/debug/
399 use_erased_local_iterator_neg.cc: Likewise.
400 * testsuite/23_containers/unordered_map/debug/
401 use_invalid_iterator_neg.cc: Likewise.
402 * testsuite/23_containers/unordered_map/debug/
403 use_invalid_local_iterator_neg.cc: Likewise.
404 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
405 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
684211e1 406 Likewise.
7a461e27 407 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
684211e1 408 Likewise.
684211e1
MW
409 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
410 Likewise.
7a461e27
JW
411 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
412 Likewise.
413 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
414 Likewise.
684211e1
MW
415 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
416 Likewise.
417 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
418 Likewise.
419 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
420 Likewise.
7a461e27 421 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
684211e1 422 Likewise.
7a461e27 423 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
684211e1 424 Likewise.
7a461e27 425 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
684211e1 426 Likewise.
7a461e27 427 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
684211e1 428 Likewise.
7a461e27 429 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
684211e1 430 Likewise.
7a461e27
JW
431 * testsuite/23_containers/unordered_multimap/debug/
432 invalid_local_iterator_compare_neg.cc: Likewise.
433 * testsuite/23_containers/unordered_multimap/debug/
434 invalid_local_iterator_range_neg.cc: Likewise.
435 * testsuite/23_containers/unordered_multimap/debug/
436 iterator_self_move_assign_neg.cc: Likewise.
437 * testsuite/23_containers/unordered_multimap/debug/
438 max_load_factor_neg.cc: Likewise.
439 * testsuite/23_containers/unordered_multimap/debug/
440 self_move_assign_neg.cc: Likewise.
441 * testsuite/23_containers/unordered_multimap/debug/
442 use_erased_local_iterator_neg.cc: Likewise.
443 * testsuite/23_containers/unordered_multimap/debug/
444 use_invalid_iterator_neg.cc: Likewise.
445 * testsuite/23_containers/unordered_multimap/debug/
446 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
447 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
448 Likewise.
449 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
450 Likewise.
451 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
452 Likewise.
453 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
454 Likewise.
455 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
456 Likewise.
457 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
458 Likewise.
459 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
460 Likewise.
461 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
462 Likewise.
463 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
464 Likewise.
7a461e27 465 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
684211e1 466 Likewise.
7a461e27 467 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
684211e1 468 Likewise.
7a461e27 469 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
684211e1 470 Likewise.
7a461e27 471 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
684211e1 472 Likewise.
7a461e27 473 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
684211e1 474 Likewise.
7a461e27
JW
475 * testsuite/23_containers/unordered_multiset/debug/
476 invalid_local_iterator_compare_neg.cc: Likewise.
477 * testsuite/23_containers/unordered_multiset/debug/
478 invalid_local_iterator_range_neg.cc: Likewise.
479 * testsuite/23_containers/unordered_multiset/debug/
480 iterator_self_move_assign_neg.cc: Likewise.
481 * testsuite/23_containers/unordered_multiset/debug/
482 max_load_factor_neg.cc: Likewise.
483 * testsuite/23_containers/unordered_multiset/debug/
484 self_move_assign_neg.cc: Likewise.
485 * testsuite/23_containers/unordered_multiset/debug/
486 use_erased_local_iterator_neg.cc: Likewise.
487 * testsuite/23_containers/unordered_multiset/debug/
488 use_invalid_iterator_neg.cc: Likewise.
489 * testsuite/23_containers/unordered_multiset/debug/
490 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
491 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
492 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
493 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
7a461e27
JW
494 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
495 Likewise.
684211e1
MW
496 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
497 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
7a461e27
JW
498 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
499 Likewise.
500 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
501 Likewise.
502 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
503 Likewise.
684211e1
MW
504 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
505 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
506 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
507 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
508 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
7a461e27
JW
509 * testsuite/23_containers/unordered_set/debug/
510 invalid_local_iterator_compare_neg.cc: Likewise.
511 * testsuite/23_containers/unordered_set/debug/
512 invalid_local_iterator_range_neg.cc: Likewise.
513 * testsuite/23_containers/unordered_set/debug/
514 iterator_self_move_assign_neg.cc: Likewise.
515 * testsuite/23_containers/unordered_set/debug/
516 max_load_factor_neg.cc: Likewise.
517 * testsuite/23_containers/unordered_set/debug/
518 self_move_assign_neg.cc: Likewise.
519 * testsuite/23_containers/unordered_set/debug/
520 use_erased_local_iterator_neg.cc: Likewise.
521 * testsuite/23_containers/unordered_set/debug/
522 use_invalid_iterator_neg.cc: Likewise.
523 * testsuite/23_containers/unordered_set/debug/
524 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
525 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
526 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
527 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
7a461e27
JW
528 * testsuite/23_containers/vector/debug/
529 iterator_self_move_assign_neg.cc: Likewise.
530 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
684211e1 531 Likewise.
684211e1
MW
532 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
533 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
534 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
535 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
536 * testsuite/29_atomics/atomic/60658.cc: Likewise.
537 * testsuite/29_atomics/atomic/60695.cc: Likewise.
538 * testsuite/29_atomics/atomic/62259.cc: Likewise.
539 * testsuite/29_atomics/atomic/64658.cc: Likewise.
540 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
541 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
7a461e27
JW
542 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
543 Likewise.
684211e1 544
25011292
JW
5452016-09-11 Jonathan Wakely <jwakely@redhat.com>
546
547 * libsupc++/new_opant.cc: Include exception_defines.h.
548 * libsupc++/new_opvant.cc: Likewise.
549
af63ba4b
JM
5502016-09-09 Jason Merrill <jason@redhat.com>
551
552 Implement P0035R4, C++17 new of over-aligned types.
553 * libsupc++/new: Declare aligned new/delete operators.
554 * config/abi/pre/gnu.ver: Export them.
555 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
556 _aligned_malloc.
557 * libsupc++/new_opa.cc: New.
558 * libsupc++/new_opant.cc: New.
559 * libsupc++/new_opva.cc: New.
560 * libsupc++/new_opva.cc: New.
561 * libsupc++/del_opa.cc: New.
562 * libsupc++/del_opant.cc: New.
563 * libsupc++/del_opsa.cc: New.
564 * libsupc++/del_opva.cc: New.
565 * libsupc++/del_opvant.cc: New.
566 * libsupc++/del_opvsa.cc: New.
567 * libsupc++/Makefile.am: Build them.
568
f75d5999
TS
5692016-09-05 Tim Shen <timshen@google.com>
570
571 * include/std/variant: include bits/move.h for std::addressof.
572
eddca7bd
MS
5732016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
574
7a461e27
JW
575 * include/std/variant (_Variant_storage::_M_storage()): Use
576 std::addressof instead of operator& to take address.
eddca7bd 577
5a810362
MK
5782016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
579
580 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
581 setrlimit on both native and cross targets.
582 * configure: Regenerate.
583
3625264f
JW
5842016-08-31 Jonathan Wakely <jwakely@redhat.com>
585
7663cae2
JW
586 * include/bits/shared_ptr.h (_Assignable): New alias template.
587 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
588 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
589 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
590 _Assignable.
591 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
592 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
593 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
594 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
595 _Assignable.
596 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
597 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
598 _Convertible.
599 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
600 match on any line.
601 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
602 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
603 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
604 expected errors. Remove unnecessary code.
605 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
606
e46d22a8
JW
607 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
608 comparison object.
609 * testsuite/23_containers/set/move_comparison.cc: New test.
610
3625264f
JW
611 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
612 New test.
613
7875b41f
VV
6142016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
615
616 PR libstdc++/77395
617 * include/std/type_traits (is_constructible): Forward-declare...
618 (__is_base_to_derived_ref): ...and use here.
619 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
620 * testsuite/20_util/is_constructible/77395.cc: New.
621 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
622 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
623 Likewise.
624 * testsuite/20_util/tuple/77395.cc: New.
625
e1becf59
UB
6262016-08-30 Uros Bizjak <ubizjak@gmail.com>
627
628 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
629 directive above dg-require-namedlocale directive.
630 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
631 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
632 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
633 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
634 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
635
4aebb4e4
TS
6362016-08-27 Tim Shen <timshen@google.com>
637
638 PR libstdc++/77356
639 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
640 _M_expression_term): Modify to support dash literal.
641 * include/bits/regex_scanner.h: Add dash as a token type to make
642 a different from the mandated dash literal by escaping.
643 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
644 token in bracket expression parsing.
645 * testsuite/28_regex/regression.cc: Add new testcases.
646
52066eae
JW
6472016-08-26 Jonathan Wakely <jwakely@redhat.com>
648
10491e4c
JW
649 PR libstdc++/51960
650 * doc/xml/manual/intro.xml: Document DR 2127 change.
651 * doc/html/*: Regenerate.
652 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
653 (operator++(), operator++(int)): Use injected class name.
654 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
655
52066eae
JW
656 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
657 using -std in dg-options.
658
e8223484
JW
6592016-08-26 Jonathan Wakely <jwakely@redhat.com>
660 Pedro Alves <palves@redhat.com>
661
662 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
663 and restore dg-interpreter-batch-mode.
664 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
665 gdb-dg-runtest instead of dg-runtest.
666 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
667
86bbf15b
JW
6682016-08-26 Jonathan Wakely <jwakely@redhat.com>
669
670 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
671 precise patterns for basic_string constructors.
672 (GLIBCXX_3.4.23): Export new constructors.
673 * doc/xml/manual/intro.xml: Document LWG 2583 status.
674 * doc/html/*: Regenerate.
675 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
676 (basic_string(const basic_string&, size_type, const Alloc&)): Add
677 new constructor for LWG 2583.
678 (basic_string(const basic_string&, size_type, size_type)): Remove
679 default argument.
680 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
681 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
682 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
683 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
684
9a38acdf
AK
6852016-08-24 Aditya Kumar <hiraditya@msn.com>
686
687 * include/bits/algorithmfwd.h: Remove trailing whitespace.
688 * include/bits/shared_ptr_base.h: Likewise.
689
06db9920
JW
6902016-08-23 Jonathan Wakely <jwakely@redhat.com>
691
e90a8010
JW
692 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
693 * include/profile/array (array): Likewise.
694 (array::swap): Fix exception specification for zero-sized arrays.
695
5ea387db
JW
696 PR libstdc++/77334
697 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
698 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
699 * testsuite/23_containers/map/77334.cc: New test.
700
5d1c6b3e
JW
701 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
702 * doc/html/*: Regenerate.
703
457c4a3f
JW
704 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
705 * testsuite/experimental/feat-lib-fund.cc: Likewise.
706
b405d54f
JW
707 PR libstdc++/71771
708 * include/bits/stl_iterator.h
709 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
710 define for C++98 mode.
711 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
712 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
713 -std=gnu++98.
714 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
715 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
716 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
717 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
718 difference operator.
719 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
720 difference operator for C++98.
721 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
722
06db9920
JW
723 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
724 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
725 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
726 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
727 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
728 Likewise.
729 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
730 _GLIBCXX14_CONSTEXPR.
731 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
732 * include/std/array (array::begin, array::end, array::rbegin)
733 (array::rend, array::cbegin, array:cend, array::crbegin)
734 (array::crend, array::operator[], array::at, array::front)
735 (array::back, array::data): Likewise.
736 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
737 with separate tests for C++11, C++14, and C++17.
738 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
739 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
740 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
741
d79d6252
TS
7422016-08-22 Tim Shen <timshen@google.com>
743
744 Split _M_dfs() into smaller functions.
745 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
746 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
747 (_M_handle_line_end_assertion, _M_handle_word_boundary)
748 (_M_handle_subexpr_lookahead, _M_handle_match)
749 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
750 Add separate function declarations.
751 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
752
27abac26
GN
7532016-08-22 Gleb Natapov <gleb@scylladb.com>
754
755 PR libstdc++/68297
756 * config/abi/pre/gnu-versioned-namespace.ver: Export
757 __cxa_init_primary_exception and std::exception_ptr(void*).
758 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
759 export __cxa_init_primary_exception and std::exception_ptr(void*).
760 * include/Makefile.am: Add new headers.
761 * include/Makefile.in: Regenerate.
762 * libsupc++/Makefile.am: Add new headers.
763 * libsupc++/Makefile.in: Regenerate.
764 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
765 * libsupc++/cxxabi_init_exception.h: New header.
766 (__cxa_init_primary_exception): Declare.
767 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
768 (__cxa_throw): Use __cxa_init_primary_exception.
769 * libsupc++/exception (std::exception): Move to ...
770 * libsupc++/exception.h: New header.
771 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
772 friend declaration.
773 (__exception_ptr::__dest_thunk): New function template.
774 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
775 Use __cxa_allocate_exception and __cxa_init_primary_exception to
776 create exception_ptr.
777 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
778 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
779
94f54d47
JW
7802016-08-22 Jonathan Wakely <jwakely@redhat.com>
781
4c86ffcc
JW
782 * doc/xml/api.xml: Replace hardcoded links for specific versions with
783 link to docs for all releases.
784 * doc/html/*: Regenerate.
785
94f54d47
JW
786 PR libstdc++/77322
787 * doc/xml/manual/intro.xml: Document DR 2062 change.
788 * include/std/functional (function::swap): Add noexcept.
789 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
790 * testsuite/20_util/function/77322.cc: New test.
791
1f4ed04e
JW
7922016-08-19 Jonathan Wakely <jwakely@redhat.com>
793
71c54f8e
JW
794 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
795 *-*-solaris* instead of -pthreads.
796 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
797 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
798 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
799 * testsuite/23_containers/list/pthread1.cc: Likewise.
800 * testsuite/23_containers/list/pthread5.cc: Likewise.
801 * testsuite/23_containers/map/pthread6.cc: Likewise.
802 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
803 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
804 * testsuite/30_threads/shared_mutex/*: Likewise.
805 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
806 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
807 default_weaktoshared.cc: Likewise.
808 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
809 mutex_weaktoshared.cc: Likewise.
810 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
811 dg-require-effective-target instead of using -std option.
812 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
813 Likewise.
814 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
815 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
816 Likewise.
817 * testsuite/30_threads/async/*: Likewise.
818 * testsuite/30_threads/call_once/*: Likewise.
819 * testsuite/30_threads/condition_variable/*: Likewise.
820 * testsuite/30_threads/condition_variable_any/*: Likewise.
821 * testsuite/30_threads/future/*: Likewise.
822 * testsuite/30_threads/lock/*: Likewise.
823 * testsuite/30_threads/mutex/*: Likewise.
824 * testsuite/30_threads/packaged_task/*: Likewise.
825 * testsuite/30_threads/promise/*: Likewise.
826 * testsuite/30_threads/recursive_mutex/*: Likewise.
827 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
828 * testsuite/30_threads/shared_future/*: Likewise.
829 * testsuite/30_threads/shared_lock/*: Likewise.
830 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
831 * testsuite/30_threads/this_thread/*: Likewise.
832 * testsuite/30_threads/thread/*: Likewise.
833 * testsuite/30_threads/timed_mutex/*: Likewise.
834 * testsuite/30_threads/try_lock/*: Likewise.
835 * testsuite/30_threads/unique_lock/*: Likewise.
836
e6ee5bfd
JW
837 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
838 * doc/html/*: Regenerate.
839 * include/experimental/functional (_Not_fn, not_fn): Match C++17
840 semantics.
841 * include/std/functional (_Not_fn, not_fn): Define for C++17.
842 * testsuite/20_util/not_fn/1.cc: New.
843 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
844 Remove test for volatile-qualified wrapper.
845
387edf83
JW
846 * include/std/atomic (atomic::is_always_lock_free): Define.
847 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
848 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
849 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
850 * doc/xml/manual/status_cxx2017.xml: Update status.
851 * doc/html/*: Regenerate.
852
285ee2fb
JW
853 * include/experimental/tuple (apply): Qualify call to __apply_impl.
854 * include/std/tuple (apply): Likewise.
855 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
856 C++17 mode.
857 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
858 * testsuite/experimental/type_traits/value.cc: Likewise.
859
1f4ed04e
JW
860 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
861 and variant.
862 * doc/html/*: Regenerate.
863
a577f786
VV
8642016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
865
866 Implement the latest proposed resolution of LWG 2756.
867 * include/std/optional (Optional_base(const _Tp&))
868 (Optional_base(_Tp&&), using _Base::_Base): Remove.
869 (optional(nullopt_t)): New.
870 (optional(_Up&&)): Invoke base directly with in_place
871 rather than creating a temporary, add default template
872 argument, change constraints.
873 (optional(const optional<_Up>&)): Invoke base directly
874 with in_place, remove unnecessary constraints.
875 (optional(optional<_Up>&& __t)): Likewise.
876 (optional(in_place_t, _Args&&...)): New.
877 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
878 (operator=(_Up&&)): Add default template argument, change constraints.
879 (operator=(const optional<_Up>&)): Put is_same first in the
880 constraints.
881 (operator=(optional<_Up>&&)): Likewise.
882 * testsuite/20_util/optional/assignment/5.cc: Add a test to
883 verify assignment from something that can't be perfect-forwarded.
884 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
885 that a nested optional is disengaged when constructed
886 from a disengaged element type, and to verify that assignments
887 from an engaged element type engage the optional.
888
197c757c
TS
8892016-08-18 Tim Shen <timshen@google.com>
890
891 Implement <variant>
892
893 * include/Makefile.am: Add new file std/variant.
894 * include/Makefile.in: Generated from Makefile.am.
895 * include/bits/enable_special_members.h: Add a tag type to allow
896 the construction in non-default constructor.
897 * include/bits/uses_allocator.h: Add convenience traits to
898 detect constructibility.
899 * include/std/variant: Implement <variant>.
900 * testsuite/20_util/variant/compile.cc: Compile-time tests.
901 * testsuite/20_util/variant/run.cc: Runtime tests.
902
6cb98491
JW
9032016-08-18 Jonathan Wakely <jwakely@redhat.com>
904
0b224dcf
JW
905 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
906 (test.new_tests): Rewrite section.
907 (tests.dg.directives): New section.
908 * doc/html/*: Regenerate.
909
b56d48ef
JW
910 * doc/xml/manual/test.xml: Improve documentation of test targets.
911 Document new-abi-baseline, check-debug, and check-parallel targets.
912
409d5555
JW
913 * doc/xml/manual/build_hacking.xml: New section on shared library
914 versioning.
915
a8107a98
JW
916 * doc/xml/manual/build_hacking.xml: Improve markup.
917 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
918 to "Testing".
919 * doc/xml/faq.xml: Change link text to "Testing".
920
6cb98491
JW
921 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
922 dg-options directive.
923
657213f7
JW
9242016-08-17 Jonathan Wakely <jwakely@redhat.com>
925
6fbf26cc
JW
926 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
927 directive and use effective target instead of dg-options.
928
18a20f3f
JW
929 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
930 instead of -std in dg-options.
931 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
932 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
933 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
934 * testsuite/20_util/hash/quality.cc: Likewise.
935 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
936 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
937 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
938 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
939 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
940 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
941
f7717203
JW
942 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
943 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
944 * testsuite/27_io/rvalue_streams.cc: Likewise.
945
e30c6e0c
JW
946 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
947
e07f4b00
JW
948 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
949 Remove duplicate dg-options directive.
950
37144e84
JW
951 * testsuite/ext/profile/all.cc: Use effective target instead of
952 -std=gnu++11. Use dg-additional-options instead of repeating options.
953
8fe79e73
JW
954 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
955 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
956 instead of dg-excess-errors.
957
c4296692
JW
958 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
959 test for C++17.
960 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
961 * testsuite/experimental/ratio/value.cc: Likewise.
962 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
963 C++17.
964 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
965 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
966 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
967 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
968 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
969 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
970 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
971 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
972 * testsuite/tr1/5_numerical_facilities/special_functions/
973 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
974 C++17 compatibility.
975
ba364478
JW
976 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
977 expected signatures for C++14 compatibility.
978
657213f7
JW
979 PR libstdc++/77264
980 * include/bits/basic_string.h (operator=(__sv_type)
981 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
982 (replace(size_type, size_type, __sv_type))
983 (replace(const_iterator, const_iterator, __sv_type))
984 (find(__sv_type, size_type), rfind(__sv_type, size_type))
985 (compare(size_type, size_type, __sv_type)): Reformat.
986 (_If_sv): Define helper for SFINAE constaints.
987 (append(const _Tp&, size_type, size_type))
988 (assign(const _Tp&, size_type, size_type))
989 (insert(size_type, const _Tp&, size_type, size_type))
990 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
991 Use _If_sv.
992 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
993 SFINAE constraints.
994 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
995 Likewise.
996 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
997 Likewise.
998 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
999 Likewise.
1000 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1001 Likewise.
1002 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1003 Likewise.
1004 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1005 Likewise.
1006 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1007 Likewise.
1008 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1009 Likewise.
1010 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1011 Likewise.
1012 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1013 Likewise.
1014
32917686
JW
10152016-08-16 Jonathan Wakely <jwakely@redhat.com>
1016
1017 PR libstdc++/72847
1018 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1019 pointers to start and end of storage.
1020 * testsuite/23_containers/vector/bool/72847.cc: New test.
1021 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1022 _M_finish after deallocating.
1023 (vector<bool>::_M_fill_insert): Likewise.
1024 (vector<bool>::_M_insert_range): Likewise.
1025 (vector<bool>::_M_insert_aux): Likewise.
1026
5c578ae4
VV
10272016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1028
1029 Implement LWG 2744 and LWG 2754.
1030 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1031 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1032 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1033 Likewise.
1034 (emplace(_Args&&...)): Likewise.
1035 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1036 * include/std/utility: (__is_in_place_type_impl): New.
1037 (__is_in_place_type): Likewise.
1038 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1039 emplace.
1040 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1041 in_place constructor.
1042 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1043 * testsuite/20_util/any/requirements.cc: Add a test for
1044 in_place-constructing a non-default-constructible type.
1045
24299f65
VV
10462016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1047
1048 Add a feature macro for C++17 make_from_tuple.
1049 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1050 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1051 Qualify the call to get<>().
1052 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1053
0657379e
UB
10542016-08-15 Uros Bizjak <ubizjak@gmail.com>
1055
1056 * src/filesystem/ops.cc: Always include ostream and
1057 ext/stdio_filebuf.h.
1058 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1059 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1060 sendfile fails with ENOSYS or EINVAL.
1061
f9657322
TP
10622016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1063
1064 PR libstdc++/72840
1065 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1066 syntax.
1067
ca1ab6be
VV
10682016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1069
1070 Implement C++17 make_from_tuple.
1071 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1072 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1073
68a51b68
VV
10742016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1075
1076 Implement LWG 2758.
1077 * include/bits/basic_string.h
1078 (append(__sv_type, size_type, size_type)): Turn into a template,
1079 change parameter type, constrain, add a conversion to __sv_type
1080 from the dependent parameter type.
1081 (assign(__sv_type, size_type, size_type)): Likewise.
1082 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1083 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1084 Likewise.
1085 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1086 Likewise.
1087 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1088
3e9f67e6
JW
10892016-08-06 Jonathan Wakely <jwakely@redhat.com>
1090
caee9cde
JW
1091 * doc/xml/manual/status_cxx2017.xml: Update status table.
1092 * doc/html/manual/status.html: Regenerate.
1093
ea2f1f49
JW
1094 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1095
6ef835c6
JW
1096 PR libstdc++/72820
1097 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1098 Qualify new operator.
1099 * testsuite/20_util/function/cons/72820.cc: New test.
1100
3e9f67e6
JW
1101 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1102 * doc/html/manual/status.html: Regenerate.
1103 * include/Makefile.am: Add new header.
1104 * include/Makefile.in: Regenerate.
1105 * include/bits/invoke.h: New header.
1106 (__invoke): Make constexpr. Add && to types in exception specification.
1107 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1108 names. Include <bits/invoke.h> and use std::__invoke.
1109 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1110 new header.
1111 (invoke): Add && to types in exception specification.
1112 * include/std/tuple (apply, __apply_impl): Define for C++17.
1113 * testsuite/20_util/tuple/apply/1.cc: New test.
1114 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1115 lineno.
1116
98e6e662
JW
11172016-08-05 Jonathan Wakely <jwakely@redhat.com>
1118
a0b1bf21
JW
1119 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1120 * doc/html/manual/status.html: Regenerate.
1121
5f6acdfb
JW
1122 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1123 * testsuite/20_util/duration_cast/rounding.cc: New test.
1124 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1125 * doc/xml/manual/status_cxx2017.xml: Update status table.
1126 * doc/html/manual/status.html: Regenerate.
1127 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1128 dg-error lineno.
1129 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1130 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1131 * testsuite/20_util/duration/literals/range.cc: Likewise.
1132
98e6e662
JW
1133 * include/std/functional (__callable_functor): Remove.
1134 (_Function_handler::_M_invoke): Use __invoke instead of
1135 __callable_functor or mem_fn.
1136 (function::_Callable): Use lvalue in result_of expression.
1137 (function): Remove TODO comments about allocators.
1138 * testsuite/20_util/function/cons/refqual.cc: New test.
1139
7d2035fa
JW
11402016-08-04 Jonathan Wakely <jwakely@redhat.com>
1141
42183d03
JW
1142 * doc/xml/manual/status_cxx2017.xml: Update status table.
1143 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1144 (__invoke_impl): Remove exception specifications.
1145 (__invoke, invoke): Add exception specifications using
1146 __is_nothrow_callable.
1147 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1148 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1149 (__is_callable, __is_nothrow_callable): New traits.
1150 (is_callable, is_callable_v): New C++17 traits.
1151 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1152 * testsuite/20_util/is_callable/requirements/
1153 explicit_instantiation.cc: New test.
1154 * testsuite/20_util/is_callable/requirements/
1155 explicit_instantiation_ext.cc: New test.
1156 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1157 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1158 test.
1159 * testsuite/20_util/is_callable/value.cc: New test.
1160 * testsuite/20_util/is_callable/value_ext.cc: New test.
1161 * testsuite/20_util/is_nothrow_callable/requirements/
1162 explicit_instantiation.cc: New test.
1163 * testsuite/20_util/is_nothrow_callable/requirements/
1164 explicit_instantiation_ext.cc: New test.
1165 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1166 New test.
1167 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1168 New test.
1169 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1170 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1171
246c618e
JW
1172 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1173 * doc/html/manual/status.html: Regenerate.
1174
9a8e528c
JW
1175 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1176 effective target not dg-options. Move check for feature-test macro to:
1177 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1178 New test.
1179
7d2035fa
JW
1180 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1181 (__invfwd): Adjust.
1182 (__invoke_impl): Remove unused template parameters.
1183 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1184 parameter.
1185 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1186 and test __invoke extension for C++11.
1187
27631a25
JW
11882016-08-03 Jonathan Wakely <jwakely@redhat.com>
1189
c7fdbdcd
JW
1190 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1191 Define feature-test macro.
1192 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1193 for the macro.
1194
f21f4463
JW
1195 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1196 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1197 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1198 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1199 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1200
32eaac9c
JW
1201 * include/std/utility (as_const): Define.
1202 * testsuite/20_util/as_const/1.cc: New test.
1203 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1204
b7dabce5
JW
1205 * include/bits/shared_ptr.h (owner_less): Add default template
1206 argument.
1207 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1208 specialization.
1209 (owner_less<void>): Define specialization.
1210 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1211 Update value.
1212 * testsuite/20_util/owner_less/void.cc: New test.
1213 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1214
068c8ac1
JW
1215 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1216 Define feature-test macro.
1217 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1218 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1219 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1220 (__cpp_lib_type_trait_variable_templates): Define.
1221
0bd9bdb4
JW
1222 * include/bits/stl_function.h: Remove commented-out macro.
1223 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1224 Define feature-test macro.
1225 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1226
f8571e51
JW
1227 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1228 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1229 true.
1230 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1231 do #error for C++17.
1232 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1233 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1234 * include/tr1/bessel_function.tcc: Likewise.
1235 * include/tr1/beta_function.tcc: Likewise.
1236 * include/tr1/cmath: Likewise.
1237 * include/tr1/ell_integral.tcc: Likewise.
1238 * include/tr1/exp_integral.tcc: Likewise.
1239 * include/tr1/gamma.tcc: Likewise.
1240 * include/tr1/hypergeometric.tcc: Likewise.
1241 * include/tr1/legendre_function.tcc: Likewise.
1242 * include/tr1/modified_bessel_func.tcc: Likewise.
1243 * include/tr1/poly_hermite.tcc: Likewise.
1244 * include/tr1/poly_laguerre.tcc: Likewise.
1245 * include/tr1/riemann_zeta.tcc: Likewise.
1246 * include/tr1/special_function_util.h: Likewise.
1247 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1248
27631a25
JW
1249 * include/std/type_traits (has_trivial_default_constructor): Remove.
1250 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1251 * testsuite/20_util/has_trivial_copy_assign/requirements/
1252 explicit_instantiation.cc: Remove test.
1253 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1254 line number.
1255 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1256 Likewise.
1257 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1258 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1259 explicit_instantiation.cc: Likewise.
1260 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1261 typedefs.cc: Likewise.
1262 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1263 * testsuite/20_util/has_trivial_default_constructor/requirements/
1264 explicit_instantiation.cc: Likewise.
1265 * testsuite/20_util/has_trivial_default_constructor/requirements/
1266 typedefs.cc: Likewise.
1267 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1268 Likewise.
1269 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1270 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1271 and has_trivial_copy_assign are not defined.
1272 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1273 tests.
1274 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1275 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1276 dg-error line number.
1277 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1278 Likewise.
1279
69332dba
JW
12802016-08-02 Jonathan Wakely <jwakely@redhat.com>
1281
589a30d1
JW
1282 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1283 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1284 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1285 Likewise.
1286 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1287 Likewise.
1288 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1289 Likewise.
1290 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1291 Likewise.
1292 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1293 Likewise.
1294 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1295 Likewise.
1296
8bcd00bb
JW
1297 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1298 comments.
1299
a4e1011c
JW
1300 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1301 dg-error to relevant line.
1302 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1303 Likewise.
1304 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1305
64dde682
JW
1306 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1307
807bd096
JW
1308 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1309 options are present that aren't valid for C.
1310 * testsuite/abi/header_cxxabi.c: Likewise.
1311
8c65cd30
JW
1312 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1313 check_value.cc: Do not add special functions to namespace std in TR1
1314 test.
1315
196c9e7a
JW
1316 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1317 run for C++11 and later.
1318 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1319 Likewise.
1320 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1321 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1322 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1323 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1324 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1325 Likewise.
1326 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1327 Likewise.
1328 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1329 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1330 Likewise.
1331 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1332 Likewise.
1333 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1334 Likewise.
1335 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1336 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1337 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1338 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1339 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1340 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1341 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1342 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1343 Likewise.
1344 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1345 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1346 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1347 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1348 Likewise.
1349 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1350 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1351 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1352 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1353 Likewise.
1354 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1355 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1356 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1357 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1358 Likewise.
1359 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1360 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1361 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1362 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1363 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1364 Likewise.
1365 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1366 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1367 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1368 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1369 Likewise.
1370 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1371 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1372 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1373 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1374 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1375 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1376 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1377 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1378 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1379 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1380 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1381 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1382 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1383 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1384 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1385 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1386 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1387 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1388 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1389 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1390 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1391 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1392 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1393 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1394 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1395 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1396 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1397 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1398 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1399 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1400 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1401 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1402 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1403 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1404 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1405 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1406 Likewise.
1407 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1408 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1409 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1410 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1411 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1412 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1413 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1414 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1415 Likewise.
1416 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1417 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1418 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1419 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1420 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1421 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1422
69332dba
JW
1423 * testsuite/tr1/5_numerical_facilities/special_functions/
1424 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1425 of [[gnu::unused]].
1426 * testsuite/tr1/5_numerical_facilities/special_functions/
1427 09_cyl_bessel_j/check_value.cc: Likewise.
1428 * testsuite/tr1/5_numerical_facilities/special_functions/
1429 10_cyl_bessel_k/check_value.cc: Likewise.
1430 * testsuite/tr1/5_numerical_facilities/special_functions/
1431 11_cyl_neumann/check_value.cc: Likewise.
1432 * testsuite/tr1/5_numerical_facilities/special_functions/
1433 21_sph_bessel/check_value.cc: Likewise.
1434 * testsuite/tr1/5_numerical_facilities/special_functions/
1435 23_sph_neumann/check_value.cc: Likewise.
1436
e1539627
RO
14372016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1438
1439 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1440 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1441 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1442 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1443 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1444 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1445
c1b6948e
JW
14462016-08-02 Jonathan Wakely <jwakely@redhat.com>
1447
e877144d
JW
1448 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1449 test if -flto used.
1450
c1b6948e
JW
1451 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1452 additional flags for compiling libtestc++.a objects.
1453
9b46e4d6
JW
14542016-08-01 Jonathan Wakely <jwakely@redhat.com>
1455
92d58dee
JW
1456 * include/bits/basic_string.h (data() const): Update comment.
1457 (data()): Add non-const overload for C++17.
1458 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1459 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1460
0f86525a
JW
1461 * include/bits/basic_string.tcc: Disable explicit instantiation
1462 declarations for C++17.
1463
9839ff60
JW
1464 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1465 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1466 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1467 Likewise.
1468 * testsuite/26_numerics/headers/cmath/
1469 c99_classification_macros_c++11.cc: Likewise.
1470 * testsuite/26_numerics/headers/cmath/
1471 c99_classification_macros_c++98.cc: Likewise.
1472 * testsuite/26_numerics/headers/cmath/
1473 c99_classification_macros_c.cc: Likewise.
1474
cbcc9fe8
JW
1475 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1476 for different construct/destroy counts in C++98 mode.
1477
74811472
JW
1478 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1479
a02a61ee
JW
1480 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1481 later.
1482 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1483 Likewise.
1484
98b5fb3c
JW
1485 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1486 C++98-compatible initialization for array.
1487
6f3b8891
JW
1488 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1489 unused header and variable from compile-only test.
1490 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1491 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1492 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1493 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1494 Likewise.
1495
2ab794eb
JW
1496 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1497 Remove duplicate dg-options directive.
1498
4d16871b
JW
1499 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1500 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1501
e3509835
JW
1502 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1503 linker options from compile-only tests.
1504 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1505 Likewise.
1506
9b46e4d6
JW
1507 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1508 supported for C++11 and later.
1509 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1510 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1511
77c3c27e
UB
15122016-08-01 Uros Bizjak <ubizjak@gmail.com>
1513
1514 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1515
f245e3a0
JW
15162016-07-31 Jonathan Wakely <jwakely@redhat.com>
1517
c4da1da2
JW
1518 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1519 compile-only test.
1520
9d5b70b0
JW
1521 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1522 Ensure test is compiled with optimization.
1523
ee628057
JW
1524 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1525 Adjust dg-prune-output pattern for error in C++98 mode.
1526
d23d1bee
JW
1527 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1528 run for C++11 or later.
1529
f2738d6c
JW
1530 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1531 test to not rely on GNU extension (escaped normal characters in POSIX
1532 BRE). Enable tests for other strings which are now supported.
1533
77f3d979
JW
1534 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1535 c++11 instead of setting -std=gnu++14.
1536
3c040fa4
JW
1537 PR libstdc++/72745
1538 * include/std/array (get): Use positive message for static assertions.
1539 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1540 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1541 specialization for invalid indices, with static assertion.
1542 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1543
f245e3a0
JW
1544 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1545 dg-error to relevant line.
1546 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1547 Likewise.
1548 * testsuite/23_containers/forward_list/requirements/dr438/
1549 assign_neg.cc: Likewise.
1550 * testsuite/23_containers/forward_list/requirements/dr438/
1551 constructor_1_neg.cc: Likewise.
1552 * testsuite/23_containers/forward_list/requirements/dr438/
1553 constructor_2_neg.cc: Likewise.
1554 * testsuite/23_containers/forward_list/requirements/dr438/
1555 insert_neg.cc: Likewise.
1556 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1557 Likewise.
1558 * testsuite/26_numerics/random/linear_congruential_engine/
1559 requirements/non_uint_neg.cc: Likewise.
1560 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1561 Likewise. Also test for std::atomic_address.
1562
8c914227
VV
15632016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1564
1565 Add missing variable traits, fix testsuite failures.
1566 * include/bits/uses_allocator.h (uses_allocator_v): New.
1567 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1568 Likewise.
1569 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1570 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1571 * testsuite/20_util/duration/literals/range.cc: Likewise.
1572 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1573 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1574 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1575 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1576 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1577 Likewise.
1578 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1579 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1580 New.
1581
7523c5eb
JW
15822016-07-31 Jonathan Wakely <jwakely@redhat.com>
1583
2f297149
JW
1584 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1585 not test 128-bit types.
1586 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1587 * testsuite/20_util/is_integral/value.cc: Likewise.
1588 * testsuite/20_util/is_signed/value.cc: Likewise.
1589 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1590 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1591 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1592 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1593 Likewise.
1594 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1595 Likewise.
1596
7523c5eb
JW
1597 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1598
137422c8
VV
15992016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1600
1601 Implement C++17 variable templates for type traits.
1602 * include/std/chrono (treat_as_floating_point_v): New.
1603 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1604 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1605 (ratio_greater_equal_v): Likewise.
1606 * include/std/system_error (is_error_code_enum_v)
1607 (is_error_condition_enum_v): Likewise.
1608 * include/std/tuple (tuple_size_v): Likewise.
1609 * type_traits (conjunction_v, disjunction_v, negation_v)
1610 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1611 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1612 (is_rvalue_reference_v, is_member_object_pointer_v)
1613 (is_member_function_pointer_v, is_enum_v, is_union_v)
1614 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1615 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1616 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1617 (is_trivially_copyable_v, is_standard_layout_v)
1618 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1619 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1620 (is_constructible_v, is_default_constructible_v)
1621 (is_copy_constructible_v, is_move_constructible_v)
1622 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1623 (is_destructible_v, is_trivially_constructible_v)
1624 (is_trivially_default_constructible_v)
1625 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1626 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1627 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1628 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1629 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1630 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1631 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1632 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1633 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1634 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1635 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1636 Likewise.
1637 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1638 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1639 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1640
0c4c4909
AS
16412016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1642
1643 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1644 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1645 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1646
fe97ccec
JW
16472016-07-29 Jonathan Wakely <jwakely@redhat.com>
1648
13ec6e5e
JW
1649 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1650 * doc/html/manual/abi.html: Regenerate.
1651
62589e99
JW
1652 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1653 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1654 symbols.
1655 * configure: Regenerate.
1656 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1657
fe97ccec
JW
1658 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1659 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1660 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1661 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1662 Likewise.
1663 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1664 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1665 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1666
2de6b254
JW
16672016-07-28 Jonathan Wakely <jwakely@redhat.com>
1668
1a2196e4
JW
1669 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1670 Adjust dg-prune-output pattern for error in C++98 mode.
1671 * testsuite/23_containers/deque/requirements/dr438/
1672 constructor_1_neg.cc: Likewise.
1673 * testsuite/23_containers/deque/requirements/dr438/
1674 constructor_2_neg.cc: Likewise.
1675 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1676 Likewise.
1677 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1678 Likewise.
1679 * testsuite/23_containers/list/requirements/dr438/
1680 constructor_1_neg.cc: Likewise.
1681 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1682 Likewise.
1683 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1684 Likewise.
1685 * testsuite/23_containers/vector/requirements/dr438/
1686 constructor_1_neg.cc: Likewise.
1687 * testsuite/23_containers/vector/requirements/dr438/
1688 constructor_2_neg.cc: Likewise.
1689 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1690 Likewise.
1691
e539b4ff
JW
1692 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1693 for different construct/destroy counts in C++98 mode.
1694
c3c2f973
JW
1695 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1696 dg-options to dg-additional-options so that default options are used.
1697 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1698 Likewise.
1699 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1700 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1701 Likewise.
1702 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1703 Use dg-additional-options instead of repeating the common options.
1704
2de6b254
JW
1705 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1706 dg-do compile directive.
1707 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1708 dg-do directive.
1709 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1710
ca8f2cb1
VV
17112016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1712
1713 Implement std::string_view and P0254r2,
1714 Integrating std::string_view and std::string.
1715 * include/Makefile.am: Add string_view and string_view.tcc
1716 to the exported headers.
1717 * include/Makefile.in: Likewise.
1718 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1719 (__sv_type): New.
1720 (basic_string(__sv_type, const _Alloc&)): Likewise.
1721 (operator=(__sv_type)): Likewise.
1722 (operator __sv_type()): Likewise.
1723 (operator+=(__sv_type)): Likewise.
1724 (append(__sv_type __sv)): Likewise.
1725 (append(__sv_type, size_type, size_type)): Likewise.
1726 (assign(__sv_type)): Likewise.
1727 (assign(__sv_type, size_type, size_type)): Likewise.
1728 (insert(size_type, __sv_type)): Likewise.
1729 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1730 (replace(size_type, size_type, __sv_type)): Likewise.
1731 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1732 Likewise.
1733 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1734 (find(__sv_type, size_type)): Likewise.
1735 (rfind(__sv_type, size_type)): Likewise.
1736 (find_first_of(__sv_type, size_type)): Likewise.
1737 (find_last_of(__sv_type, size_type)): Likewise.
1738 (find_first_not_of(__sv_type, size_type)): Likewise.
1739 (find_last_not_of(__sv_type, size_type)): Likewise.
1740 (compare(__sv_type)): Likewise.
1741 (compare(size_type, size_type, __sv_type)): Likewise.
1742 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1743 Likewise.
1744 * include/bits/string_view.tcc: New.
1745 * include/std/string_view: Likewise.
1746 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1747 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1748 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1749 Likewise.
1750 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1751 Likewise.
1752 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1753 Likewise.
1754 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1755 Likewise.
1756 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1757 Likewise.
1758 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1759 Likewise.
1760 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1761 Likewise.
1762 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1763 Likewise.
1764 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1765 Likewise.
1766 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1767 Likewise.
1768 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1769 Likewise.
1770 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1771 Likewise.
1772 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1773 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1774 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1775 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1776 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1777 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1778 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1779 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1780 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1781 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1782 Likewise.
1783 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1784 Likewise.
1785 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1786 Likewise.
1787 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1788 Likewise.
1789 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1790 Likewise.
1791 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1792 Likewise.
1793 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1794 Likewise.
1795 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1796 Likewise.
1797 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1798 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1799 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1800 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1801 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1802 Likewise.
1803 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1804 Likewise.
1805 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1806 Likewise.
1807 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1808 Likewise.
1809 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1810 Likewise.
1811 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1812 Likewise.
1813 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1814 Likewise.
1815 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1816 Likewise.
1817 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1818 Likewise.
1819 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1820 Likewise.
1821 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1822 Likewise.
1823 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1824 Likewise.
1825 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1826 Likewise.
1827 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1828 Likewise.
1829 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1830 Likewise.
1831 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1832 Likewise.
1833 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1834 Likewise.
1835 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1836 Likewise.
1837 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1838 Likewise.
1839 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1840 Likewise.
1841 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1842 Likewise.
1843 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1844 Likewise.
1845 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1846 Likewise.
1847 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1848 Likewise.
1849 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1850 Likewise.
1851 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1852 Likewise.
1853 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1854 Likewise.
1855 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1856 Likewise.
1857 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1858 Likewise.
1859 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1860 Likewise.
1861 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1862 Likewise.
1863 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1864 Likewise.
1865 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1866 Likewise.
1867 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1868 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1869 Likewise.
1870 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1871 Likewise.
1872 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1873 Likewise.
1874 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1875 Likewise.
1876 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1877 Likewise.
1878 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1879 Likewise.
1880 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1881 Likewise.
1882 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1883 Likewise.
1884 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1885 Likewise.
1886 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1887 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1888
427f68c6
JW
18892016-07-27 Jonathan Wakely <jwakely@redhat.com>
1890
1891 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
1892
a837417c
GC
18932016-07-25 Georeth Chow <georeth2010@gmail.com>
1894
1895 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
1896 _S_concat enumerator.
1897 * testsuite/ext/rope/6.cc: New test.
1898
19bb30c0
JW
18992016-07-25 Jonathan Wakely <jwakely@redhat.com>
1900
1901 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
1902 std::mt19937, std::thread and std::atomic to simplify test.
1903 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1904
960637ac
JW
19052016-07-22 Jonathan Wakely <jwakely@redhat.com>
1906
8cab3d18
JW
1907 PR libstdc++/71964
1908 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1909 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
1910 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
1911 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
1912 * testsuite/23_containers/set/allocator/71964.cc: New test.
1913
960637ac
JW
1914 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
1915 delete[] instead of delete.
1916
22620c14
JW
19172016-07-21 Jonathan Wakely <jwakely@redhat.com>
1918
8b649cd3
JW
1919 * include/experimental/propagate_const (propagate_const::__t): Rename
1920 to _M_t and remove comment. Qualify std::move and std::forward.
1921 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
1922
509b778f
JW
1923 * testsuite/23_containers/vector/zero_sized_allocations.cc:
1924 Define sized deallocation function.
1925 * testsuite/util/testsuite_new_operators.h:
1926 (operator delete(void*, const std::nothrow_t&)): Define nothrow
1927 deallocation function.
1928
e93a101f
JW
1929 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
1930 reads past the end of strings.
1931 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
1932 Likewise.
1933 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
1934 invalid array accesses.
1935 * testsuite/experimental/string_view/operations/compare/char/1.cc:
1936 Fix read past the end of string.
1937 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
1938
0a024155
JW
1939 * testsuite/24_iterators/container_access.cc: Fix missing returns.
1940 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1941
22620c14
JW
1942 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
1943 leak) memory for arguments to placement delete.
1944 * testsuite/20_util/addressof/1.cc: Don't leak memory.
1945 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
1946 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
1947 Likewise.
1948
18407bfb
JW
19492016-07-20 Jonathan Wakely <jwakely@redhat.com>
1950
09a855ae
JW
1951 * doc/xml/manual/intro.xml: Document DR 2684 status.
1952 * doc/html/*: Regenerate.
1953
e87b7d52
JW
1954 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
1955 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
1956 (atomic_uint64_t): Define (LWG 2441).
1957 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
1958 lines.
1959 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
1960 the new types.
1961 * doc/xml/manual/intro.xml: Document DR 2441 status.
1962
07c772ed
JW
1963 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
1964 to use perfect forwarding (LWG 2328).
1965 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
1966 * doc/xml/manual/intro.xml: Document DR 2328 status.
1967
18407bfb
JW
1968 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
1969 static objects for catching nullptr as pointer to member types.
1970
40f3e913
VV
19712016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1972
1973 Clean up optional's comments.
1974 * include/std/optional: Remove incorrect section headers
1975 from comments when redundant, replace bare section
1976 headers with more descriptive comments.
1977
479d0ed5
JW
19782016-07-15 Jonathan Wakely <jwakely@redhat.com>
1979
4f5f9962
JW
1980 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
1981 * include/bits/move.h: Likewise.
1982 * include/bits/postypes.h: Likewise.
1983 * include/debug/bitset: Likewise.
1984 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
1985 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
1986 comment.
1987 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
1988 * testsuite/util/thread/all.h: Likewise.
1989
d1129d45
JW
1990 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
1991 and adjust comment.
1992
479d0ed5
JW
1993 PR c++/58796
1994 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
1995 nullptr match handlers of pointer type.
1996
4db1cb44
ESR
19972016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
1998
1999 Implement C++17 P0025 clamp.
2000 * include/bits/algorithmfwd.h: Declare clamp overloads.
2001 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2002 * testsuite/25_algorithms/clamp/1.cc: New test.
2003 * testsuite/25_algorithms/clamp/2.cc: New test.
2004 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2005 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2006 1.cc: New test.
2007 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2008 pod.cc: New test.
2009
1ec0f763
VV
20102016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2011
2012 Fix the constraints for any's assignment operator template to properly
2013 reject assignment from a non-copyable lvalue.
2014 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2015 type for is_copy_constructible,
2016 * testsuite/20_util/any/requirements.cc: Add a test for
2017 non-copyable lvalues.
2018
0a2bf188
JW
20192016-07-14 Jonathan Wakely <jwakely@redhat.com>
2020
ea5ec6b7
JW
2021 * include/experimental/functional: Include <parallel/algorithm> in
2022 Parallel Mode.
2023
47d5cb3c
JW
2024 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2025 for std::search.
2026
0a2bf188
JW
2027 PR libstdc++/70716
2028 * include/bits/forward_list.h (forward_list): Update doxygen comments
2029 to reflect allocator propagation semantics. Remove ambiguous
2030 statements about data being lost.
2031 * include/bits/stl_deque.h (deque): Likewise.
2032 * include/bits/stl_list.h (list): Likewise.
2033 * include/bits/stl_map.h (map): Likewise.
2034 * include/bits/stl_multimap.h (multimap): Likewise.
2035 * include/bits/stl_multiset.h (multiset): Likewise.
2036 * include/bits/stl_set.h (set): Likewise.
2037 * include/bits/stl_vector.h (vector): Likewise.
2038 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2039 Likewise.
2040 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2041 Likewise.
2042
25a69162
VV
20432016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2044
2045 Implement P0032R3, Homogeneous interface for variant, any and optional,
2046 for the parts concerning any and optional.
2047 * include/std/any (_Storage()): Make constexpr and have it
2048 initialize _M_ptr.
2049 (any()): Make constexpr.
2050 (any(const any&)): Adjust.
2051 (any(any&&)): Likewise.
2052 (__any_constructible_t): New.
2053 (any(_ValueType&&)): Constrain.
2054 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2055 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2056 Likewise.
2057 (~any()): Adjust.
2058 (operator=(const any&)): Likewise.
2059 (operator=(any&&)): Likewise.
2060 (operator=(_ValueType&&)): Constrain.
2061 (emplace(_Args&&...)): New.
2062 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2063 (clear()): Remove.
2064 (reset()): New.
2065 (swap(any&)): Adjust.
2066 (empty()): Remove.
2067 (has_value()): New.
2068 (type()): Adjust.
2069 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2070 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2071 (make_any(_Args&&...)): Likewise.
2072 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2073 * include/std/optional (in_place_t, in_place): Remove.
2074 (bad_optional_access): Add a comment referring to LEWG 72.
2075 (emplace(_Args&&...)): Constrain.
2076 (has_value()): New.
2077 (reset()): Likewise.
2078 (make_optional(_Args&&...)): Likewise.
2079 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2080 * include/std/utility (in_place_tag): New.
2081 (__in_place, __in_place_type, __in_place_index): Likewise.
2082 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2083 (in_place(__in_place*)): Likewise.
2084 (in_place(__in_place_type<_Tp>*)): Likewise.
2085 (in_place(__in_place_index<_Idx>*)): Likewise.
2086 * testsuite/20_util/any/assign/1.cc: Adjust.
2087 * testsuite/20_util/any/assign/emplace.cc: New.
2088 * testsuite/20_util/any/assign/self.cc: Adjust.
2089 * testsuite/20_util/any/cons/1.cc: Likewise.
2090 * testsuite/20_util/any/cons/in_place.cc: New.
2091 * testsuite/20_util/any/make_any.cc: Likewise.
2092 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2093 * testsuite/20_util/any/misc/swap.cc: Likewise.
2094 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2095 * testsuite/20_util/any/requirements.cc: New.
2096 * testsuite/20_util/in_place/requirements.cc: Likewise.
2097 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2098 * testsuite/20_util/optional/in_place.cc: Likewise.
2099 * testsuite/20_util/optional/make_optional.cc: Add tests for
2100 the new overloads of make_optional.
2101
c0d31471
VV
21022016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2103
2104 Implement P0307R2, Making Optional Greater Equal Again.
2105 * include/experimental/optional (_Has_addressof): Fix the comment.
2106 * include/std/optional (_Has_addressof): Likewise.
2107 (operator=(_Up&&)): Constrain.
2108 (operator=(const optional<_Up>&)): Likewise.
2109 (operator=(optional<_Up>&&)): Likewise.
2110 (__optional_relop_t): New.
2111 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2112 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2113 Constrain and make transparent.
2114 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2115 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2116 Constrain and make transparent.
2117 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2118 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2119 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2120 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2121 (operator!=(const optional<_Tp>&, _Tp const&)):
2122 Constrain and make transparent.
2123 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2124 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2125 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2126 (operator>(const optional<_Tp>&, const _Tp&)):
2127 Constrain and make transparent.
2128 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2129 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2130 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2131 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2132 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2133 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2134 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2135 * testsuite/20_util/optional/relops/1.cc: Likewise.
2136 * testsuite/20_util/optional/relops/2.cc: Likewise.
2137 * testsuite/20_util/optional/relops/3.cc: Likewise.
2138 * testsuite/20_util/optional/relops/4.cc: Likewise.
2139 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2140 that optional's relops are transparent and don't synthesize
2141 operators. Also test that assignment sfinaes.
2142
260d92cd
JW
21432016-07-13 Jonathan Wakely <jwakely@redhat.com>
2144
e383deac
JW
2145 PR libstdc++/71856
2146 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2147 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2148 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2149 on _GLIBCXX_ASSERTIONS.
2150 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2151 Include <unistd.h> for sleep.
2152 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2153 * include/parallel/merge.h: Likewise.
2154 * include/parallel/multiway_merge.h: Likewise.
2155 * include/parallel/partition.h: Likewise.
2156 * include/parallel/queue.h: Likewise.
2157 * include/parallel/sort.h: Likewise.
2158 * testsuite/25_algorithms/headers/algorithm/
2159 parallel_algorithm_assert.cc: New.
2160
17f8dc93
JW
2161 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2162 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2163 Forward to different overload.
2164
260d92cd
JW
2165 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2166 static.
2167
2d60da10
JW
21682016-07-13 Jonathan Wakely <jwakely@redhat.com>
2169
2170 Revert "Add non-const overload of std::string::data()".
2171
05505e9d
VV
21722016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2173
86c0ec1d
VV
2174 Implement P0307R2, Making Optional Greater Equal Again.
2175 * include/experimental/optional (_Has_addressof): Fix the comment.
2176 * include/std/optional (_Has_addressof): Likewise.
2177 (operator=(_Up&&)): Constrain.
2178 (operator=(const optional<_Up>&)): Likewise.
2179 (operator=(optional<_Up>&&)): Likewise.
2180 (__optional_relop_t): New.
2181 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2182 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2183 Constrain and make transparent.
2184 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2185 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2186 Constrain and make transparent.
2187 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2188 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2189 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2190 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2191 (operator!=(const optional<_Tp>&, _Tp const&)):
2192 Constrain and make transparent.
2193 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2194 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2195 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2196 (operator>(const optional<_Tp>&, const _Tp&)):
2197 Constrain and make transparent.
2198 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2199 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2200 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2201 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2202 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2203 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2204 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2205 * testsuite/20_util/optional/relops/1.cc: Likewise.
2206 * testsuite/20_util/optional/relops/2.cc: Likewise.
2207 * testsuite/20_util/optional/relops/3.cc: Likewise.
2208 * testsuite/20_util/optional/relops/4.cc: Likewise.
2209 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2210 that optional's relops are transparent and don't synthesize
2211 operators. Also test that assignment sfinaes.
2212
ceea48fc
JW
22132016-07-13 Jonathan Wakely <jwakely@redhat.com>
2214
2215 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2216 New function.
2217 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2218 instead of _M_data().
2219 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2220 Likewise.
2221 (append(const basic_string&)): Likewise.
2222 (append(const basic_string&, size_type, size_type)): Likewise.
2223 (assign(const basic_string&, size_type, size_type)): Likewise.
2224 (insert(size_type, const basic_string&)): Likewise.
2225 (insert(size_type, const basic_string&, size_type, size_type)):
2226 Likewise.
2227 (replace(size_type, size_type, const basic_string&, size_type,
2228 size_type)): Likewise.
2229 (replace(__const_iterator, __const_iterator, const basic_string&)):
2230 Likewise.
2231 (c_str(), data()): Use c_str() instead of _M_data().
2232 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2233 (compare(const basic_string&)): Use data() instead of _M_data().
2234 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2235 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2236 Pass raw pointers to _S_copy.
2237 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2238 _S_assign.
2239 (find(const _CharT*, size_type, size_type)): Use data instead of
2240 _M_data().
2241 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2242 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2243 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2244
17b31c05
JW
22452016-07-12 Jonathan Wakely <jwakely@redhat.com>
2246
7cbadfdc
JW
2247 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2248 * doc/xml/manual/intro.xml: Document DR 2458 status.
2249 * doc/html*: Regenerate.
2250
1b24fb4c
JW
2251 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2252 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2253 Only include <array>.
2254 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2255 Likewise.
1b1c16e0 2256 * doc/xml/manual/intro.xml: Document LWG 2212 support.
1b24fb4c
JW
2257 * doc/html*: Regenerate.
2258
17b31c05
JW
2259 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2260 Add testcase from LWG 2164.
2261
76225d2c
FD
22622016-07-11 François Dumont <fdumont@gcc.gnu.org>
2263
2264 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2265 to _M_realloc_insert.
2266 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2267 (_M_realloc_insert): Declare new function.
2268 (_M_emplace_back_aux): Remove definition.
2269 * include/bits/vector.tcc (emplace_back(_Args...)):
2270 Use _M_realloc_insert.
2271 (insert(const_iterator, const value_type&)): Likewise.
2272 (_M_insert_rval, _M_emplace_aux): Likewise.
2273 (_M_emplace_back_aux): Remove declaration.
2274 (_M_realloc_insert): Define.
2275 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2276 Adjust expected results for emplacing an lvalue with reallocation.
2277
435e56fb
VV
22782016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2279
2280 Implement std::optional.
2281 * include/Makefile.am: Add optional to exported headers.
2282 * include/Makefile.in: Likewise.
2283 * include/std/optional: New.
2284 * testsuite/20_util/optional/typedefs.cc: Likewise.
2285 * testsuite/20_util/optional/relops/2.cc: Likewise.
2286 * testsuite/20_util/optional/relops/3.cc: Likewise.
2287 * testsuite/20_util/optional/relops/4.cc: Likewise.
2288 * testsuite/20_util/optional/relops/5.cc: Likewise.
2289 * testsuite/20_util/optional/relops/1.cc: Likewise.
2290 * testsuite/20_util/optional/relops/6.cc: Likewise.
2291 * testsuite/20_util/optional/nullopt.cc: Likewise.
2292 * testsuite/20_util/optional/in_place.cc: Likewise.
2293 * testsuite/20_util/optional/make_optional.cc: Likewise.
2294 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2295 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2296 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2297 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2298 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2299 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2300 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2301 * testsuite/20_util/optional/cons/default.cc: Likewise.
2302 * testsuite/20_util/optional/cons/move.cc: Likewise.
2303 * testsuite/20_util/optional/cons/value.cc: Likewise.
2304 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2305 * testsuite/20_util/optional/requirements.cc: Likewise.
2306 * testsuite/20_util/optional/observers/2.cc: Likewise.
2307 * testsuite/20_util/optional/observers/3.cc: Likewise.
2308 * testsuite/20_util/optional/observers/4.cc: Likewise.
2309 * testsuite/20_util/optional/observers/5.cc: Likewise.
2310 * testsuite/20_util/optional/observers/1.cc: Likewise.
2311 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2312 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2313 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2314 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2315 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2316 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2317 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2318 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2319 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2320 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2321 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2322 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2323 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2324 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2325 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2326 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2327 * testsuite/20_util/optional/swap/1.cc: Likewise.
2328
d81102f4
JW
23292016-07-08 Jonathan Wakely <jwakely@redhat.com>
2330
2331 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2332
9fc0faf0
JW
23332016-07-07 Jonathan Wakely <jwakely@redhat.com>
2334
2335 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2336 * doc/html/*: Regenerate.
2337
52e86221
VV
23382016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2339
2340 Implement std::any.
2341 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2342 * include/Makefile.in: Likewise.
2343 * include/std/any: New.
2344 * testsuite/20_util/any/assign/1.cc: Likewise.
2345 * testsuite/20_util/any/assign/2.cc: Likewise.
2346 * testsuite/20_util/any/assign/self.cc: Likewise.
2347 * testsuite/20_util/any/cons/1.cc: Likewise.
2348 * testsuite/20_util/any/cons/2.cc: Likewise.
2349 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2350 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2351 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2352 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2353 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2354 * testsuite/20_util/any/misc/swap.cc: Likewise.
2355 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2356 * testsuite/20_util/any/observers/type.cc: Likewise.
2357 * testsuite/20_util/any/typedefs.cc: Likewise.
2358
3042e708
VV
23592016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2360
2361 Add a new header for diagnosing the use of C++17 facilities
2362 in pre-C++17 modes.
2363 * include/bits/c++17_warning.h: New.
2364
6ffe8548
VV
23652016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2366
2367 Implement LWG 2451, optional<T> should 'forward' T's
2368 implicit conversions.
2369 * include/experimental/optional (__is_optional_impl, __is_optional):
2370 New.
2371 (optional()): Make constexpr and default.
2372 (optional(_Up&&), optional(const optional<_Up>&),
2373 optional(optional<_Up>&& __t): New.
2374 (operator=(_Up&&)): Constrain.
2375 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2376 * testsuite/experimental/optional/cons/value.cc:
2377 Add tests for the functionality added by LWG 2451.
2378 * testsuite/experimental/optional/cons/value_neg.cc: New.
2379
7d4f48b5
VV
23802016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2381
2382 Implement LWG 2509,
2383 any_cast doesn't work with rvalue reference targets and cannot
2384 move with a value target.
2385 * include/experimental/any (any(_ValueType&&)): Constrain and
2386 add an overload that doesn't forward.
2387 (any_cast(any&&)): Constrain and add an overload that moves.
2388 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2389 the functionality added by LWG 2509.
2390
097e8994
FD
23912016-07-04 François Dumont <fdumont@gcc.gnu.org>
2392
2393 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2394 New test.
2395 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2396 test.
2397
9958c7eb
JW
23982016-07-04 Jonathan Wakely <jwakely@redhat.com>
2399
2400 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2401 Define inline. Forward to _M_emplace_aux.
2402 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2403 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2404 (_Temporary_value): New RAII type using allocator to construct/destroy.
2405 (_S_insert_aux_assign): Remove.
2406 (_M_insert_aux): Make non-variadic.
2407 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2408 Use _Temporary_value.
2409 (emplace(const_iterator, _Args&&...)): Remove definition.
2410 (_M_insert_rval, _M_emplace_aux): Define.
2411 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2412 (_M_fill_insert): Use _Temporary_value.
2413 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2414 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2415 Adjust expected results for emplacing an lvalue with reallocation.
2416 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2417 expected results to account for construction/destruction of temporary
2418 using allocator.
2419 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2420
e12880f9
VV
24212016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2422
2423 PR libstdc++/71313
2424 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2425 Call remove_all for children of a directory.
2426 * testsuite/experimental/filesystem/operations/create_directories.cc:
2427 Adjust.
2428
6c539f2e
FD
24292016-07-02 François Dumont <fdumont@gcc.gnu.org>
2430
2431 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2432 dg-error line numbers.
2433 * testsuite/23_containers/array/tuple_interface/
2434 tuple_element_debug_neg.cc: Likewise.
2435 * testsuite/25_algorithms/lexicographical_compare/debug/
2436 irreflexive_neg.cc: Remove.
2437
72fb6bae
TP
24382016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2439
2440 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2441 than specific target.
2442
dc448fa0
FD
24432016-06-27 François Dumont <fdumont@gcc.gnu.org>
2444
2445 PR libstdc++/71640
2446 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2447 friend declaration.
2448
e615c24c
FD
24492016-06-23 François Dumont <fdumont@gcc.gnu.org>
2450
2451 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2452 zero-size array.
2453
0609abda
TS
24542016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2455
2456 * configure.host: Remove mep-* support.
2457
8466af06
TS
24582016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2459
2460 * configure: Regenerate.
2461 * configure.host: Remove support for knetbsd.
2462 * crossconfig.m4: Likewise.
2463
29dbb034
FD
24642016-06-20 François Dumont <fdumont@gcc.gnu.org>
2465
2466 PR libstdc++/71181
2467 * include/tr1/hashtable_policy.h
2468 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2469 dereferenceable to avoid check on lower_bound result.
2470 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2471 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2472 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2473 Always return a value greater than input value. Set _M_next_resize to
2474 max value when reaching highest prime number.
2475 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2476 being now useless.
2477 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2478 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2479 (test02): New.
2480 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2481 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2482 Fix indentation.
2483
3ebacabd
JW
24842016-06-17 Jonathan Wakely <jwakely@redhat.com>
2485
2486 PR libstdc++/71545
2487 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2488 Remove irreflexive checks.
2489 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2490 binary_search): Likewise.
2491 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2492 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2493 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2494 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2495 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2496 Add constructor from array.
2497
bd2ee798
FD
24982016-06-16 François Dumont <fdumont@gcc.gnu.org>
2499
2500 * include/debug/debug.h
2501 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2502 (__glibcxx_requires_subscript): Move...
2503 * include/debug/assertions.h: ...here and add __builtin_expect.
2504 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2505 * include/bits/stl_deque.h
2506 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2507 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2508 (std::deque<>::back()): Likewise.
2509 (std::deque<>::pop_front()): Likewise.
2510 (std::deque<>::pop_back()): Likewise.
2511 (std::deque<>::swap(deque&)): Add allocator check.
2512 * include/bits/stl_vector.h
2513 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2514 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2515 (std::vector<>::back()): Likewise.
2516 (std::vector<>::pop_back()): Likewise.
2517 (std::vector<>::swap(vector&)): Add allocator check.
2518
6b9539e2
DK
25192016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2520
2521 Provide swappable traits (p0185r1)
2522 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2523 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2524 is_nothrow_swappable_v, is_swappable_with_v,
2525 is_nothrow_swappable_with_v): New.
2526 * include/bits/stl_pair.h: Use it as per p0185r1.
2527 * include/bits/stl_queue.h: Likewise.
2528 * include/bits/stl_stack.h: Likewise.
2529 * include/bits/unique_ptr.h: Likewise.
2530 * include/std/tuple: Likewise.
2531 * include/std/array: Likewise. Fix zero-size member swap.
2532 * include/bits/hashtable.h: Use __and_.
2533 * testsuite/20_util/is_nothrow_swappable/requirements/
2534 explicit_instantiation.cc: Change test options to std=gnu++17.
2535 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2536 Likewise.
2537 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2538 * testsuite/20_util/is_swappable/requirements/
2539 explicit_instantiation.cc: Likewise.
2540 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2541 * testsuite/20_util/is_swappable/value.cc: Likewise.
2542 * testsuite/20_util/is_nothrow_swappable/requirements/
2543 explicit_instantiation_ext.cc: New.
2544 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2545 New.
2546 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2547 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2548 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2549 explicit_instantiation.cc: New.
2550 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2551 New.
2552 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2553 * testsuite/20_util/is_swappable/requirements/
2554 explicit_instantiation_ext.cc: New.
2555 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2556 * testsuite/20_util/is_swappable/value.h: New.
2557 * testsuite/20_util/is_swappable/value_ext.cc: New.
2558 * testsuite/20_util/is_swappable_with/requirements/
2559 explicit_instantiation.cc: New.
2560 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2561 * testsuite/20_util/is_swappable_with/value.cc: New.
2562 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2563 dg-error line numbers.
2564 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2565 Likewise.
2566
0ae207e9
JW
25672016-06-16 Jonathan Wakely <jwakely@redhat.com>
2568
33ac58d5
JW
2569 * include/std/array: Remove trailing whitespace.
2570 * include/std/atomic: Likewise.
2571 * include/std/bitset: Likewise.
2572 * include/std/chrono: Likewise.
2573 * include/std/complex: Likewise.
2574 * include/std/condition_variable: Likewise.
2575 * include/std/fstream: Likewise.
2576 * include/std/functional: Likewise.
2577 * include/std/future: Likewise.
2578 * include/std/iomanip: Likewise.
2579 * include/std/iosfwd: Likewise.
2580 * include/std/istream: Likewise.
2581 * include/std/limits: Likewise.
2582 * include/std/ratio: Likewise.
2583 * include/std/scoped_allocator: Likewise.
2584 * include/std/sstream: Likewise.
2585 * include/std/stdexcept: Likewise.
2586 * include/std/string: Likewise.
2587 * include/std/system_error: Likewise.
2588 * include/std/thread: Likewise.
2589 * include/std/tuple: Likewise.
2590 * include/std/type_traits: Likewise.
2591 * include/std/utility: Likewise.
2592 * include/std/valarray: Likewise.
2593 * include/std/vector: Likewise.
2594
0ae207e9
JW
2595 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2596 new overloaded functions.
2597 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2598 to avoid creating a redundant temporary.
2599 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2600 test.
2601
d7e16fc5
FD
26022016-06-15 François Dumont <fdumont@gcc.gnu.org>
2603
2604 * include/bits/stl_deque.h
2605 (std::deque<>::operator=): Call _M_assign_aux.
2606 (std::deque<>::assign(initializer_list<>)): Likewise.
2607 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2608 (std::deque<>::insert(const_iterator, initializer_list<>)):
2609 Call _M_range_insert_aux.
2610 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2611 Likewise.
2612 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2613 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2614 * include/bits/deque.tcc
2615 (std::deque<>::operator=): Call _M_range_insert_aux.
2616 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2617 Likewise.
2618 * include/bits/stl_vector.h
2619 (std::vector<>::operator=): Call _M_assign_aux.
2620 (std::vector<>::assign(initializer_list<>)): Likewise.
2621 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2622 (std::vector<>::insert(const_iterator, initializer_list<>)):
2623 Call _M_range_insert.
2624 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2625
373c0095
FD
26262016-06-07 François Dumont <fdumont@gcc.gnu.org>
2627
2628 * include/std/tuple (_Head_base<>): Default specialization condition at
2629 type declaration.
2630
dbc6221f
VV
26312016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2632
2633 Support allocators in tuples of zero size.
2634 * include/std/tuple (tuple<>::tuple(),
2635 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2636 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2637 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2638
94229fb6
JW
26392016-06-06 Jonathan Wakely <jwakely@redhat.com>
2640
2641 PR libstdc++/71320
2642 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2643 Add or remove permissions according to perms argument.
2644 * testsuite/experimental/filesystem/operations/permissions.cc: New
2645 test.
2646
7a667453
VV
26472016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2648
2649 Protect allocator-overloads of tuple-from-tuple constructors
2650 from cases that would create dangling references.
2651 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2652 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2653 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2654 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2655
4acc3634
GP
26562016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2657
2658 * doc/xml/manual/backwards_compatibility.xml: Adjust
2659 lists.debian.org link to https.
2660 * doc/html/manual/backwards.html: Regenerate.
2661
9020909e
JW
26622016-05-27 Jonathan Wakely <jwakely@redhat.com>
2663
2664 * doc/xml/manual/abi.xml: Adjust URL to use https.
2665 * doc/html/manual/*: Regenerate.
2666
b7021006
VV
26672016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2668
2669 PR libstdc++/66338
2670 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2671 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2672 check for _NotSameTuple.
2673 * include/std/tuple (_TMCT): New.
2674 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2675 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2676 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2677 const tuple<_UElements...>&)): Likewise.
2678 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2679 tuple<_UElements...>&&)): Likewise.
2680 * testsuite/20_util/tuple/cons/66338.cc: New.
2681
834f4c43
JW
26822016-05-25 Jonathan Wakely <jwakely@redhat.com>
2683
c42d2288
JW
2684 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2685 * configure: Regenerate.
2686 * config.h.in: Regenerate.
2687
834f4c43
JW
2688 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2689 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2690 Remove const qualification on function. Replace
2691 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2692 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2693 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2694
732eb076
FD
26952016-05-24 François Dumont <fdumont@gcc.gnu.org>
2696
2697 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2698 * include/bits/hashtable_policy.h
2699 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2700 having load factor management.
2701 (_Mask_range_hashing): New.
2702 (__clp2): New.
2703 (_Power2_rehash_policy): New.
2704 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2705 partial specializations only depend on whether iterators are constant
2706 or not.
2707 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2708 test new hash policy.
2709 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2710 Likewise.
2711 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2712 Likewise.
2713 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2714 Likewise.
2715 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2716 Likewise.
2717 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2718 New.
2719 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2720 using the new hash policy.
2721 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2722
8be062c6
JW
27232016-05-24 Jonathan Wakely <jwakely@redhat.com>
2724
2725 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2726
447caf82
FD
27272016-05-23 François Dumont <fdumont@gcc.gnu.org>
2728
2729 * include/debug/safe_iterator.h
2730 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2731 operator ->.
2732 * include/debug/safe_local_iterator.h
2733 (_Safe_local_iterator<>::operator->()): Likewise.
2734
11f8114b
TP
27352016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2736
2737 * testsuite/experimental/memory_resource/1.cc: Add required argument
2738 to dg-require-atomic-builtins.
2739
541a9b10
JW
27402016-05-13 Jonathan Wakely <jwakely@redhat.com>
2741
2742 PR libstdc++/71073
2743 * include/debug/bitset: Add #pragma GCC system_header.
2744 * include/debug/deque: Likewise.
2745 * include/debug/list: Likewise.
2746 * include/debug/map: Likewise.
2747 * include/debug/set: Likewise.
2748 * include/debug/string: Likewise.
2749 * include/debug/unordered_map: Likewise.
2750 * include/debug/unordered_set: Likewise.
2751 * include/debug/vector: Likewise.
2752 * include/debug/functions.h: Adjust whitespace.
2753
068b220e
JW
27542016-05-12 Jonathan Wakely <jwakely@redhat.com>
2755
2756 PR libstdc++/71081
2757 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2758
3d73ae6e
JW
27592016-05-11 Jonathan Wakely <jwakely@redhat.com>
2760
2761 PR libstdc++/71049
2762 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2763 exception constructors with __sso_string parameters.
2764
d7187f9e
JW
27652016-05-10 Jonathan Wakely <jwakely@redhat.com>
2766
7f99d40a
JW
2767 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2768 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2769 Test begin and end functions.
2770 * testsuite/experimental/filesystem/iterators/
2771 recursive_directory_iterator.cc: Likewise.
2772
6fe673ad
JW
2773 PR libstdc++/71038
2774 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2775 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2776
77a87b2a
JW
2777 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2778 Overload operator* to move from rvalues.
2779
f9a39467
JW
2780 PR libstdc++/71036
2781 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2782 * testsuite/experimental/filesystem/operations/create_directory.cc:
2783 New test.
2784
6f0800d4
JW
2785 PR libstdc++/71037
2786 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2787 base path to exception.
2788 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2789 paths contained in exception.
2790
f10b2e1c
JW
2791 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2792 using declaration.
2793
d7187f9e
JW
2794 PR libstdc++/71005
2795 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2796 New type.
2797 (directory_iterator::operator++(int)): Return proxy.
2798 (recursive_directory_iterator::operator++(int)): Likewise.
2799 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2800 Test post-increment.
2801 * testsuite/experimental/filesystem/iterators/
2802 recursive_directory_iterator.cc: Likewise.
2803
7972e246
JW
28042016-05-09 Jonathan Wakely <jwakely@redhat.com>
2805
2806 PR libstdc++/71004
2807 * testsuite/experimental/filesystem/iterators/
2808 recursive_directory_iterator.cc: Fix test02 to not call member
2809 functions on invalid iterator, and use VERIFY not assert.
2810
fb334765
VV
28112016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2812
2813 Avoid endless run-time recursion for copying single-element
2814 tuples where the element type is by-value constructible
2815 from any type.
2816 * include/std/tuple (_NotSameTuple): New.
2817 * include/std/tuple (tuple(_UElements&&...): Use it.
2818 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2819
e4cce0ce
JW
28202016-05-09 Jonathan Wakely <jwakely@redhat.com>
2821
2822 PR libstdc++/71004
2823 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2824 Initialize scalar member variables in default constructor.
2825 * testsuite/experimental/filesystem/iterators/
d7187f9e 2826 recursive_directory_iterator.cc: Test default construction.
e4cce0ce 2827
40436d81
RO
28282016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2829
2830 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2831
f5c40ce2
JW
28322016-05-05 Jonathan Wakely <jwakely@redhat.com>
2833
2834 * testsuite/experimental/filesystem/path/native/string.cc: Add
2835 dg-require-filesystem-ts directive.
2836
d9cb3e75
JW
28372016-05-04 Jonathan Wakely <jwakely@redhat.com>
2838
2839 PR libstdc++/70940
2840 * include/experimental/memory_resource
2841 (__resource_adaptor_imp::do_allocate): Do not default-construct
2842 rebound allocator.
2843 (__resource_adaptor_imp::do_deallocate): Likewise. Use
2844 allocator_traits to get pointer type.
2845 (__null_memory_resource::do_allocate): Remove unused parameters.
2846 (__null_memory_resource::do_deallocate): Likewise.
2847 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2848 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2849 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2850 move to ...
2851 * testsuite/experimental/memory_resource/1.cc: Here.
2852 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2853 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2854
f92ab29f
CG
28552016-04-29 Chris Gregory <czipperz@gmail.com>
2856
2857 * config/*: Remove trailing whitespace.
2858 * src/*: Likewise.
2859 * testsuite/tr1/*: Likewise.
2860 * testsuite/util/*: Likewise.
2861
272b2ce4
JW
28622016-04-28 Jonathan Wakely <jwakely@redhat.com>
2863
9f9eb84e
JW
2864 PR libstdc++/70766
2865 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2866 __addressof.
2867 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2868 Likewise.
2869 * include/std/atomic (atomic<_Tp>): Likewise.
2870 * include/std/shared_mutex (shared_lock): Likewise.
2871 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2872 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2873 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2874 * testsuite/29_atomics/atomic/70766.cc: New test.
2875 * testsuite/30_threads/shared_lock/70766.cc: New test.
2876
272b2ce4
JW
2877 * include/bits/hashtable_policy.h (__detail::_Insert_base,
2878 __detail::_Insert): Improve comments.
2879
45e20696
JW
28802016-04-27 Jonathan Wakely <jwakely@redhat.com>
2881
2882 PR libstdc++/70767
2883 * include/std/limits: Update comments about DRs.
2884 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
2885 numeric_limits<const volatile _Tp>): Define unconditionally.
2886
a635cdb2
JW
28872016-04-24 Jonathan Wakely <jwakely@redhat.com>
2888
2889 PR libstdc++/70762
2890 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
2891 static counter to return a different path on every call.
2892
216f7526
TS
28932016-04-22 Tim Shen <timshen@google.com>
2894
2895 PR libstdc++/70745
2896 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
2897 Fix the match_not_bow and match_not_eow behavior.
2898 * testsuite/28_regex/regression.cc: Add testcase.
2899
a1e1ec76
JW
29002016-04-20 Jonathan Wakely <jwakely@redhat.com>
2901
2902 PR libstdc++/69703
2903 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
2904 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
2905
9c476ad4
JW
29062016-04-19 Jonathan Wakely <jwakely@redhat.com>
2907
29ca91f7 2908 PR libstdc++/69703
a1e1ec76 2909 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
29ca91f7
JW
2910 Override endianness bit in mode.
2911 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
2912 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
2913 that little_endian mode is ignored.
2914 * testsuite/experimental/filesystem/path/native/string.cc: New test.
2915
14905251
JW
2916 PR libstdc++/70609
2917 * src/filesystem/ops.cc (close_fd): New function.
2918 (do_copy_file): Set permissions before copying file contents. Check
2919 result of closing file descriptors. Don't copy streambuf when file
2920 is empty.
2921 (copy(const path&, const path&, copy_options, error_code&)): Use
2922 lstat for source file when copy_symlinks is set.
2923 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
2924
9c476ad4
JW
2925 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
2926 operator~ operator&=, operator|=, operator^=): Add noexcept to
2927 overloaded operators for copy_options, perms and directory_options.
2928 * src/filesystem/ops.cc (make_file_type, make_file_status,
2929 is_not_found_errno, file_time): Add noexcept.
2930
d855ad89
ESR
29312016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
2932
2933 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
2934
8dc1e574
JW
29352016-04-18 Jonathan Wakely <jwakely@redhat.com>
2936
0cded43d
JW
2937 PR libstdc++/41759
2938 * include/bits/random.h: Reword static assertion messages to state
2939 positive conditions.
2940 * include/bits/random.tcc: Likewise.
2941 * include/bits/uniform_int_dist.h: Likewise.
2942 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2943 patterns.
2944
90751aa7
JW
2945 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2946
351a5f81
JW
2947 * config/cpu/sh/atomicity.h: Fix typo in comment.
2948
b05cf382
JW
2949 PR libstdc++/70294
2950 * include/std/thread (operator<, operator==): Move definitions to
2951 namespace-scope.
2952 * testsuite/30_threads/thread/id/70294.cc: New test.
2953
4ed6e524
JW
2954 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
2955 -Wno-pedantic to dg-options.
2956 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
2957 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
2958 to dg-options.
2959 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
2960 Remove extra semi-colon.
2961 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2962 Always supply second argument to static_assert.
2963 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
2964 semi-colon.
2965 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
2966 dg-options.
2967 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
2968 * testsuite/29_atomics/atomic/60695.cc: Likewise.
2969 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
2970 alignof when operand is an object not a type.
2971 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
2972 * testsuite/decimal/make-decimal.cc: Likewise.
2973 * testsuite/experimental/type_traits/value.cc: Always supply second
2974 argument to static_assert.
2975 * testsuite/util/testsuite_common_types.h: Use __extension__ for
2976 __int128 types.
2977
abb6e0a1
JW
2978 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
2979 internal header.
2980 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
2981 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
2982 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
2983 Likewise. Add licence and change to compile-only test.
2984
6b6147dd
JW
2985 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
2986 unused parameter.
2987 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2988
8dc1e574
JW
2989 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
2990 warnings.
2991
80dbaf98
ESR
29922016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
2993
2994 * include/bits/specfun.h: Trivial comment misspelling.
2995
9f285ccb
JM
29962016-04-14 Jason Merrill <jason@redhat.com>
2997
2998 Revert Jonathan's empty ABI change from yesterday.
2999
342fac95
MS
30002016-04-13 Martin Sebor <msebor@redhat.com>
3001
3002 PR c++/69517
3003 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3004 upper bound is positive.
3005
a6297ab5
JW
30062016-04-13 Jonathan Wakely <jwakely@redhat.com>
3007
3008 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3009 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3010 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3011 of functions taking empty structs by value. Add a template parameter
3012 to overloads without hints. Rename overloads with hints to
3013 _M_emplace_hint.
3014 (_Hashtable::_M_erase(true_type, const_iterator),
3015 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3016 by reordering parameters.
3017 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3018 _M_emplace_hint instead of _M_emplace.
3019 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3020 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3021 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3022 __shared_ptr): Likewise.
3023 * include/bits/stl_algo.h (replace_if): Likewise.
3024 * include/bits/stl_pair.h (piecewise_construct_t,
3025 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3026 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3027 __uses_alloc0): Likewise.
3028 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3029 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3030 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3031 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3032 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3033 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3034 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3035
0c39f36d
ESR
30362016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3037
3038 Document C++17/TR29124 C++ Special Math Functions.
3039 * include/bits/specfun.h: Add Doxygen markup.
3040
6da8b931
JW
30412016-04-07 Jonathan Wakely <jwakely@redhat.com>
3042
3043 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3044
49a52ebc
EB
30452016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3046
3047 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3048 * src/Makefile.in: Regenerate.
3049
87cec93e
JW
30502016-04-05 Jonathan Wakely <jwakely@redhat.com>
3051
d2aee115
JW
3052 PR libstdc++/70554
3053 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3054 __atomic_fetch_add for bool.
3055 * configure: Regenerate.
3056
d5ec69f3
JW
3057 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3058
87cec93e
JW
3059 PR libstdc++/70503
3060 * src/c++11/thread.cc (execute_native_thread_routine,
3061 execute_native_thread_routine_compat): Give internal linkage.
3062 * testsuite/30_threads/thread/70503.cc: New test.
3063
7b3318c4
VV
30642016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3065
3066 PR libstdc++/70437
3067 * include/bits/stl_pair.h (_ConstructiblePair,
3068 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3069 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3070 for same-type cases.
3071 * testsuite/20_util/pair/70437.cc: New.
3072
00e6c25a
JW
30732016-03-24 Jonathan Wakely <jwakely@redhat.com>
3074
3075 PR libstdc++/69945
3076 * config/abi/pre/gnu.ver: Add new symbol.
3077 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3078 * testsuite/18_support/free_eh_pool.cc: New test.
3079
bfd84e6b
BE
30802016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3081
3082 * include/Makefile.am (install-freestanding-headers): Add
3083 concept_check.h and move.h to the installed headers.
3084 * include/Makefile.in: Regenerated.
3085 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3086 freestanding implementations.
3087 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3088 that this macro has no effect for freestanding implementations.
3089 * doc/html/manual/using_macros.html: Likewise.
3090
86715b09
JW
30912016-02-24 Jonathan Wakely <jwakely@redhat.com>
3092
3093 PR libstdc++/69939
3094 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3095
9aee022e
JW
30962016-02-23 Jonathan Wakely <jwakely@redhat.com>
3097
be9967e8
JW
3098 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3099 * doc/html/*: Regenerate.
3100
9aee022e
JW
3101 PR libstdc++/69893
3102 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3103 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3104 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3105 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3106 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3107 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3108 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3109 Likewise.
3110 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3111 namespace before including TR1 headers.
3112 * testsuite/tr1/headers/c++200x/math.cc: New test.
3113
5f6dd593
BE
31142016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3115
3116 PR libstdc++/69881
3117 * include/c_global/cstdarg: Undefine __need___va_list.
3118 * include/c_global/cstddef: Undefine all kinds of __need_*.
3119
244901a5
TS
31202016-02-16 Tim Shen <timshen@google.com>
3121
3122 PR libstdc++/69794
3123 * include/bits/regex_scanner.h: Add different special character
3124 sets for grep and egrep regex.
3125 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3126 * testsuite/28_regex/regression.cc: Add new testcase.
3127
cc07da33
JW
31282016-02-08 Jonathan Wakely <jwakely@redhat.com>
3129
2158532f
JW
3130 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3131 added 'constexpr' in previous commit.
3132 * configure: Regenerate.
3133
cc07da33
JW
3134 PR libstdc++/48891
3135 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3136 checks for all targets except *-*-solaris2.* and ensure we find the
3137 libc math.h header not our own.
3138 * configure: Regenerate.
3139
acc04646
DV
31402016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3141
3142 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3143 New file. Copied over from s390-linux-gnu.
3144
dbcda3ee
JW
31452016-02-04 Jonathan Wakely <jwakely@redhat.com>
3146
3555173f
JW
3147 PR libstdc++/69626
3148 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3149 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3150 * config.h.in: Regenerate.
3151 * configure: Regenerate.
3152 * testsuite/21_strings/c_strings/char/69626.cc: New.
3153
15ebf379
JW
3154 * doc/html/index.html: Regenerate.
3155
dbcda3ee
JW
3156 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3157 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3158 * doc/html/*: Regenerate.
3159
571512d5
BE
31602016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3161
3162 PR libstdc++/69581
3163 * include/c_compatibility/math.h: Move header guards.
3164 * include/c_compatibility/stdlib.h: Likewise.
3165
f597d5f7
JW
31662016-01-29 Jonathan Wakely <jwakely@redhat.com>
3167
3168 PR libstdc++/69506
3169 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3170
69b0daeb
JDA
31712016-01-28 John David Anglin <danglin@gcc.gnu.org>
3172
3173 PR libstdc++/69450
3174 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3175 isinf and isnan functions into two independent checks. Check on hpux.
3176 * config.h.in: Regenerate.
3177 * configure: Regenerate.
3178 * include/c_global/cmath (isinf(double), isnan(double)): Use
3179 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3180 respectively.
3181
8dc781e4
JJ
31822016-01-27 Jakub Jelinek <jakub@redhat.com>
3183
3184 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3185
bae87f7f
JW
31862016-01-27 Jonathan Wakely <jwakely@redhat.com>
3187
3188 PR libstdc++/69295
3189 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3190 -ffp-contract=off, and -ffloat-store to disable excess precision.
3191 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3192 -ffp-contract=off.
3193
f1d591e8
JW
31942016-01-26 Jonathan Wakely <jwakely@redhat.com>
3195
3196 PR libstdc++/69478
3197 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3198 random_access_iterator_tag>): Check is_move_assignable when moving.
3199 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3200 Likewise.
3201 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3202 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3203 * testsuite/25_algorithms/move/69478.cc: New.
3204 * testsuite/25_algorithms/move_backward/69478.cc: new.
3205
8964d2a0
AP
32062016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3207
3208 * include/c_compatibility/stdlib.h: Include wide character related
3209 definitions only when they are available in cstdlib.
3210
2944621e
JW
32112016-01-25 Jonathan Wakely <jwakely@redhat.com>
3212
3213 PR libstdc++/69464
3214 * include/Makefile.am: Add new header.
3215 * include/Makefile.in: Regenerate.
3216 * include/bits/random.h (uniform_int_distribution): Move to
3217 bits/uniform_int_dist.h.
3218 * include/bits/random.tcc (uniform_int_distribution::operator(),
3219 uniform_int_distribution::__generate_impl): Likewise.
3220 * include/bits/uniform_int_dist.h: New header.
3221 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3222 <bits/uniform_int_dist.h> instead of <random>.
3223 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3224 move_iterators/1.cc: Include correct header for uninitialized_copy.
3225 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3226 move_iterators/1.cc: Likewise.
3227 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3228 header for vector.
3229 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3230
3676c087
JDA
32312016-01-23 John David Anglin <danglin@gcc.gnu.org>
3232
3233 PR libstdc++/69446
3234 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3235
02dc2419
ESR
32362016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3237
3238 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3239 * include/c_compatibility/math.h: Import the TR29124 functions
3240 into the global namespace.
3241 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3242 xfail and make compile-only.
3243 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3244 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3245 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3246 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3247 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3248 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3249 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3250 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3251 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3252 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3253 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3254 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3255 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3256 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3257 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3258 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3259 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3260 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3261 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3262 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3263
350fe282
JW
32642016-01-22 Jonathan Wakely <jwakely@redhat.com>
3265
d1fb377c
JW
3266 PR libstdc++/69116
3267 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3268 define result_type for types which can be safely used with valarrays.
3269 * testsuite/26_numerics/valarray/69116.cc: New.
3270
350fe282
JW
3271 PR libstdc++/69413
3272 * config/os/gnu-linux/os_defines.h: Define
3273 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3274 * include/c_global/cmath (isinf, isnan): Check it.
3275 * doc/xml/manual/internals.xml: Document it.
3276 * doc/html/*: Regenerate.
3277
ab56cbed
JW
32782016-01-21 Jonathan Wakely <jwakely@redhat.com>
3279
3280 PR libstdc++/69406
3281 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3282 * include/ext/type_traits.h: Likewise.
3283 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3284 for presence of C headers.
3285 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3286 dg-error line number.
3287 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3288 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3289 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3290
7e10bcfa
TR
32912016-01-20 Torvald Riegel <triegel@redhat.com>
3292
3293 PR libstdc++/69310
3294 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3295
eac437bf
JW
32962016-01-20 Jonathan Wakely <jwakely@redhat.com>
3297
3f93466a
JW
3298 PR libstdc++/60401
3299 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3300 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3301 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3302 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3303 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3304 Add using declarations.
3305 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3306
eac437bf
JW
3307 PR libstdc++/69386
3308 * include/c_global/ccomplex: Ensure C++ language linkage.
3309 * include/c_global/cmath: Likewise.
3310 * include/c_global/cstdlib: Likewise.
3311 * include/c_global/ctgmath: Likewise.
3312 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3313
96e19ada
JW
33142016-01-19 Jonathan Wakely <jwakely@redhat.com>
3315
3316 PR libstdc++/14608
3317 PR libstdc++/60401
3318 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3319 --enable-cheaders=c_global configs.
3320 * include/Makefile.in: Regenerate.
3321 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3322 test and allow inclusion from C files.
3323 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3324 (at_quick_exit, quick_exit): Add using directives.
3325 * include/c_global/cmath: Use #include_next for math.h.
3326 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3327 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3328 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3329 Remove xfail for most targets.
3330 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3331
9585381a
TR
33322016-01-18 Torvald Riegel <triegel@redhat.com>
3333
3334 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3335 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3336 and move after its definition.
3337 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3338 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3339 __GXX_WEAK__, and only provide transactional clones if
3340 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3341 functions.
3342
f5460595
JW
33432016-01-18 Jonathan Wakely <jwakely@redhat.com>
3344
c91bcffc
JW
3345 PR libstdc++/60637
3346 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3347
d75d9f91 3348 PR libstdc++/69243
9c5ad80e
JW
3349 * include/std/functional (_Function_base::_M_not_empty_function):
3350 Change overloads for pointers to take arguments by value.
3351 * testsuite/20_util/function/cons/57465.cc: Add tests for
3352 pointer-to-member cases.
3353
f5460595
JW
3354 PR libstdc++/69340
3355 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3356 Use macros for exception handling and fix unused parameter warning.
3357
271366f6
JDA
33582016-01-17 John David Anglin <danglin@gcc.gnu.org>
3359
3360 PR libstdc++/68734
3361 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3362
7a5d1d34
TR
33632016-01-17 Torvald Riegel <triegel@redhat.com>
3364
3365 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3366
5445d5bf
L
33672016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3368
3369 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3370 __int128 symbols.
3371
3d076231
JW
33722016-01-15 Jonathan Wakely <jwakely@redhat.com>
3373
d7c1581c
JW
3374 PR libstdc++/69293
3375 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3376 static assertion that type is constructible from the arguments.
3377 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3378 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3379 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3380
3d076231
JW
3381 PR libstdc++/69294
3382 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3383 and isnan on AIX. Quote variables.
3384 * configure: Regenerate.
3385
a04d5fc9
TR
33862016-01-15 Torvald Riegel <triegel@redhat.com>
3387
3388 * include/bits/basic_string.h (basic_string): Declare friends.
3389 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3390 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3391 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3392 length_error, out_of_range, runtime_error, range_error,
3393 underflow_error, overflow_error): Declare members as transaction-safe.
3394 (logic_error, runtime_error): Declare friend functions.
3395 * libsupc++/exception (exception, bad_exception): Declare members as
3396 transaction-safe.
3397 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3398 transaction-safe members of exceptions and helper functions.
3399 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3400 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3401 (CXXABI_1.3.10): New.
3402 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3403 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3404 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3405 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3406 * include/Makefile.in: Regenerate.
3407 * config.h.in: Regenerate.
3408 * configure: Regenerate.
3409 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3410
cebeb718
SE
34112016-01-15 Steve Ellcey <sellcey@imgtec.com>
3412
3413 * include/ext/random.tcc: Use __builtin_isfinite instead of
3414 std::isfinite.
3415
3b07547d
JW
34162016-01-15 Jonathan Wakely <jwakely@redhat.com>
3417
3418 * include/bits/std_mutex.h: Fix Doxygen @file name.
3419
2be75957
ESR
34202016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3421 Jonathan Wakely <jwakely@redhat.com>
3422 Florian Goth <CaptainSifff@gmx.de>
3423
3424 Implement TR29124 C++ special Math Functions.
3425 * include/Makefile.am: Add new headers.
3426 * include/Makefile.in: Regenerate.
3427 * include/bits/specfun.h: New.
3428 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3429 * include/tr1/bessel_function.tcc: Ditto.
3430 * include/tr1/beta_function.tcc: Ditto.
3431 * include/tr1/cmath: Ditto.
3432 * include/tr1/ell_integral.tcc: Ditto.
3433 * include/tr1/exp_integral.tcc: Ditto.
3434 * include/tr1/gamma.tcc: Ditto.
3435 * include/tr1/hypergeometric.tcc: Ditto.
3436 * include/tr1/legendre_function.tcc: Ditto.
3437 * include/tr1/modified_bessel_func.tcc: Ditto.
3438 * include/tr1/poly_hermite.tcc: Ditto.
3439 * include/tr1/poly_laguerre.tcc: Ditto.
3440 * include/tr1/riemann_zeta.tcc: Ditto.
3441 * include/tr1/special_function_util.h: Ditto.
3442 * testsuite/ext/special_functions/conf_hyperg: New.
3443 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3444 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3445 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3446 * testsuite/ext/special_functions/hyperg: New.
3447 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3448 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3449 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3450 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3451 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3452 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3453 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3454 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3455 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3456 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3457 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3458 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3459 * testsuite/special_functions/03_beta/check_nan.cc: New.
3460 * testsuite/special_functions/03_beta/check_value.cc: New.
3461 * testsuite/special_functions/03_beta/compile.cc: New.
3462 * testsuite/special_functions/03_beta/compile_2.cc: New.
3463 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3464 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3465 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3466 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3467 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3468 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3469 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3470 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3471 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3472 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3473 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3474 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3475 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3476 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3477 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3478 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3479 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3480 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3481 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3482 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3483 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3484 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3485 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3486 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3487 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3488 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3489 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3490 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3491 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3492 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3493 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3494 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3495 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3496 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3497 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3498 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3499 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3500 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3501 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3502 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3503 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3504 * testsuite/special_functions/14_expint/check_nan.cc: New.
3505 * testsuite/special_functions/14_expint/check_value.cc: New.
3506 * testsuite/special_functions/14_expint/compile.cc: New.
3507 * testsuite/special_functions/14_expint/compile_2.cc: New.
3508 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3509 * testsuite/special_functions/15_hermite/check_value.cc: New.
3510 * testsuite/special_functions/15_hermite/compile.cc: New.
3511 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3512 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3513 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3514 * testsuite/special_functions/16_laguerre/compile.cc: New.
3515 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3516 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3517 * testsuite/special_functions/17_legendre/check_value.cc: New.
3518 * testsuite/special_functions/17_legendre/compile.cc: New.
3519 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3520 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3521 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3522 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3523 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3524 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3525 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3526 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3527 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3528 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3529 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3530 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3531 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3532 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3533 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3534 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3535 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3536 * testsuite/util/specfun_testcase.h: New.
3537 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3538 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3539 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3540 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3541 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3542 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3543 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3544
39a1d8c8
JW
35452016-01-13 Jonathan Wakely <jwakely@redhat.com>
3546
3547 PR libstdc++/48891
3548 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3549 and isnan functions.
3550 * config.h.in: Regenerate.
3551 * configure: Regenerate.
3552 * include/c_global/cmath (isinf(double), isnan(double))
3553 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3554 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3555
e862906c
RO
35562016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3557
3558 PR libstdc++/66006
3559 * configure.host (abi_baseline_pair): Use separate baseline for
3560 Solaris 11+ and Solaris 10 with gld.
3561 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3562 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3563 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3564
26b5ace7
DK
35652016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3566
3567 PR libstdc++/68877
3568 * include/std/type_traits: Following N4511, reimplement __is_swappable
3569 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3570 adjust callers. Use __is_nothrow_swappable in swap.
3571 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3572 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3573 __is_swappable related tests.
3574 * testsuite/20_util/is_swappable/value.cc: New.
3575 * testsuite/20_util/is_swappable/requirements/
3576 explicit_instantiation.cc: New.
3577 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3578 * testsuite/25_algorithms/swap/68877.cc: New.
3579
1c3c7c41
JW
35802016-01-12 Jonathan Wakely <jwakely@redhat.com>
3581
bd285a8b
JW
3582 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3583
1c3c7c41
JW
3584 PR libstdc++/69005
3585 PR libstdc++/69222
3586 * include/std/functional (function::_Invoke): Remove, use result_of.
3587 (function::_Callable): Replace alias template with class template
3588 and use partial specialization instead of _NotSelf alias template.
3589 (function(_Functor)): Add "not self" constraint so that _Callable is
3590 not used while type is incomplete.
3591 * testsuite/20_util/function/69222.cc: New.
3592
1517bc30
JW
35932016-01-11 Jonathan Wakely <jwakely@redhat.com>
3594
3595 PR libstdc++/60976
3596 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3597 Define partial specialization.
3598 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3599 destroy members to std::allocator explicit specialization.
3600
e525d78c
JW
36012016-01-08 Jonathan Wakely <jwakely@redhat.com>
3602
8babc12b
JW
3603 * testsuite/26_numerics/headers/cmath/
3604 c99_classification_macros_c++.cc: Rename to ...
3605 * testsuite/26_numerics/headers/cmath/
3606 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3607 * testsuite/26_numerics/headers/cmath/
3608 c99_classification_macros_c++0x.cc: Rename to ...
3609 * testsuite/26_numerics/headers/cmath/
3610 c99_classification_macros_c++11.cc: Here.
3611
32a8c97f 3612 PR libstdc++/69190
e525d78c
JW
3613 * include/bits/uses_allocator.h: Add missing include.
3614
f885fa89
JW
36152016-01-07 Jonathan Wakely <jwakely@redhat.com>
3616
3617 PR libstdc++/69105
3618 PR libstdc++/69106
3619 PR libstdc++/69114
3620 * include/bits/stl_iterator.h (back_insert_iterator,
3621 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3622 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3623 * include/std/future (__future::base::_State_baseV2::__setter):
3624 Likewise.
3625 * include/std/scoped_allocator (__outermost): Likewise.
3626 * testsuite/20_util/scoped_allocator/69114.cc: New.
3627 * testsuite/20_util/uses_allocator/69114.cc: New.
3628 * testsuite/30_threads/promise/69106.cc: New.
3629
0c3e5dd1
JW
36302016-01-06 Jonathan Wakely <jwakely@redhat.com>
3631
373a75fb
JW
3632 PR libstdc++/69092
3633 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3634 Remove _GLIBCXX_NOEXCEPT.
3635 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3636
0c3e5dd1
JW
3637 * include/Makefile.am: Adjust.
3638 * include/Makefile.in: Regenerate.
3639 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3640 * include/std/condition_variable: Adjust include.
3641 * include/std/mutex: Likewise.
3642
818ab71a 36432016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
3644
3645 Update copyright years.
b4df5e92 3646\f
818ab71a 3647Copyright (C) 2016 Free Software Foundation, Inc.
b4df5e92
JW
3648
3649Copying and distribution of this file, with or without modification,
3650are permitted in any medium without royalty provided the copyright
3651notice and this notice are preserved.