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