]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Fix exception-specification of std::invoke
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2016-10-13 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/invoke.h (__invoke): Fix exception-specification.
4 * include/std/functional (invoke): Likewise.
5 * testsuite/20_util/function_objects/invoke/1.cc: New test.
6
7 2016-10-12 Paolo Carlini <paolo.carlini@oracle.com>
8
9 * testsuite/util/testsuite_hooks.h: Rewrite VERIFY in terms of
10 __builtin_printf and __builtin_abort.
11 * testsuite/lib/libstdc++.exp: Remove _GLIBCXX_ASSERT use.
12 * scripts/testsuite_flags.in: Likewise.
13 * testsuite/22_locale/time_get/get/char/1.cc: Likewise.
14 * testsuite/22_locale/time_get/get/char/2.cc: Likewise.
15 * testsuite/22_locale/time_get/get/wchar_t/1.cc: Likewise.
16 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise.
17 * testsuite/27_io/basic_filebuf/close/char/4879.cc: Likewise, adjust.
18 * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
19 * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
20 * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
21 * testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: Likewise.
22 * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
23 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
24 Likewise.
25 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
26 Likewise.
27 * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
28 Likewise.
29 * testsuite/27_io/objects/char/7.cc: Likewise.
30 * testsuite/27_io/objects/char/9661-1.cc: Likewise.
31 * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
32 * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
33 * testsuite/18_support/50594.cc: Remove 'test' variable, adjust.
34 * testsuite/18_support/bad_alloc/what.cc: Likewise.
35 * testsuite/18_support/bad_cast/what.cc: Likewise.
36 * testsuite/18_support/bad_exception/what.cc: Likewise.
37 * testsuite/18_support/bad_typeid/what.cc: Likewise.
38 * testsuite/18_support/exception/38732.cc: Likewise.
39 * testsuite/18_support/exception/what.cc: Likewise.
40 * testsuite/18_support/exception_ptr/64241.cc: Likewise.
41 * testsuite/18_support/exception_ptr/current_exception.cc: Likewise.
42 * testsuite/18_support/exception_ptr/lifespan.cc: Likewise.
43 * testsuite/18_support/exception_ptr/make_exception_ptr.cc: Likewise.
44 * testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
45 * testsuite/18_support/nested_exception/cons.cc: Likewise.
46 * testsuite/18_support/nested_exception/nested_ptr.cc: Likewise.
47 * testsuite/18_support/nested_exception/rethrow_if_nested.cc: Likewise.
48 * testsuite/18_support/nested_exception/rethrow_nested.cc: Likewise.
49 * testsuite/18_support/nested_exception/throw_with_nested.cc: Likewise.
50 * testsuite/18_support/numeric_limits/char16_32_t.cc: Likewise.
51 * testsuite/18_support/numeric_limits/digits10.cc: Likewise.
52 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
53 * testsuite/18_support/numeric_limits/epsilon.cc: Likewise.
54 * testsuite/18_support/numeric_limits/is_iec559.cc: Likewise.
55 * testsuite/18_support/numeric_limits/is_signed.cc: Likewise.
56 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
57 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
58 * testsuite/18_support/numeric_limits/min_max.cc: Likewise.
59 * testsuite/18_support/numeric_limits/specialization_default_values.cc:
60 Likewise.
61 * testsuite/18_support/type_info/hash_code.cc: Likewise.
62 * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
63 * testsuite/19_diagnostics/error_category/cons/default.cc: Likewise.
64 * testsuite/19_diagnostics/error_category/operators/equal.cc: Likewise.
65 * testsuite/19_diagnostics/error_category/operators/
66 not_equal.cc: Likewise.
67 * testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
68 * testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
69 * testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
70 * testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
71 * testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
72 * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Likewise.
73 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
74 * testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
75 * testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
76 Likewise.
77 * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise.
78 * testsuite/19_diagnostics/error_condition/operators/equal.cc:
79 Likewise.
80 * testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
81 Likewise.
82 * testsuite/19_diagnostics/logic_error/what-1.cc: Likewise.
83 * testsuite/19_diagnostics/logic_error/what-2.cc: Likewise.
84 * testsuite/19_diagnostics/logic_error/what-3.cc: Likewise.
85 * testsuite/19_diagnostics/logic_error/what-big.cc: Likewise.
86 * testsuite/19_diagnostics/runtime_error/what-1.cc: Likewise.
87 * testsuite/19_diagnostics/runtime_error/what-2.cc: Likewise.
88 * testsuite/19_diagnostics/runtime_error/what-3.cc: Likewise.
89 * testsuite/19_diagnostics/runtime_error/what-big.cc: Likewise.
90 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
91 * testsuite/19_diagnostics/system_error/what-1.cc: Likewise.
92 * testsuite/19_diagnostics/system_error/what-2.cc: Likewise.
93 * testsuite/19_diagnostics/system_error/what-3.cc: Likewise.
94 * testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
95 * testsuite/19_diagnostics/system_error/what-big.cc: Likewise.
96 * testsuite/20_util/addressof/1.cc: Likewise.
97 * testsuite/20_util/align/1.cc: Likewise.
98 * testsuite/20_util/align/2.cc: Likewise.
99 * testsuite/20_util/allocator/1.cc: Likewise.
100 * testsuite/20_util/allocator/10378.cc: Likewise.
101 * testsuite/20_util/allocator/8230.cc: Likewise.
102 * testsuite/20_util/allocator_traits/members/allocate_hint.cc:
103 Likewise.
104 * testsuite/20_util/allocator_traits/members/construct.cc: Likewise.
105 * testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
106 * testsuite/20_util/allocator_traits/members/max_size.cc: Likewise.
107 * testsuite/20_util/any/assign/exception.cc: Likewise.
108 * testsuite/20_util/auto_ptr/1.cc: Likewise.
109 * testsuite/20_util/auto_ptr/2.cc: Likewise.
110 * testsuite/20_util/auto_ptr/3.cc: Likewise.
111 * testsuite/20_util/auto_ptr/4.cc: Likewise.
112 * testsuite/20_util/auto_ptr/5.cc: Likewise.
113 * testsuite/20_util/auto_ptr/6.cc: Likewise.
114 * testsuite/20_util/auto_ptr/7.cc: Likewise.
115 * testsuite/20_util/bind/all_bound.cc: Likewise.
116 * testsuite/20_util/bind/conv_result.cc: Likewise.
117 * testsuite/20_util/bind/cv_quals.cc: Likewise.
118 * testsuite/20_util/bind/cv_quals_2.cc
119 * testsuite/20_util/bind/nested.cc: Likewise.
120 * testsuite/20_util/bind/placeholders.cc: Likewise.
121 * testsuite/20_util/bind/ref.cc: Likewise.
122 * testsuite/20_util/bind/ref2.cc: Likewise.
123 * testsuite/20_util/common_type/requirements/typedefs-1.cc: Likewise.
124 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
125 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
126 * testsuite/20_util/duration/arithmetic/58850.cc: Likewise.
127 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
128 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
129 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
130 * testsuite/20_util/duration/cons/1.cc: Likewise.
131 * testsuite/20_util/duration/cons/2.cc: Likewise.
132 * testsuite/20_util/enable_if/requirements/typedefs.cc: Likewise.
133 * testsuite/20_util/enable_if/requirements/typedefs_neg.cc: Likewise.
134 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
135 Likewise.
136 * testsuite/20_util/exchange/1.cc: Likewise.
137 * testsuite/20_util/forward/a.cc: Likewise.
138 * testsuite/20_util/forward/b.cc: Likewise.
139 * testsuite/20_util/forward/d.cc: Likewise.
140 * testsuite/20_util/function/1.cc: Likewise.
141 * testsuite/20_util/function/2.cc: Likewise.
142 * testsuite/20_util/function/3.cc: Likewise.
143 * testsuite/20_util/function/4.cc: Likewise.
144 * testsuite/20_util/function/43397.cc: Likewise.
145 * testsuite/20_util/function/5.cc: Likewise.
146 * testsuite/20_util/function/6.cc: Likewise.
147 * testsuite/20_util/function/7.cc: Likewise.
148 * testsuite/20_util/function/8.cc: Likewise.
149 * testsuite/20_util/function/9.cc: Likewise.
150 * testsuite/20_util/function/assign/move.cc: Likewise.
151 * testsuite/20_util/function/cons/move.cc: Likewise.
152 * testsuite/20_util/function_objects/dr660.cc: Likewise.
153 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Likewise.
154 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
155 * testsuite/20_util/hash/chi2_q_document_words.cc: Likewise.
156 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
157 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
158 * testsuite/20_util/hash/operators/size_t.cc: Likewise.
159 * testsuite/20_util/hash/quality.cc: Likewise.
160 * testsuite/20_util/integral_constant/static_definition.cc: Likewise.
161 * testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
162 * testsuite/20_util/is_function/24808.cc: Likewise.
163 * testsuite/20_util/is_object/24808.cc: Likewise.
164 * testsuite/20_util/move_if_noexcept/1.cc: Likewise.
165 * testsuite/20_util/move_if_noexcept/constexpr.cc: Likewise.
166 * testsuite/20_util/owner_less/cmp.cc: Likewise.
167 * testsuite/20_util/pair/1.cc: Likewise.
168 * testsuite/20_util/pair/2.cc: Likewise.
169 * testsuite/20_util/pair/3.cc: Likewise.
170 * testsuite/20_util/pair/4.cc: Likewise.
171 * testsuite/20_util/pair/make_pair/constexpr.cc: Likewise.
172 * testsuite/20_util/pair/moveable.cc: Likewise.
173 * testsuite/20_util/pair/piecewise.cc: Likewise.
174 * testsuite/20_util/pair/swap.cc: Likewise.
175 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
176 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
177 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
178 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
179 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
180 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
181 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
182 * testsuite/20_util/ratio/operations/ops2.cc: Likewise.
183 * testsuite/20_util/ratio/operations/ops3.cc: Likewise.
184 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
185 * testsuite/20_util/scoped_allocator/1.cc: Likewise.
186 * testsuite/20_util/scoped_allocator/2.cc: Likewise.
187 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
188 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
189 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
190 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
191 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
192 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
193 Likewise.
194 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
195 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
196 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
197 * testsuite/20_util/shared_ptr/cons/alloc.cc: Likewise.
198 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
199 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
200 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
201 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
202 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
203 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
204 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
205 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Likewise.
206 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Likewise.
207 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
208 Likewise.
209 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
210 Likewise.
211 * testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc: Likewise.
212 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
213 * testsuite/20_util/shared_ptr/creation/alloc.cc: Likewise.
214 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
215 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
216 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
217 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
218 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
219 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
220 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
221 * testsuite/20_util/shared_ptr/misc/io.cc: Likewise.
222 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
223 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
224 * testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc: Likewise.
225 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
226 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
227 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
228 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
229 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
230 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Likewise.
231 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
232 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
233 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
234 Likewise.
235 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
236 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
237 move_iterators/1.cc: Likewise.
238 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
239 move_iterators/1.cc: Likewise.
240 * testsuite/20_util/temporary_buffer.cc: Likewise.
241 * testsuite/20_util/time_point/1.cc: Likewise.
242 * testsuite/20_util/time_point/2.cc: Likewise.
243 * testsuite/20_util/time_point/3.cc: Likewise.
244 * testsuite/20_util/time_point/nonmember/constexpr.cc: Likewise.
245 * testsuite/20_util/tuple/48476.cc: Likewise.
246 * testsuite/20_util/tuple/comparison_operators/comparisons.cc:
247 Likewise.
248 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
249 * testsuite/20_util/tuple/cons/assignment.cc: Likewise.
250 * testsuite/20_util/tuple/cons/big_tuples.cc: Likewise.
251 * testsuite/20_util/tuple/cons/constructor.cc: Likewise.
252 * testsuite/20_util/tuple/creation_functions/23978.cc: Likewise.
253 * testsuite/20_util/tuple/creation_functions/48476.cc: Likewise.
254 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Likewise.
255 * testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc:
256 Likewise.
257 * testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise.
258 * testsuite/20_util/tuple/creation_functions/tie.cc: Likewise.
259 * testsuite/20_util/tuple/creation_functions/tie2.cc: Likewise.
260 * testsuite/20_util/tuple/cv_tuple_size.cc: Likewise.
261 * testsuite/20_util/tuple/element_access/get.cc: Likewise.
262 * testsuite/20_util/tuple/element_access/get_by_type.cc: Likewise.
263 * testsuite/20_util/tuple/moveable.cc: Likewise.
264 * testsuite/20_util/tuple/swap.cc: Likewise.
265 * testsuite/20_util/tuple/tuple_size.cc: Likewise.
266 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
267 * testsuite/20_util/typeindex/hash.cc: Likewise.
268 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
269 * testsuite/20_util/typeindex/name.cc: Likewise.
270 * testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
271 * testsuite/20_util/unique_ptr/assign/move.cc: Likewise.
272 * testsuite/20_util/unique_ptr/assign/move_array.cc: Likewise.
273 * testsuite/20_util/unique_ptr/assign/nullptr.cc: Likewise.
274 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
275 * testsuite/20_util/unique_ptr/cons/nullptr.cc: Likewise.
276 * testsuite/20_util/unique_ptr/cons/pointer.cc: Likewise.
277 * testsuite/20_util/unique_ptr/cons/pointer_array.cc: Likewise.
278 * testsuite/20_util/unique_ptr/cons/ptr_deleter.cc: Likewise.
279 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
280 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
281 * testsuite/20_util/unique_ptr/hash/1.cc: Likewise.
282 * testsuite/20_util/unique_ptr/modifiers/43183.cc: Likewise.
283 * testsuite/20_util/unique_ptr/specialized_algorithms/
284 comparisons.cc: Likewise.
285 * testsuite/20_util/unique_ptr/specialized_algorithms/
286 comparisons_array.cc: Likewise.
287 * testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc:
288 Likewise.
289 * testsuite/20_util/uses_allocator/construction.cc: Likewise.
290 * testsuite/20_util/uses_allocator/value.cc: Likewise.
291 * testsuite/20_util/variant/run.cc: Likewise.
292 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
293 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
294 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
295 Likewise.
296 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
297 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
298 Likewise.
299 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
300 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
301 Likewise.
302 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
303 Likewise.
304 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
305 Likewise.
306 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
307 Likewise.
308 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
309 Likewise.
310 * testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
311 * testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
312 * testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
313 * testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
314 * testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc:
315 Likewise.
316 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
317 * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
318 Likewise.
319 * testsuite/21_strings/basic_string/capacity/wchar_t/2.cc: Likewise.
320 * testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc:
321 Likewise.
322 * testsuite/21_strings/basic_string/cons/char/1.cc: Likewise.
323 * testsuite/21_strings/basic_string/cons/char/2.cc: Likewise.
324 * testsuite/21_strings/basic_string/cons/char/3.cc: Likewise.
325 * testsuite/21_strings/basic_string/cons/char/4.cc: Likewise.
326 * testsuite/21_strings/basic_string/cons/char/42261.cc: Likewise.
327 * testsuite/21_strings/basic_string/cons/char/5.cc: Likewise.
328 * testsuite/21_strings/basic_string/cons/char/6.cc: Likewise.
329 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
330 * testsuite/21_strings/basic_string/cons/char/8.cc: Likewise.
331 * testsuite/21_strings/basic_string/cons/char/moveable.cc: Likewise.
332 * testsuite/21_strings/basic_string/cons/char/moveable2.cc: Likewise.
333 * testsuite/21_strings/basic_string/cons/wchar_t/1.cc: Likewise.
334 * testsuite/21_strings/basic_string/cons/wchar_t/2.cc: Likewise.
335 * testsuite/21_strings/basic_string/cons/wchar_t/3.cc: Likewise.
336 * testsuite/21_strings/basic_string/cons/wchar_t/4.cc: Likewise.
337 * testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
338 * testsuite/21_strings/basic_string/cons/wchar_t/5.cc: Likewise.
339 * testsuite/21_strings/basic_string/cons/wchar_t/6.cc: Likewise.
340 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
341 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
342 * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: Likewise.
343 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
344 Likewise.
345 * testsuite/21_strings/basic_string/element_access/char/1.cc: Likewise.
346 * testsuite/21_strings/basic_string/element_access/char/2.cc: Likewise.
347 * testsuite/21_strings/basic_string/element_access/char/3.cc: Likewise.
348 * testsuite/21_strings/basic_string/element_access/char/4.cc: Likewise.
349 * testsuite/21_strings/basic_string/element_access/char/58163.cc:
350 Likewise.
351 * testsuite/21_strings/basic_string/element_access/char/empty.cc:
352 Likewise.
353 * testsuite/21_strings/basic_string/element_access/char/front_back.cc:
354 Likewise.
355 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
356 Likewise.
357 * testsuite/21_strings/basic_string/element_access/wchar_t/2.cc:
358 Likewise.
359 * testsuite/21_strings/basic_string/element_access/wchar_t/3.cc:
360 Likewise.
361 * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
362 Likewise.
363 * testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
364 Likewise.
365 * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
366 Likewise.
367 * testsuite/21_strings/basic_string/element_access/wchar_t/
368 front_back.cc: Likewise.
369 * testsuite/21_strings/basic_string/init-list.cc: Likewise.
370 * testsuite/21_strings/basic_string/inserters_extractors/char/1.cc:
371 Likewise.
372 * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
373 Likewise.
374 * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
375 Likewise.
376 * testsuite/21_strings/basic_string/inserters_extractors/char/
377 28277.cc: Likewise.
378 * testsuite/21_strings/basic_string/inserters_extractors/char/4.cc:
379 Likewise.
380 * testsuite/21_strings/basic_string/inserters_extractors/char/5.cc:
381 Likewise.
382 * testsuite/21_strings/basic_string/inserters_extractors/char/6.cc:
383 Likewise.
384 * testsuite/21_strings/basic_string/inserters_extractors/char/7.cc:
385 Likewise.
386 * testsuite/21_strings/basic_string/inserters_extractors/char/8.cc:
387 Likewise.
388 * testsuite/21_strings/basic_string/inserters_extractors/char/9.cc:
389 Likewise.
390 * testsuite/21_strings/basic_string/inserters_extractors/pod/
391 10081-in.cc: Likewise.
392 * testsuite/21_strings/basic_string/inserters_extractors/pod/
393 10081-out.cc: Likewise.
394 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc:
395 Likewise.
396 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
397 10.cc: Likewise.
398 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
399 11.cc: Likewise.
400 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
401 28277.cc: Likewise.
402 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc:
403 Likewise.
404 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
405 Likewise.
406 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc:
407 Likewise.
408 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc:
409 Likewise.
410 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc:
411 Likewise.
412 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc:
413 Likewise.
414 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc:
415 Likewise.
416 * testsuite/21_strings/basic_string/modifiers/append/char/2.cc:
417 Likewise.
418 * testsuite/21_strings/basic_string/modifiers/append/char/3.cc:
419 Likewise.
420 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
421 Likewise.
422 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
423 Likewise.
424 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc:
425 Likewise.
426 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc:
427 Likewise.
428 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
429 Likewise.
430 * testsuite/21_strings/basic_string/modifiers/assign/char/1.cc:
431 Likewise.
432 * testsuite/21_strings/basic_string/modifiers/assign/char/2.cc:
433 Likewise.
434 * testsuite/21_strings/basic_string/modifiers/assign/char/3.cc:
435 Likewise.
436 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
437 Likewise.
438 * testsuite/21_strings/basic_string/modifiers/assign/char/
439 move_assign.cc: Likewise.
440 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc:
441 Likewise.
442 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc:
443 Likewise.
444 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc:
445 Likewise.
446 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
447 Likewise.
448 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
449 move_assign.cc: Likewise.
450 * testsuite/21_strings/basic_string/modifiers/insert/char/1.cc:
451 Likewise.
452 * testsuite/21_strings/basic_string/modifiers/insert/char/2.cc:
453 Likewise.
454 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
455 Likewise.
456 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc:
457 Likewise.
458 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc:
459 Likewise.
460 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
461 Likewise.
462 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
463 Likewise.
464 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
465 Likewise.
466 * testsuite/21_strings/basic_string/modifiers/replace/char/1.cc:
467 Likewise.
468 * testsuite/21_strings/basic_string/modifiers/replace/char/2.cc:
469 Likewise.
470 * testsuite/21_strings/basic_string/modifiers/replace/char/3.cc:
471 Likewise.
472 * testsuite/21_strings/basic_string/modifiers/replace/char/4.cc:
473 Likewise.
474 * testsuite/21_strings/basic_string/modifiers/replace/char/5.cc:
475 Likewise.
476 * testsuite/21_strings/basic_string/modifiers/replace/char/6.cc:
477 Likewise.
478 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
479 Likewise.
480 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc:
481 Likewise.
482 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc:
483 Likewise.
484 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc:
485 Likewise.
486 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc:
487 Likewise.
488 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc:
489 Likewise.
490 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc:
491 Likewise.
492 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
493 Likewise.
494 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
495 Likewise.
496 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
497 Likewise.
498 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
499 Likewise.
500 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
501 Likewise.
502 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
503 Likewise.
504 * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
505 Likewise.
506 * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
507 Likewise.
508 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
509 Likewise.
510 * testsuite/21_strings/basic_string/numeric_conversions/char/
511 stoull.cc: Likewise.
512 * testsuite/21_strings/basic_string/numeric_conversions/char/
513 to_string.cc: Likewise.
514 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
515 dr1261.cc: Likewise.
516 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
517 stod.cc: Likewise.
518 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
519 stof.cc: Likewise.
520 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
521 stoi.cc: Likewise.
522 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
523 stol.cc: Likewise.
524 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
525 stold.cc: Likewise.
526 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
527 stoll.cc: Likewise.
528 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
529 stoul.cc: Likewise.
530 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
531 stoull.cc: Likewise.
532 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
533 to_wstring.cc: Likewise.
534 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
535 Likewise.
536 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc:
537 Likewise.
538 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
539 Likewise.
540 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
541 Likewise.
542 * testsuite/21_strings/basic_string/operations/compare/wchar_t/
543 13650.cc: Likewise.
544 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
545 Likewise.
546 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
547 Likewise.
548 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
549 Likewise.
550 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
551 Likewise.
552 * testsuite/21_strings/basic_string/operations/find/char/2.cc:
553 Likewise.
554 * testsuite/21_strings/basic_string/operations/find/char/3.cc:
555 Likewise.
556 * testsuite/21_strings/basic_string/operations/find/char/4.cc:
557 Likewise.
558 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
559 Likewise.
560 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
561 Likewise.
562 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc:
563 Likewise.
564 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc:
565 Likewise.
566 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc:
567 Likewise.
568 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
569 Likewise.
570 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc:
571 Likewise.
572 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc:
573 Likewise.
574 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc:
575 Likewise.
576 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc:
577 Likewise.
578 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc:
579 Likewise.
580 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc:
581 Likewise.
582 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
583 Likewise.
584 * testsuite/21_strings/basic_string/operations/substr/wchar_t/
585 1.cc: Likewise.
586 * testsuite/21_strings/basic_string/operators/char/1.cc: Likewise.
587 * testsuite/21_strings/basic_string/operators/char/2.cc: Likewise.
588 * testsuite/21_strings/basic_string/operators/char/3.cc: Likewise.
589 * testsuite/21_strings/basic_string/operators/char/4.cc: Likewise.
590 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
591 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc: Likewise.
592 * testsuite/21_strings/basic_string/operators/wchar_t/2.cc: Likewise.
593 * testsuite/21_strings/basic_string/operators/wchar_t/3.cc: Likewise.
594 * testsuite/21_strings/basic_string/operators/wchar_t/4.cc: Likewise.
595 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
596 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
597 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
598 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
599 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
600 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
601 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
602 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
603 * testsuite/21_strings/basic_string_view/element_access/char/
604 1.cc: Likewise.
605 * testsuite/21_strings/basic_string_view/element_access/char/
606 empty.cc: Likewise.
607 * testsuite/21_strings/basic_string_view/element_access/char/
608 front_back.cc: Likewise.
609 * testsuite/21_strings/basic_string_view/element_access/wchar_t/
610 1.cc: Likewise.
611 * testsuite/21_strings/basic_string_view/element_access/wchar_t/
612 empty.cc: Likewise.
613 * testsuite/21_strings/basic_string_view/element_access/wchar_t/
614 front_back.cc: Likewise.
615 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
616 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
617 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
618 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
619 Likewise.
620 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
621 Likewise.
622 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
623 Likewise.
624 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
625 Likewise.
626 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
627 char/1.cc: Likewise.
628 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
629 wchar_t/1.cc: Likewise.
630 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
631 char/1.cc: Likewise.
632 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
633 wchar_t/1.cc: Likewise.
634 * testsuite/21_strings/basic_string_view/operations/compare/char/
635 1.cc: Likewise.
636 * testsuite/21_strings/basic_string_view/operations/compare/char/
637 13650.cc: Likewise.
638 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
639 1.cc: Likewise.
640 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
641 13650.cc: Likewise.
642 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
643 Likewise.
644 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
645 Likewise.
646 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
647 Likewise.
648 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
649 Likewise.
650 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
651 Likewise.
652 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
653 Likewise.
654 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
655 Likewise.
656 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
657 Likewise.
658 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
659 1.cc: Likewise.
660 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
661 2.cc: Likewise.
662 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
663 3.cc: Likewise.
664 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
665 4.cc: Likewise.
666 * testsuite/21_strings/basic_string_view/operations/rfind/char/
667 1.cc: Likewise.
668 * testsuite/21_strings/basic_string_view/operations/rfind/char/
669 2.cc: Likewise.
670 * testsuite/21_strings/basic_string_view/operations/rfind/char/
671 3.cc: Likewise.
672 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
673 1.cc: Likewise.
674 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
675 2.cc: Likewise.
676 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
677 3.cc: Likewise.
678 * testsuite/21_strings/basic_string_view/operations/string_conversion/
679 1.cc: Likewise.
680 * testsuite/21_strings/basic_string_view/operations/substr/char/
681 1.cc: Likewise.
682 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
683 1.cc: Likewise.
684 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
685 Likewise.
686 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
687 Likewise.
688 * testsuite/21_strings/c_strings/char/1.cc: Likewise.
689 * testsuite/21_strings/c_strings/wchar_t/1.cc: Likewise.
690 * testsuite/21_strings/char_traits/requirements/char/1.cc: Likewise.
691 * testsuite/21_strings/char_traits/requirements/char/57704.cc:
692 Likewise.
693 * testsuite/21_strings/char_traits/requirements/short/1.cc: Likewise.
694 * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Likewise.
695
696 * doc/xml/manual/test.xml: Fix typo.
697
698 2016-10-12 Jonathan Wakely <jwakely@redhat.com>
699
700 * doc/xml/manual/status_cxx2017.xml: Add std::sample status.
701 * doc/html/*: Regenerate.
702 * include/experimental/algorithm (__sample): Move to bits/stl_algo.h
703 and into namespace std.
704 * include/bits/stl_algo.h (__sample): Define here. Fix invalid use
705 of input iterator. Defend against overloaded comma operator.
706 (sample): Define for C++17.
707 * testsuite/25_algorithms/sample/1.cc: New test.
708
709 * testsuite/util/testsuite_common_types.h
710 (bitwise_assignment_operators): Use direct-initialization for C++11
711 and later, to avoid CopyConstructible requirement.
712 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error
713 line numbers.
714 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
715 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
716 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
717 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
718 Adjust expected errors and line numbers.
719
720 * include/std/mutex [_GLIBCXX_HAVE_TLS] (_Once_call): Remove.
721 (call_once) [_GLIBCXX_HAVE_TLS]: Simplify by removing _Once_call.
722
723 * include/bits/stl_uninitialized.h
724 (__uninitialized_default_novalue_n_1<true>): Add missing return.
725 * testsuite/20_util/specialized_algorithms/memory_management_tools/
726 1.cc: Check return values of uninitialized_xxx_n algorithms.
727
728 * libsupc++/nested_exception.h (throw_with_nested): Remove return.
729
730 * doc/xml/manual/intro.xml: Document LWG 2442 status.
731 * include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove.
732 [_GLIBCXX_HAVE_TLS] (_Once_call): Declare primary template and define
733 partial specialization to unpack args and forward to std::invoke.
734 (call_once) [_GLIBCXX_HAVE_TLS]: Use forward_as_tuple and _Once_call
735 instead of __bind_simple and __once_call_impl.
736 (call_once) [!_GLIBCXX_HAVE_TLS]: Use __invoke instead of
737 __bind_simple.
738 * testsuite/30_threads/call_once/dr2442.cc: New test.
739
740 2016-10-11 Jonathan Wakely <jwakely@redhat.com>
741
742 * include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
743 _M_assign_dispatch directly with correct tag.
744
745 * doc/xml/manual/intro.xml: Document LWG 2484 status.
746 * libsupc++/nested_exception.h (_Throw_with_nested_impl)
747 (_Throw_with_nested_helper): Remove.
748 (__throw_with_nested_impl): New overloaded functions to implement
749 throw_with_nested logic.
750 (throw_with_nested): Call __throw_with_nested_impl.
751 (_Rethrow_if_nested_impl): Remove
752 (__rethrow_if_nested_impl): New overloaded functions to implement
753 rethrow_if_nested logic.
754 (rethrow_if_nested): Call __rethrow_if_nested_impl.
755 * testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test
756 problem cases from LWG 2484.
757
758 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
759 Register printer for std::__cxx11::list.
760 * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match
761 std::__cxx11::list as well as std::list.
762
763 * include/experimental/string_view (basic_string_view::_S_compare):
764 Remove redundant const from return type.
765 * include/std/string_view (basic_string_view:_S_compare): Likewise.
766
767 * include/bits/std_mutex.h (mutex::native_handle)
768 (lock_guard(mutex_type&, adopt_lock_t)
769 (unique_lock(mutex_type&, adopt_lock_t): Add noexcept.
770 * include/std/mutex (recursive_mutex, timed_mutex)
771 (recursive_timed_mutex): Likewise.
772
773 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
774
775 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
776 Replace <literallayout> with nested <variablelist> elements. Update
777 some more outdated text.
778 * doc/html/*: Regenerate.
779
780 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
781
782 Make any's copy assignment operator exception-safe,
783 don't copy the underlying value when any is moved,
784 make in_place constructors explicit.
785 * include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
786 Make explicit.
787 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
788 Likewise.
789 (operator=(const any&)): Make strongly exception-safe.
790 (operator=(any&&)): reset() unconditionally in the case where
791 rhs has a value.
792 (operator=(_ValueType&&)): Indent the return type.
793 (_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
794 * testsuite/20_util/any/assign/2.cc: Adjust.
795 * testsuite/20_util/any/assign/exception.cc: New.
796 * testsuite/20_util/any/cons/2.cc: Adjust.
797 * testsuite/20_util/any/cons/explicit.cc: New.
798 * testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.
799
800 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
801
802 * doc/xml/manual/appendix_contributing.xml (contrib.organization):
803 Describe other subdirectories and add markup. Remove outdated
804 reference to check-script target.
805 * doc/html/*: Regenerate.
806
807 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
808
809 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
810 with noexcept.
811
812 * include/std/functional (_Bind_result::__enable_if_void): Use alias
813 template instead of class template.
814 (_Bind_result::__disable_if_void): Likewise.
815 (_Bind_result::__call): Adjust uses of __enable_if_void and
816 __disable_if_void.
817
818 * doc/xml/manual/intro.xml: Document DR 2296 status.
819 * doc/xml/manual/status_cxx2017.xml: Update status.
820 * include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
821 call __builtin_addressof.
822 (addressof): Add _GLIBCXX17_CONSTEXPR.
823 * testsuite/20_util/addressof/requirements/constexpr.cc: New test.
824 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
825 * testsuite/20_util/forward/f_neg.cc: Likewise.
826
827 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
828 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
829 is_always_equal.
830 * testsuite/util/testsuite_allocator.h
831 (uneq_allocator::is_always_equal): Define as false_type.
832
833 * include/experimental/numeric (gcd, lcm): Make bool arguments
834 ill-formed.
835 * include/std/numeric (gcd, lcm): Likewise.
836 * testsuite/26_numerics/gcd/gcd_neg.cc: New test.
837 * testsuite/26_numerics/lcm/lcm_neg.cc: New test.
838
839 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
840 Add noexcept.
841 * include/bits/shared_ptr_base.h
842 (__enable_shared_from_this::weak_from_this): Likewise.
843 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
844 Test exception-specification of weak_from_this.
845
846 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
847
848 * doc/xml/manual/status_cxx1998.xml: Improve documentation of
849 implementation-defined properties.
850 * doc/xml/manual/status_cxx2011.xml: Likewise.
851 * doc/xml/manual/status_cxx2017.xml: Likewise.
852
853 * doc/xml/manual/status_cxx2017.xml: Update status.
854 * include/std/type_traits (has_unique_object_representations): Define.
855 * testsuite/20_util/has_unique_object_representations/value.cc: New.
856 * testsuite/20_util/has_unique_object_representations/requirements/
857 explicit_instantiation.cc: New.
858 * testsuite/20_util/has_unique_object_representations/requirements/
859 typedefs.cc: New.
860
861 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
862
863 * doc/xml/manual/status_cxx2011.xml: Update status.
864 * include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
865 New helpers for recursive OUTERMOST.
866 (__outermost): Use __outermost_type::_S_outermost.
867 (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
868 (scoped_allocator_adaptor::__outermost_alloc_traits): Use new
869 __outermost_type helper.
870 (scoped_allocator_adaptor::_Constructible): New alias template.
871 (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>):
872 Constrain template constructors.
873 * testsuite/20_util/scoped_allocator/3.cc: New test.
874 * testsuite/20_util/scoped_allocator/outermost.cc: New test.
875
876 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
877
878 PR libstdc++/70564
879 * testsuite/20_util/not_fn/1.cc: Fix test.
880 * testsuite/experimental/functional/not_fn.cc: Likewise.
881
882 PR libstdc++/70101
883 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
884 constructors.
885 * testsuite/23_containers/priority_queue/allocator.cc: New test.
886
887 PR libstdc++/77864
888 * include/bits/stl_map.h (map::map()): Use nothrow constructibility
889 of comparison function in conditional noexcept.
890 * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
891 * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
892 * include/bits/stl_set.h (set::set()): Likewise.
893 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
894 New test.
895 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
896 Likewise.
897 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
898 Likewise.
899 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
900 Likewise.
901
902 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
903 alias declaration.
904
905 PR libstdc++/70564
906 * include/experimental/functional (_Not_fn): Remove.
907 (not_fn): Use std::_Not_fn.
908 * include/std/functional (_Not_fn): Add second parameter to
909 disambiguate copying from initialization by not_fn. Define for C++14.
910 (not_fn): Add second argument to initialization.
911 * testsuite/20_util/not_fn/1.cc: Copy call wrapper using
912 direct-initialization.
913
914 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
915
916 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
917 declaration...
918 * src/c++11/mutex_pool.h: ... here. New.
919 * src/c++11/debug.cc: Use latter.
920
921 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
922
923 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
924 * doc/html/*: Regenerate.
925 * include/experimental/numeric (__abs): Move to <numeric>.
926 (gcd, lcm): Use __detail::gcd and __detail::lcm.
927 * include/std/numeric (__detail::__abs_integral)
928 (__detail::__gcd, __detail::__lcm): Define.
929 (gcd, lcm): Define for C++17.
930 * testsuite/26_numerics/gcd/1.cc: New test.
931 * testsuite/26_numerics/lcm/1.cc: New test.
932 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
933 * testsuite/experimental/numeric/lcd.cc: ... this.
934
935 PR libstdc++/68323
936 PR libstdc++/77794
937 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
938 __cxa_thread_atexit and __gnu_cxx::__freeres.
939 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
940 * include/Makefile.in: Regenerate.
941 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
942 * include/bits/c++config: Declare versioned namespaces for literals.
943 * include/bits/regex.h (basic_regex, match_results): Add workarounds
944 for PR c++/59256.
945 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
946 * include/std/chrono: Likewise.
947 * include/std/complex: Likewise.
948 * include/std/string_view: Likewise.
949 * include/std/variant: Likewise. Add workaround for PR c++/59256.
950 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
951 * include/experimental/bits/lfts_config.h: Declare versioned
952 namespaces.
953 * include/experimental/algorithm: Include
954 <experimental/bits/lfts_config.h>.
955 * include/experimental/any: Likewise.
956 * include/experimental/bits/erase_if.h: Likewise.
957 * include/experimental/chrono: Likewise.
958 * include/experimental/functional: Likewise.
959 * include/experimental/memory_resource: Likewise.
960 * include/experimental/optional: Likewise.
961 * include/experimental/propagate_const: Likewise.
962 * include/experimental/random: Likewise.
963 * include/experimental/ratio: Likewise.
964 * include/experimental/system_error: Likewise.
965 * include/experimental/tuple: Likewise.
966 * include/experimental/type_traits: Likewise.
967 * include/experimental/utility: Likewise.
968 * include/experimental/string_view: Likewise. Fix nesting of
969 versioned namespaces.
970 * include/experimental/bits/string_view.tcc: Reopen inline namespace
971 for non-inline function definitions.
972 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
973 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
974 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
975 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
976 Likewise.
977 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
978 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
979 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
980 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
981 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
982 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
983
984 PR libstdc++/77814
985 * include/bits/std_abs.h: Use "C++" language linkage.
986 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
987 the end. Add <stdalign.h>.
988
989 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
990
991 PR libstdc++/77802
992 * testsuite/20_util/tuple/77802.cc: New.
993
994 Revert:
995 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
996 Implement LWG 2729 for tuple.
997 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
998 Suppress conditionally.
999 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
1000 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
1001 (_Tuple_impl(const _Head&)): Constrain.
1002 (_Tuple_impl(_UHead&&)): Likewise.
1003 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
1004 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
1005 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
1006 (operator=(const tuple&)): Enable conditionally.
1007 (operator=(tuple&&)): Suppress conditionally.
1008 (operator=(const tuple<_UElements...>&)): Constrain.
1009 (operator=(tuple<_UElements...>&&)): Likewise.
1010 (operator=(const tuple&)): Enable conditionally (2-param tuple).
1011 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
1012 (operator=(const tuple<_U1, _U2>&)): Constrain.
1013 (operator=(tuple<_U1, _U2>&&)): Likewise.
1014 (operator=(const pair<_U1, _U2>&)): Likewise.
1015 (operator=(pair<_U1, _U2>&&)): Likewise.
1016 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
1017 * testsuite/20_util/tuple/tuple_traits.cc: New.
1018
1019 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
1020
1021 PR libstdc++/77795
1022 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
1023 for gets.
1024 * config.h.in: Regenerate.
1025 * configure: Regenerate.
1026 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
1027 for C++98 and C++11.
1028 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
1029 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
1030
1031 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
1032 * doc/html/*: Regenerate.
1033 * include/Makefile.am: Add bits/std_abs.h.
1034 * include/Makefile.in: Regenerate.
1035 * include/bits/std_abs.h: New header defining all required overloads
1036 of std::abs in one place (LWG 2294).
1037 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
1038 Move to bits/std_abs.h.
1039 (abs<_Tp>(_Tp)): Remove.
1040 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
1041 Move to bits/std_abs.h.
1042 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
1043 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
1044 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
1045 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
1046
1047 PR libstdc++/77801
1048 * include/experimental/numeric: Include <numeric>.
1049 (__abs): Define.
1050 (gcd, lcm): Use __abs instead of std::abs.
1051 * testsuite/experimental/numeric/77801.cc: New test.
1052 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
1053 * testsuite/experimental/numeric/lcm.cc: Likewise.
1054
1055 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1056
1057 Make optional::reset noexcept, make optional::value
1058 work in constant expressions.
1059 * include/std/optional (_M_get): Make constexpr.
1060 (reset): Make noexcept.
1061 * testsuite/20_util/optional/assignment/7.cc: New.
1062 * testsuite/20_util/optional/observers/6.cc: New.
1063
1064 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
1065
1066 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
1067 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
1068
1069 2016-09-29 Alan Modra <amodra@gmail.com>
1070
1071 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
1072 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
1073 Use LONG_DOUBLE_COMPAT_FLAGS.
1074 * Makefile.in: Regenerate.
1075 * configure: Regenerate.
1076 * doc/Makefile.in: Regenerate.
1077 * include/Makefile.in: Regenerate.
1078 * libsupc++/Makefile.in: Regenerate.
1079 * po/Makefile.in: Regenerate.
1080 * python/Makefile.in: Regenerate.
1081 * src/Makefile.in: Regenerate.
1082 * src/c++11/Makefile.in: Regenerate.
1083 * src/c++98/Makefile.in: Regenerate.
1084 * src/filesystem/Makefile.in: Regenerate.
1085 * testsuite/Makefile.in: Regenerate.
1086
1087 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
1088
1089 * include/std/chrono (system_clock): Fix typo in comment.
1090
1091 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
1092 definition.
1093 * src/filesystem/ops.cc (file_time): Take error_code parameter and
1094 check for overflow.
1095 (do_copy_file, last_write_time): Pass error_code in file_time calls.
1096 * testsuite/experimental/filesystem/operations/last_write_time.cc:
1097 New.
1098 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
1099
1100 PR libstdc++/77686
1101 * include/std/functional (_Any_data): Add may_alias attribute.
1102
1103 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
1104
1105 * doc/xml/manual/status_cxx2017.xml: Update status.
1106 * doc/html/*: Regenerate.
1107 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
1108 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
1109
1110 * doc/xml/manual/status_cxx2017.xml: Update status.
1111 * include/c_global/cmath (hypot): Add three-dimensional overloads.
1112 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
1113
1114 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
1115
1116 PR libstdc++/77727
1117 * include/std/optional (optional(const optional<_Up>&)):
1118 Default-initialize the base and use emplace.
1119 (optional(optional<_Up>&&)): Likewise.
1120 * testsuite/20_util/optional/cons/77727.cc: New.
1121
1122 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
1123
1124 * include/debug/safe_base.h
1125 (_Safe_iterator_base::_M_detach_single): Make public.
1126
1127 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
1128
1129 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
1130 redefine macro defined in <bits/stl_iterator.h>.
1131
1132 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
1133 iterator is not past-the-end.
1134 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
1135 Likewise.
1136 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
1137 Likewise.
1138 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
1139 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
1140 (unordered_multimap::extract(const_iterator)): Likewise.
1141 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
1142 (unordered_multiset::extract(const_iterator)): Likewise.
1143
1144 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
1145
1146 PR libstdc++/77717
1147 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1148 Fix an out-of-bounds access.
1149
1150 2016-09-26 Marek Polacek <polacek@redhat.com>
1151
1152 PR c/7652
1153 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
1154
1155 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
1156
1157 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
1158 functional.
1159 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
1160 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
1161
1162 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
1163 bitset*)): Remove __unused__ attribute.
1164 * include/debug/safe_base.h (_Safe_iterator_base): Make
1165 _Safe_sequence_base a friend.
1166 (_Safe_iterator_base::_M_attach): Make protected.
1167 (_Safe_iterator_base::_M_attach_single): Likewise.
1168 (_Safe_iterator_base::_M_detach): Likewise.
1169 (_Safe_iterator_base::_M_detach_single): Likewise.
1170 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
1171 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
1172 (_Safe_sequence_base::_M_swap): Make protected.
1173 (_Safe_sequence_base::_M_attach): Make private.
1174 (_Safe_sequence_base::_M_attach_single): Likewise.
1175 (_Safe_sequence_base::_M_detach): Likewise.
1176 (_Safe_sequence_base::_M_detach_single): Likewise.
1177 * include/debug/safe_container.h
1178 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
1179 * include/debug/safe_iterator.h
1180 (_Safe_iterator::operator++()): Name __scoped_lock instance.
1181 * include/debug/safe_iterator.tcc: Remove trailing line.
1182 * include/debug/safe_unordered_base.h
1183 (_Safe_local_iterator_base::_M_attach): Make protected.
1184 (_Safe_local_iterator_base::_M_attach_single): Likewise.
1185 (_Safe_local_iterator_base::_M_detach): Likewise.
1186 (_Safe_local_iterator_base::_M_detach_single): Likewise.
1187 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
1188 (_Safe_unordered_container_base::_M_attach_local): Make private.
1189 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
1190 (_Safe_unordered_container_base::_M_detach_local): Likewise.
1191 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
1192
1193 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
1194 Adjust whitespaces.
1195
1196 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
1197
1198 PR libstdc++/56166
1199 PR libstdc++/77582
1200 * include/bits/basic_string.h (basic_string::clear()): Drop reference
1201 and use empty rep.
1202 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
1203 Likewise.
1204 * testsuite/21_strings/basic_string/56166.cc: New.
1205 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
1206
1207 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1208 (basic_string::erase(size_type, size_type)): Add fast path for
1209 truncating the string, by calling _M_set_length directly.
1210 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
1211 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
1212 (basic_string::resize(size_type, _CharT)): Likewise.
1213
1214 2016-09-22 Jason Merrill <jason@redhat.com>
1215
1216 * configure.ac: Define HAVE_MEMALIGN for newlib.
1217
1218 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
1219
1220 * config/cpu/m68k/atomicity.h: Adjust comment.
1221 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
1222 explicit atomicity_dir setup via configure.host.
1223 * configure.host (rtems-*): Set atomicity_dir.
1224 * configure: Regenerate.
1225
1226 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
1227
1228 Implement C++17 node extraction and insertion (P0083R5)
1229 * doc/xml/manual/status_cxx2017.xml: Document status.
1230 * doc/html/*: Regenerate.
1231 * include/Makefile.am: Add bits/node_handle.h and reorder.
1232 * include/Makefile.in: Regenerate.
1233 * include/bits/hashtable.h (_Hashtable::node_type)
1234 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
1235 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
1236 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
1237 (_Hash_merge_helper): Define primary template.
1238 * include/bits/node_handle.h: New header.
1239 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
1240 friend.
1241 (map::node_type, map::insert_return_type, map::extract, map::merge)
1242 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
1243 Define new members.
1244 (_Rb_tree_merge_helper): Specialize for map.
1245 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
1246 as friend.
1247 (multimap::node_type, multimap::extract, multimap::merge)
1248 (multimap::insert(node_type&&))
1249 (multimap::insert(const_iterator, node_type&&)): Define.
1250 (_Rb_tree_merge_helper): Specialize for multimap.
1251 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
1252 as friend.
1253 (multiset::node_type, multiset::extract, multiset::merge)
1254 (multiset::insert(node_type&&))
1255 (multiset::insert(const_iterator, node_type&&)): Define.
1256 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
1257 friend.
1258 (set::node_type, set::insert_return_type, set::extract, set::merge)
1259 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
1260 Define.
1261 (_Rb_tree_merge_helper): Specialize for set.
1262 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
1263 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
1264 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
1265 (_Rb_tree::_M_reinsert_node_hint_unique)
1266 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
1267 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
1268 (_Rb_tree_merge_helper): Specialize for multiset.
1269 * include/bits/unordered_map.h (unordered_map): Declare
1270 unordered_map<> and unordered_multimap<> as friends.
1271 (unordered_map::node_type, unordered_map::insert_return_type)
1272 (unordered_map::extract, unordered_map::merge)
1273 (unordered_map::insert(node_type&&))
1274 (unordered_map::insert(const_iterator, node_type&&))
1275 (unordered_multimap): Declare _Hash_merge_helper as friend.
1276 (unordered_multimap::node_type, unordered_multimap::extract)
1277 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
1278 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
1279 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
1280 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
1281 Declare _Hash_merge_helper as friend.
1282 (unordered_set::node_type, unordered_set::insert_return_type)
1283 (unordered_set::extract, unordered_set::merge)
1284 (unordered_set::insert(node_type&&))
1285 (unordered_set::insert(const_iterator, node_type&&)): Define.
1286 (unordered_multiset::node_type, unordered_multiset::extract)
1287 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
1288 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
1289 (_Hash_merge_helper): Specialize for unordered sets and multisets.
1290 * include/debug/map.h (map): Add using declarations or forwarding
1291 functions for new members.
1292 * include/debug/map.h (multimap): Likewise.
1293 * include/debug/map.h (multiset): Likewise.
1294 * include/debug/map.h (set): Likewise.
1295 * include/debug/unordered_map (unordered_map, unordered_multimap):
1296 Likewise.
1297 * include/debug/unordered_set( unordered_set, unordered_multiset):
1298 Likewise.
1299 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
1300 helper function.
1301 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
1302 (StdNodeHandlePrinter): Define printer for node handles.
1303 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
1304 * testsuite/23_containers/map/modifiers/extract.cc: New.
1305 * testsuite/23_containers/map/modifiers/merge.cc: New.
1306 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
1307 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
1308 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
1309 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
1310 * testsuite/23_containers/set/modifiers/extract.cc: New.
1311 * testsuite/23_containers/set/modifiers/merge.cc: New.
1312 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
1313 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
1314 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1315 New.
1316 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
1317 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1318 New.
1319 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
1320 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
1321 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
1322 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
1323 dg-error lineno.
1324 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
1325
1326 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
1327
1328 Fix tests on old arm platforms for optional.
1329 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
1330
1331 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
1332
1333 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
1334 recent change to _Variant_storage.
1335 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
1336 reference type.
1337
1338 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
1339 std::forward and ::new. Cast pointer to void*.
1340 * include/std/variant (_Variant_storage, _Union, _Variant_base)
1341 (__access, __visit_invoke, variant, visit): Qualify std::forward.
1342 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
1343
1344 2016-09-22 Tim Shen <timshen@google.com>
1345
1346 * include/std/variant (variant::operator=): Fix assignment
1347 on references.
1348 * testsuite/20_util/variant/compile.cc: Add test.
1349
1350 2016-09-22 Tim Shen <timshen@google.com>
1351
1352 PR libstdc++/77641
1353 * include/std/variant (_Variant_storage::_Variant_storage):
1354 Change _Variant_storage's union to be default constructible.
1355 * testsuite/20_util/variant/compile.cc: New test.
1356
1357 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1358
1359 PR libstdc++/77288
1360 * include/std/optional (__is_optional_impl, __is_optional): Remove.
1361 (__converts_from_optional, __assigns_from_optional): New.
1362 (optional(_Up&&)): Use is_same instead of __is_optional.
1363 (optional(const optional<_Up>&)): Constrain with
1364 __converts_from_optional.
1365 (optional(optional<_Up>&&)): Likewise.
1366 (operator=(_Up&&)): Use is_same instead of __is_optional, check
1367 is_same and is_scalar.
1368 (operator=(const optional<_Up>&)): Constrain with
1369 __converts_from_optional and __assigns_from_optional.
1370 (operator=(optional<_Up>&&)): Likewise.
1371 * testsuite/20_util/optional/77288.cc: New.
1372 * testsuite/20_util/optional/cons/value.cc: Adjust.
1373
1374 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1375
1376 Implement LWG 2729 for tuple.
1377 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
1378 Suppress conditionally.
1379 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
1380 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
1381 (_Tuple_impl(const _Head&)): Constrain.
1382 (_Tuple_impl(_UHead&&)): Likewise.
1383 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
1384 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
1385 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
1386 (operator=(const tuple&)): Enable conditionally.
1387 (operator=(tuple&&)): Suppress conditionally.
1388 (operator=(const tuple<_UElements...>&)): Constrain.
1389 (operator=(tuple<_UElements...>&&)): Likewise.
1390 (operator=(const tuple&)): Enable conditionally (2-param tuple).
1391 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
1392 (operator=(const tuple<_U1, _U2>&)): Constrain.
1393 (operator=(tuple<_U1, _U2>&&)): Likewise.
1394 (operator=(const pair<_U1, _U2>&)): Likewise.
1395 (operator=(pair<_U1, _U2>&&)): Likewise.
1396 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
1397 * testsuite/20_util/tuple/tuple_traits.cc: New.
1398
1399 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
1400
1401 PR libstdc++/77537
1402 Implement LWG 2729 for pair.
1403 * include/bits/stl_pair.h (_PCC): New.
1404 (_ConstructiblePair, _ImplicitlyConvertiblePair):
1405 Turn into static member functions of _PCC.
1406 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
1407 (_PCCP): New.
1408 (pair(const _T1&, const _T2&)): Adjust.
1409 (_PCCFP): New.
1410 (pair(const pair<_U1, _U2>&)): Adjust.
1411 (pair(_U1&&, const _T2&)): Likewise.
1412 (pair(const _T1&, _U2&&)): Likewise.
1413 (pair(_U1&&, _U2&&)): Likewise.
1414 (pair(pair<_U1, _U2>&&)): Likewise.
1415 (operator=(const pair&)): Make conditionally deleted.
1416 (operator=(pair&&)): Make conditionally suppressed.
1417 (operator=(const pair<_U1, _U2>&)): Constrain.
1418 (operator=(pair<_U1, _U2>&&): Likewise.
1419 * include/std/type_traits (__nonesuch): New.
1420 * testsuite/20_util/pair/traits.cc: New.
1421
1422 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
1423
1424 PR libstdc++/77619
1425 * include/bits/stl_construct.h: (_Construct_novalue): New.
1426 (_Destroy_n_aux, _Destroy_n): New.
1427 * include/bits/stl_uninitialized.h: (type_traits):
1428 New include in C++11 mode.
1429 (__uninitialized_default_novalue_1): New.
1430 (__uninitialized_default_novalue_n_1): Likewise.
1431 (__uninitialized_default_novalue): Likewise.
1432 (__uninitialized_default_novalue_n): Likewise.
1433 (__uninitialized_copy_n_pair): Likewise.
1434 (uninitialized_default_construct):
1435 Use __uninitialized_default_novalue.
1436 (uninitialized_default_construct_n):
1437 Use __uninitialized_default_novalue_n.
1438 (uninitialized_value_construct): Use __uninitialized_default.
1439 (uninitialized_value_construct_n): Use __uninitialized_default_n.
1440 (uninitialized_move): Use uninitialized_copy.
1441 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
1442 (destroy_at): Use _Destroy.
1443 (destroy): Likewise.
1444 (destroy_n): Likewise.
1445 * testsuite/20_util/specialized_algorithms/
1446 memory_management_tools/1.cc: Add tests for exceptions,
1447 add tests for trivial cases for construct and move.
1448
1449 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
1450
1451 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
1452 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
1453
1454 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
1455
1456 PR libstdc++/77645
1457 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
1458 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
1459 division to int to work with Python 3.
1460
1461 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
1462
1463 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
1464 display_hint to be set by subclasses.
1465 (StdVariantPrinter): Use array for display_hint. Adjust output to be
1466 more similar to std::any and std::optional output.
1467 (register_type_printers): Add type printers for basic_string_view
1468 typedefs and experimental::any. Adjust type printers for
1469 fundamentals_v1 templates to match fundamentals_v2 and later.
1470 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
1471
1472 PR libstdc++/77645
1473 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
1474 argument.
1475 (ListWorkerBase.get_value_from_node): Define new method.
1476 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
1477
1478 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
1479
1480 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
1481 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
1482 Register for C++17 components in namespace std. Strip inline namespace
1483 from typename.
1484
1485 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
1486
1487 * doc/xml/manual/profile_mode.xml: Fix typo.
1488 * doc/html/manual/profile_mode_devel.html: Regenerate.
1489
1490 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
1491 Marc Glisse <marc.glisse@inria.fr>
1492
1493 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
1494 (operator new(size_t, align_val_t)): Replace modulus operator with
1495 mask.
1496
1497 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
1498
1499 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
1500 Increase alignment if less than sizeof(void*).
1501 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
1502 Increase size if not a multiple of alignment.
1503
1504 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
1505
1506 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
1507 * doc/html/*: Regenerate.
1508
1509 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
1510 -Wno-deprecated.
1511 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
1512
1513 2016-09-14 Marek Polacek <polacek@redhat.com>
1514
1515 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
1516 -Wno-deprecated.
1517
1518 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
1519
1520 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
1521 Move dg-do directive before dg-skip.
1522 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
1523 Move dg-do directive before dg-require.
1524 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
1525 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
1526 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
1527 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
1528 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
1529 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
1530 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
1531 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
1532 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
1533 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
1534 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
1535 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
1536 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
1537 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
1538 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
1539 Likewise.
1540 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
1541 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
1542 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
1543 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
1544 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1545
1546 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1547
1548 Implement P0040R3, Extending memory management tools.
1549 * include/bits/stl_uninitialized.h (utility): New include
1550 in C++17 mode.
1551 (uninitialized_default_construct): New.
1552 (uninitialized_default_construct_n): Likewise.
1553 (uninitialized_value_construct): Likewise.
1554 (uninitialized_value_construct_n): Likewise.
1555 (uninitialized_move): Likewise.
1556 (uninitialized_move_n): Likewise.
1557 (destroy_at, destroy, destroy_n): Likewise.
1558 * testsuite/20_util/specialized_algorithms/memory_management_tools/
1559 1.cc: New.
1560
1561 2016-09-12 Jason Merrill <jason@redhat.com>
1562
1563 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
1564
1565 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1566
1567 Implement P0253R1, Fixing a design mistake in the searchers
1568 interface in Library Fundamentals.
1569 * include/std/functional: (utility): New include in C++17 mode.
1570 (default_searcher): Use a pair as return type, adjust the definition.
1571 (boyer_moore_searcher): Likewise.
1572 (boyer_moore_horspool_searcher): Likewise.
1573 * testsuite/20_util/function_objects/searchers.cc: Adjust.
1574
1575 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1576
1577 Implement C++17 string searchers.
1578 * include/std/functional: (unordered_map, vector): New includes
1579 in C++17 mode.
1580 (array, bits/stl_algo.h): Likewise.
1581 (default_searcher, __boyer_moore_map_base): New.
1582 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
1583 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
1584 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
1585 (make_boyer_moore_searcher): Likewise.
1586 (make_boyer_moore_horspool_searcher): Likewise.
1587 * testsuite/20_util/function_objects/searchers.cc: New.
1588
1589 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
1590
1591 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
1592 Move dg-do directive before dg-require.
1593 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
1594 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
1595 Likewise.
1596 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
1597 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
1598 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
1599 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
1600 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
1601 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
1602 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
1603 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
1604 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
1605 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
1606 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
1607 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
1608 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
1609 Likewise.
1610 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
1611 Likewise.
1612 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
1613 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
1614 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
1615 Likewise.
1616 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
1617 Likewise.
1618 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
1619 Likewise.
1620 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
1621 Likewise.
1622 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
1623 Likewise.
1624 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
1625 Likewise.
1626 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
1627 Likewise.
1628 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
1629 Likewise.
1630 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
1631 Likewise.
1632 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
1633 Likewise.
1634 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
1635 Likewise.
1636 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
1637 Likewise.
1638 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
1639 Likewise.
1640 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
1641 Likewise.
1642 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
1643 Likewise.
1644 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
1645 Likewise.
1646 * testsuite/23_containers/forward_list/debug/
1647 iterator_self_move_assign_neg.cc: Likewise.
1648 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
1649 Likewise.
1650 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
1651 Likewise.
1652 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
1653 Likewise.
1654 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
1655 Likewise.
1656 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
1657 Likewise.
1658 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
1659 Likewise.
1660 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
1661 Likewise.
1662 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
1663 Likewise.
1664 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
1665 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
1666 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
1667 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
1668 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
1669 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
1670 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
1671 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
1672 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
1673 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
1674 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
1675 Likewise.
1676 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
1677 * testsuite/23_containers/map/debug/60499.cc: Likewise.
1678 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
1679 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
1680 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
1681 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
1682 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
1683 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
1684 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
1685 Likewise.
1686 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
1687 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
1688 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
1689 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
1690 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
1691 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
1692 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
1693 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
1694 * testsuite/23_containers/multimap/debug/
1695 iterator_self_move_assign_neg.cc: Likewise.
1696 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
1697 Likewise.
1698 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
1699 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
1700 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
1701 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
1702 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
1703 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
1704 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
1705 * testsuite/23_containers/multiset/debug/
1706 iterator_self_move_assign_neg.cc: Likewise.
1707 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
1708 Likewise.
1709 * testsuite/23_containers/set/debug/60499.cc: Likewise.
1710 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
1711 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
1712 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
1713 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
1714 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
1715 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
1716 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
1717 Likewise.
1718 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
1719 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
1720 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
1721 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
1722 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
1723 Likewise.
1724 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
1725 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
1726 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
1727 Likewise.
1728 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
1729 Likewise.
1730 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
1731 Likewise.
1732 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
1733 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
1734 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
1735 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
1736 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
1737 * testsuite/23_containers/unordered_map/debug/
1738 invalid_local_iterator_compare_neg.cc: Likewise.
1739 * testsuite/23_containers/unordered_map/debug/
1740 invalid_local_iterator_range_neg.cc: Likewise.
1741 * testsuite/23_containers/unordered_map/debug/
1742 iterator_self_move_assign_neg.cc: Likewise.
1743 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
1744 Likewise.
1745 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
1746 Likewise.
1747 * testsuite/23_containers/unordered_map/debug/
1748 use_erased_local_iterator_neg.cc: Likewise.
1749 * testsuite/23_containers/unordered_map/debug/
1750 use_invalid_iterator_neg.cc: Likewise.
1751 * testsuite/23_containers/unordered_map/debug/
1752 use_invalid_local_iterator_neg.cc: Likewise.
1753 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
1754 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
1755 Likewise.
1756 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
1757 Likewise.
1758 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
1759 Likewise.
1760 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
1761 Likewise.
1762 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
1763 Likewise.
1764 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
1765 Likewise.
1766 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
1767 Likewise.
1768 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
1769 Likewise.
1770 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1771 Likewise.
1772 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1773 Likewise.
1774 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1775 Likewise.
1776 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1777 Likewise.
1778 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
1779 Likewise.
1780 * testsuite/23_containers/unordered_multimap/debug/
1781 invalid_local_iterator_compare_neg.cc: Likewise.
1782 * testsuite/23_containers/unordered_multimap/debug/
1783 invalid_local_iterator_range_neg.cc: Likewise.
1784 * testsuite/23_containers/unordered_multimap/debug/
1785 iterator_self_move_assign_neg.cc: Likewise.
1786 * testsuite/23_containers/unordered_multimap/debug/
1787 max_load_factor_neg.cc: Likewise.
1788 * testsuite/23_containers/unordered_multimap/debug/
1789 self_move_assign_neg.cc: Likewise.
1790 * testsuite/23_containers/unordered_multimap/debug/
1791 use_erased_local_iterator_neg.cc: Likewise.
1792 * testsuite/23_containers/unordered_multimap/debug/
1793 use_invalid_iterator_neg.cc: Likewise.
1794 * testsuite/23_containers/unordered_multimap/debug/
1795 use_invalid_local_iterator_neg.cc: Likewise.
1796 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
1797 Likewise.
1798 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1799 Likewise.
1800 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1801 Likewise.
1802 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1803 Likewise.
1804 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1805 Likewise.
1806 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1807 Likewise.
1808 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1809 Likewise.
1810 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1811 Likewise.
1812 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1813 Likewise.
1814 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1815 Likewise.
1816 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1817 Likewise.
1818 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1819 Likewise.
1820 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1821 Likewise.
1822 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
1823 Likewise.
1824 * testsuite/23_containers/unordered_multiset/debug/
1825 invalid_local_iterator_compare_neg.cc: Likewise.
1826 * testsuite/23_containers/unordered_multiset/debug/
1827 invalid_local_iterator_range_neg.cc: Likewise.
1828 * testsuite/23_containers/unordered_multiset/debug/
1829 iterator_self_move_assign_neg.cc: Likewise.
1830 * testsuite/23_containers/unordered_multiset/debug/
1831 max_load_factor_neg.cc: Likewise.
1832 * testsuite/23_containers/unordered_multiset/debug/
1833 self_move_assign_neg.cc: Likewise.
1834 * testsuite/23_containers/unordered_multiset/debug/
1835 use_erased_local_iterator_neg.cc: Likewise.
1836 * testsuite/23_containers/unordered_multiset/debug/
1837 use_invalid_iterator_neg.cc: Likewise.
1838 * testsuite/23_containers/unordered_multiset/debug/
1839 use_invalid_local_iterator_neg.cc: Likewise.
1840 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
1841 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
1842 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
1843 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
1844 Likewise.
1845 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
1846 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
1847 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
1848 Likewise.
1849 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1850 Likewise.
1851 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
1852 Likewise.
1853 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
1854 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
1855 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
1856 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
1857 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
1858 * testsuite/23_containers/unordered_set/debug/
1859 invalid_local_iterator_compare_neg.cc: Likewise.
1860 * testsuite/23_containers/unordered_set/debug/
1861 invalid_local_iterator_range_neg.cc: Likewise.
1862 * testsuite/23_containers/unordered_set/debug/
1863 iterator_self_move_assign_neg.cc: Likewise.
1864 * testsuite/23_containers/unordered_set/debug/
1865 max_load_factor_neg.cc: Likewise.
1866 * testsuite/23_containers/unordered_set/debug/
1867 self_move_assign_neg.cc: Likewise.
1868 * testsuite/23_containers/unordered_set/debug/
1869 use_erased_local_iterator_neg.cc: Likewise.
1870 * testsuite/23_containers/unordered_set/debug/
1871 use_invalid_iterator_neg.cc: Likewise.
1872 * testsuite/23_containers/unordered_set/debug/
1873 use_invalid_local_iterator_neg.cc: Likewise.
1874 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
1875 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
1876 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
1877 * testsuite/23_containers/vector/debug/
1878 iterator_self_move_assign_neg.cc: Likewise.
1879 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
1880 Likewise.
1881 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
1882 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
1883 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1884 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
1885 * testsuite/29_atomics/atomic/60658.cc: Likewise.
1886 * testsuite/29_atomics/atomic/60695.cc: Likewise.
1887 * testsuite/29_atomics/atomic/62259.cc: Likewise.
1888 * testsuite/29_atomics/atomic/64658.cc: Likewise.
1889 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
1890 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
1891 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1892 Likewise.
1893
1894 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1895
1896 * libsupc++/new_opant.cc: Include exception_defines.h.
1897 * libsupc++/new_opvant.cc: Likewise.
1898
1899 2016-09-09 Jason Merrill <jason@redhat.com>
1900
1901 Implement P0035R4, C++17 new of over-aligned types.
1902 * libsupc++/new: Declare aligned new/delete operators.
1903 * config/abi/pre/gnu.ver: Export them.
1904 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
1905 _aligned_malloc.
1906 * libsupc++/new_opa.cc: New.
1907 * libsupc++/new_opant.cc: New.
1908 * libsupc++/new_opva.cc: New.
1909 * libsupc++/new_opva.cc: New.
1910 * libsupc++/del_opa.cc: New.
1911 * libsupc++/del_opant.cc: New.
1912 * libsupc++/del_opsa.cc: New.
1913 * libsupc++/del_opva.cc: New.
1914 * libsupc++/del_opvant.cc: New.
1915 * libsupc++/del_opvsa.cc: New.
1916 * libsupc++/Makefile.am: Build them.
1917
1918 2016-09-05 Tim Shen <timshen@google.com>
1919
1920 * include/std/variant: include bits/move.h for std::addressof.
1921
1922 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1923
1924 * include/std/variant (_Variant_storage::_M_storage()): Use
1925 std::addressof instead of operator& to take address.
1926
1927 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1928
1929 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1930 setrlimit on both native and cross targets.
1931 * configure: Regenerate.
1932
1933 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
1934
1935 * include/bits/shared_ptr.h (_Assignable): New alias template.
1936 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1937 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1938 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1939 _Assignable.
1940 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1941 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1942 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1943 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1944 _Assignable.
1945 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1946 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1947 _Convertible.
1948 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1949 match on any line.
1950 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1951 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1952 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1953 expected errors. Remove unnecessary code.
1954 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1955
1956 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1957 comparison object.
1958 * testsuite/23_containers/set/move_comparison.cc: New test.
1959
1960 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1961 New test.
1962
1963 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1964
1965 PR libstdc++/77395
1966 * include/std/type_traits (is_constructible): Forward-declare...
1967 (__is_base_to_derived_ref): ...and use here.
1968 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1969 * testsuite/20_util/is_constructible/77395.cc: New.
1970 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1971 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1972 Likewise.
1973 * testsuite/20_util/tuple/77395.cc: New.
1974
1975 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
1976
1977 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1978 directive above dg-require-namedlocale directive.
1979 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1980 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1981 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1982 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1983 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1984
1985 2016-08-27 Tim Shen <timshen@google.com>
1986
1987 PR libstdc++/77356
1988 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1989 _M_expression_term): Modify to support dash literal.
1990 * include/bits/regex_scanner.h: Add dash as a token type to make
1991 a different from the mandated dash literal by escaping.
1992 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1993 token in bracket expression parsing.
1994 * testsuite/28_regex/regression.cc: Add new testcases.
1995
1996 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
1997
1998 PR libstdc++/51960
1999 * doc/xml/manual/intro.xml: Document DR 2127 change.
2000 * doc/html/*: Regenerate.
2001 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
2002 (operator++(), operator++(int)): Use injected class name.
2003 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
2004
2005 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
2006 using -std in dg-options.
2007
2008 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
2009 Pedro Alves <palves@redhat.com>
2010
2011 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
2012 and restore dg-interpreter-batch-mode.
2013 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
2014 gdb-dg-runtest instead of dg-runtest.
2015 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
2016
2017 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
2018
2019 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
2020 precise patterns for basic_string constructors.
2021 (GLIBCXX_3.4.23): Export new constructors.
2022 * doc/xml/manual/intro.xml: Document LWG 2583 status.
2023 * doc/html/*: Regenerate.
2024 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2025 (basic_string(const basic_string&, size_type, const Alloc&)): Add
2026 new constructor for LWG 2583.
2027 (basic_string(const basic_string&, size_type, size_type)): Remove
2028 default argument.
2029 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
2030 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
2031 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
2032 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
2033
2034 2016-08-24 Aditya Kumar <hiraditya@msn.com>
2035
2036 * include/bits/algorithmfwd.h: Remove trailing whitespace.
2037 * include/bits/shared_ptr_base.h: Likewise.
2038
2039 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
2040
2041 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
2042 * include/profile/array (array): Likewise.
2043 (array::swap): Fix exception specification for zero-sized arrays.
2044
2045 PR libstdc++/77334
2046 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
2047 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
2048 * testsuite/23_containers/map/77334.cc: New test.
2049
2050 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
2051 * doc/html/*: Regenerate.
2052
2053 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
2054 * testsuite/experimental/feat-lib-fund.cc: Likewise.
2055
2056 PR libstdc++/71771
2057 * include/bits/stl_iterator.h
2058 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
2059 define for C++98 mode.
2060 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
2061 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
2062 -std=gnu++98.
2063 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
2064 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
2065 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
2066 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
2067 difference operator.
2068 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
2069 difference operator for C++98.
2070 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
2071
2072 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
2073 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
2074 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
2075 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
2076 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
2077 Likewise.
2078 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
2079 _GLIBCXX14_CONSTEXPR.
2080 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
2081 * include/std/array (array::begin, array::end, array::rbegin)
2082 (array::rend, array::cbegin, array:cend, array::crbegin)
2083 (array::crend, array::operator[], array::at, array::front)
2084 (array::back, array::data): Likewise.
2085 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
2086 with separate tests for C++11, C++14, and C++17.
2087 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
2088 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
2089 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
2090
2091 2016-08-22 Tim Shen <timshen@google.com>
2092
2093 Split _M_dfs() into smaller functions.
2094 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
2095 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
2096 (_M_handle_line_end_assertion, _M_handle_word_boundary)
2097 (_M_handle_subexpr_lookahead, _M_handle_match)
2098 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
2099 Add separate function declarations.
2100 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
2101
2102 2016-08-22 Gleb Natapov <gleb@scylladb.com>
2103
2104 PR libstdc++/68297
2105 * config/abi/pre/gnu-versioned-namespace.ver: Export
2106 __cxa_init_primary_exception and std::exception_ptr(void*).
2107 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
2108 export __cxa_init_primary_exception and std::exception_ptr(void*).
2109 * include/Makefile.am: Add new headers.
2110 * include/Makefile.in: Regenerate.
2111 * libsupc++/Makefile.am: Add new headers.
2112 * libsupc++/Makefile.in: Regenerate.
2113 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
2114 * libsupc++/cxxabi_init_exception.h: New header.
2115 (__cxa_init_primary_exception): Declare.
2116 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
2117 (__cxa_throw): Use __cxa_init_primary_exception.
2118 * libsupc++/exception (std::exception): Move to ...
2119 * libsupc++/exception.h: New header.
2120 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
2121 friend declaration.
2122 (__exception_ptr::__dest_thunk): New function template.
2123 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
2124 Use __cxa_allocate_exception and __cxa_init_primary_exception to
2125 create exception_ptr.
2126 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
2127 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
2128
2129 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
2130
2131 * doc/xml/api.xml: Replace hardcoded links for specific versions with
2132 link to docs for all releases.
2133 * doc/html/*: Regenerate.
2134
2135 PR libstdc++/77322
2136 * doc/xml/manual/intro.xml: Document DR 2062 change.
2137 * include/std/functional (function::swap): Add noexcept.
2138 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
2139 * testsuite/20_util/function/77322.cc: New test.
2140
2141 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
2142
2143 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
2144 *-*-solaris* instead of -pthreads.
2145 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
2146 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
2147 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
2148 * testsuite/23_containers/list/pthread1.cc: Likewise.
2149 * testsuite/23_containers/list/pthread5.cc: Likewise.
2150 * testsuite/23_containers/map/pthread6.cc: Likewise.
2151 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
2152 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
2153 * testsuite/30_threads/shared_mutex/*: Likewise.
2154 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
2155 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
2156 default_weaktoshared.cc: Likewise.
2157 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
2158 mutex_weaktoshared.cc: Likewise.
2159 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
2160 dg-require-effective-target instead of using -std option.
2161 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2162 Likewise.
2163 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2164 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
2165 Likewise.
2166 * testsuite/30_threads/async/*: Likewise.
2167 * testsuite/30_threads/call_once/*: Likewise.
2168 * testsuite/30_threads/condition_variable/*: Likewise.
2169 * testsuite/30_threads/condition_variable_any/*: Likewise.
2170 * testsuite/30_threads/future/*: Likewise.
2171 * testsuite/30_threads/lock/*: Likewise.
2172 * testsuite/30_threads/mutex/*: Likewise.
2173 * testsuite/30_threads/packaged_task/*: Likewise.
2174 * testsuite/30_threads/promise/*: Likewise.
2175 * testsuite/30_threads/recursive_mutex/*: Likewise.
2176 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
2177 * testsuite/30_threads/shared_future/*: Likewise.
2178 * testsuite/30_threads/shared_lock/*: Likewise.
2179 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
2180 * testsuite/30_threads/this_thread/*: Likewise.
2181 * testsuite/30_threads/thread/*: Likewise.
2182 * testsuite/30_threads/timed_mutex/*: Likewise.
2183 * testsuite/30_threads/try_lock/*: Likewise.
2184 * testsuite/30_threads/unique_lock/*: Likewise.
2185
2186 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
2187 * doc/html/*: Regenerate.
2188 * include/experimental/functional (_Not_fn, not_fn): Match C++17
2189 semantics.
2190 * include/std/functional (_Not_fn, not_fn): Define for C++17.
2191 * testsuite/20_util/not_fn/1.cc: New.
2192 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
2193 Remove test for volatile-qualified wrapper.
2194
2195 * include/std/atomic (atomic::is_always_lock_free): Define.
2196 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
2197 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
2198 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
2199 * doc/xml/manual/status_cxx2017.xml: Update status.
2200 * doc/html/*: Regenerate.
2201
2202 * include/experimental/tuple (apply): Qualify call to __apply_impl.
2203 * include/std/tuple (apply): Likewise.
2204 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
2205 C++17 mode.
2206 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
2207 * testsuite/experimental/type_traits/value.cc: Likewise.
2208
2209 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
2210 and variant.
2211 * doc/html/*: Regenerate.
2212
2213 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2214
2215 Implement the latest proposed resolution of LWG 2756.
2216 * include/std/optional (Optional_base(const _Tp&))
2217 (Optional_base(_Tp&&), using _Base::_Base): Remove.
2218 (optional(nullopt_t)): New.
2219 (optional(_Up&&)): Invoke base directly with in_place
2220 rather than creating a temporary, add default template
2221 argument, change constraints.
2222 (optional(const optional<_Up>&)): Invoke base directly
2223 with in_place, remove unnecessary constraints.
2224 (optional(optional<_Up>&& __t)): Likewise.
2225 (optional(in_place_t, _Args&&...)): New.
2226 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
2227 (operator=(_Up&&)): Add default template argument, change constraints.
2228 (operator=(const optional<_Up>&)): Put is_same first in the
2229 constraints.
2230 (operator=(optional<_Up>&&)): Likewise.
2231 * testsuite/20_util/optional/assignment/5.cc: Add a test to
2232 verify assignment from something that can't be perfect-forwarded.
2233 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
2234 that a nested optional is disengaged when constructed
2235 from a disengaged element type, and to verify that assignments
2236 from an engaged element type engage the optional.
2237
2238 2016-08-18 Tim Shen <timshen@google.com>
2239
2240 Implement <variant>
2241
2242 * include/Makefile.am: Add new file std/variant.
2243 * include/Makefile.in: Generated from Makefile.am.
2244 * include/bits/enable_special_members.h: Add a tag type to allow
2245 the construction in non-default constructor.
2246 * include/bits/uses_allocator.h: Add convenience traits to
2247 detect constructibility.
2248 * include/std/variant: Implement <variant>.
2249 * testsuite/20_util/variant/compile.cc: Compile-time tests.
2250 * testsuite/20_util/variant/run.cc: Runtime tests.
2251
2252 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
2253
2254 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
2255 (test.new_tests): Rewrite section.
2256 (tests.dg.directives): New section.
2257 * doc/html/*: Regenerate.
2258
2259 * doc/xml/manual/test.xml: Improve documentation of test targets.
2260 Document new-abi-baseline, check-debug, and check-parallel targets.
2261
2262 * doc/xml/manual/build_hacking.xml: New section on shared library
2263 versioning.
2264
2265 * doc/xml/manual/build_hacking.xml: Improve markup.
2266 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
2267 to "Testing".
2268 * doc/xml/faq.xml: Change link text to "Testing".
2269
2270 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
2271 dg-options directive.
2272
2273 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
2274
2275 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
2276 directive and use effective target instead of dg-options.
2277
2278 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
2279 instead of -std in dg-options.
2280 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
2281 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
2282 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
2283 * testsuite/20_util/hash/quality.cc: Likewise.
2284 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
2285 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
2286 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
2287 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
2288 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
2289 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
2290
2291 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
2292 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
2293 * testsuite/27_io/rvalue_streams.cc: Likewise.
2294
2295 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
2296
2297 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2298 Remove duplicate dg-options directive.
2299
2300 * testsuite/ext/profile/all.cc: Use effective target instead of
2301 -std=gnu++11. Use dg-additional-options instead of repeating options.
2302
2303 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
2304 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
2305 instead of dg-excess-errors.
2306
2307 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
2308 test for C++17.
2309 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
2310 * testsuite/experimental/ratio/value.cc: Likewise.
2311 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
2312 C++17.
2313 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
2314 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
2315 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
2316 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
2317 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
2318 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2319 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
2320 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
2321 * testsuite/tr1/5_numerical_facilities/special_functions/
2322 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
2323 C++17 compatibility.
2324
2325 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
2326 expected signatures for C++14 compatibility.
2327
2328 PR libstdc++/77264
2329 * include/bits/basic_string.h (operator=(__sv_type)
2330 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
2331 (replace(size_type, size_type, __sv_type))
2332 (replace(const_iterator, const_iterator, __sv_type))
2333 (find(__sv_type, size_type), rfind(__sv_type, size_type))
2334 (compare(size_type, size_type, __sv_type)): Reformat.
2335 (_If_sv): Define helper for SFINAE constaints.
2336 (append(const _Tp&, size_type, size_type))
2337 (assign(const _Tp&, size_type, size_type))
2338 (insert(size_type, const _Tp&, size_type, size_type))
2339 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
2340 Use _If_sv.
2341 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
2342 SFINAE constraints.
2343 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2344 Likewise.
2345 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2346 Likewise.
2347 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2348 Likewise.
2349 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2350 Likewise.
2351 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2352 Likewise.
2353 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2354 Likewise.
2355 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2356 Likewise.
2357 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2358 Likewise.
2359 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2360 Likewise.
2361 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2362 Likewise.
2363
2364 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
2365
2366 PR libstdc++/72847
2367 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
2368 pointers to start and end of storage.
2369 * testsuite/23_containers/vector/bool/72847.cc: New test.
2370 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
2371 _M_finish after deallocating.
2372 (vector<bool>::_M_fill_insert): Likewise.
2373 (vector<bool>::_M_insert_range): Likewise.
2374 (vector<bool>::_M_insert_aux): Likewise.
2375
2376 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
2377
2378 Implement LWG 2744 and LWG 2754.
2379 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
2380 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
2381 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
2382 Likewise.
2383 (emplace(_Args&&...)): Likewise.
2384 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2385 * include/std/utility: (__is_in_place_type_impl): New.
2386 (__is_in_place_type): Likewise.
2387 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
2388 emplace.
2389 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
2390 in_place constructor.
2391 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2392 * testsuite/20_util/any/requirements.cc: Add a test for
2393 in_place-constructing a non-default-constructible type.
2394
2395 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
2396
2397 Add a feature macro for C++17 make_from_tuple.
2398 * include/std/tuple (__cpp_lib_make_from_tuple): New.
2399 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
2400 Qualify the call to get<>().
2401 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
2402
2403 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
2404
2405 * src/filesystem/ops.cc: Always include ostream and
2406 ext/stdio_filebuf.h.
2407 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
2408 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
2409 sendfile fails with ENOSYS or EINVAL.
2410
2411 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
2412
2413 PR libstdc++/72840
2414 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
2415 syntax.
2416
2417 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2418
2419 Implement C++17 make_from_tuple.
2420 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
2421 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2422
2423 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2424
2425 Implement LWG 2758.
2426 * include/bits/basic_string.h
2427 (append(__sv_type, size_type, size_type)): Turn into a template,
2428 change parameter type, constrain, add a conversion to __sv_type
2429 from the dependent parameter type.
2430 (assign(__sv_type, size_type, size_type)): Likewise.
2431 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2432 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2433 Likewise.
2434 (compare(size_type, size_type,__sv_type, size_type, size_type)):
2435 Likewise.
2436 * testsuite/21_strings/basic_string/lwg2758.cc: New.
2437
2438 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
2439
2440 * doc/xml/manual/status_cxx2017.xml: Update status table.
2441 * doc/html/manual/status.html: Regenerate.
2442
2443 * testsuite/lib/libstdc++.exp: Fix typo in comment.
2444
2445 PR libstdc++/72820
2446 * include/std/functional (_Function_base::_Base_manager::_M_clone):
2447 Qualify new operator.
2448 * testsuite/20_util/function/cons/72820.cc: New test.
2449
2450 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
2451 * doc/html/manual/status.html: Regenerate.
2452 * include/Makefile.am: Add new header.
2453 * include/Makefile.in: Regenerate.
2454 * include/bits/invoke.h: New header.
2455 (__invoke): Make constexpr. Add && to types in exception specification.
2456 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
2457 names. Include <bits/invoke.h> and use std::__invoke.
2458 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
2459 new header.
2460 (invoke): Add && to types in exception specification.
2461 * include/std/tuple (apply, __apply_impl): Define for C++17.
2462 * testsuite/20_util/tuple/apply/1.cc: New test.
2463 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
2464 lineno.
2465
2466 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
2467
2468 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
2469 * doc/html/manual/status.html: Regenerate.
2470
2471 * include/std/chrono (floor, ceil, round, abs): New for C++17.
2472 * testsuite/20_util/duration_cast/rounding.cc: New test.
2473 * testsuite/20_util/time_point_cast/rounding.cc: New test.
2474 * doc/xml/manual/status_cxx2017.xml: Update status table.
2475 * doc/html/manual/status.html: Regenerate.
2476 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
2477 dg-error lineno.
2478 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2479 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2480 * testsuite/20_util/duration/literals/range.cc: Likewise.
2481
2482 * include/std/functional (__callable_functor): Remove.
2483 (_Function_handler::_M_invoke): Use __invoke instead of
2484 __callable_functor or mem_fn.
2485 (function::_Callable): Use lvalue in result_of expression.
2486 (function): Remove TODO comments about allocators.
2487 * testsuite/20_util/function/cons/refqual.cc: New test.
2488
2489 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
2490
2491 * doc/xml/manual/status_cxx2017.xml: Update status table.
2492 * include/std/functional (__inv_unwrap): Move to <type_traits>.
2493 (__invoke_impl): Remove exception specifications.
2494 (__invoke, invoke): Add exception specifications using
2495 __is_nothrow_callable.
2496 * include/std/type_traits (__inv_unwrap): Move from <functional>.
2497 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
2498 (__is_callable, __is_nothrow_callable): New traits.
2499 (is_callable, is_callable_v): New C++17 traits.
2500 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
2501 * testsuite/20_util/is_callable/requirements/
2502 explicit_instantiation.cc: New test.
2503 * testsuite/20_util/is_callable/requirements/
2504 explicit_instantiation_ext.cc: New test.
2505 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
2506 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
2507 test.
2508 * testsuite/20_util/is_callable/value.cc: New test.
2509 * testsuite/20_util/is_callable/value_ext.cc: New test.
2510 * testsuite/20_util/is_nothrow_callable/requirements/
2511 explicit_instantiation.cc: New test.
2512 * testsuite/20_util/is_nothrow_callable/requirements/
2513 explicit_instantiation_ext.cc: New test.
2514 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
2515 New test.
2516 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
2517 New test.
2518 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
2519 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
2520
2521 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2522 * doc/html/manual/status.html: Regenerate.
2523
2524 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
2525 effective target not dg-options. Move check for feature-test macro to:
2526 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2527 New test.
2528
2529 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
2530 (__invfwd): Adjust.
2531 (__invoke_impl): Remove unused template parameters.
2532 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2533 parameter.
2534 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
2535 and test __invoke extension for C++11.
2536
2537 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
2538
2539 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
2540 Define feature-test macro.
2541 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
2542 for the macro.
2543
2544 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
2545 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
2546 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
2547 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
2548 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2549
2550 * include/std/utility (as_const): Define.
2551 * testsuite/20_util/as_const/1.cc: New test.
2552 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
2553
2554 * include/bits/shared_ptr.h (owner_less): Add default template
2555 argument.
2556 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
2557 specialization.
2558 (owner_less<void>): Define specialization.
2559 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2560 Update value.
2561 * testsuite/20_util/owner_less/void.cc: New test.
2562 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
2563
2564 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2565 Define feature-test macro.
2566 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
2567 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
2568 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
2569 (__cpp_lib_type_trait_variable_templates): Define.
2570
2571 * include/bits/stl_function.h: Remove commented-out macro.
2572 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2573 Define feature-test macro.
2574 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
2575
2576 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
2577 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
2578 true.
2579 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
2580 do #error for C++17.
2581 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
2582 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
2583 * include/tr1/bessel_function.tcc: Likewise.
2584 * include/tr1/beta_function.tcc: Likewise.
2585 * include/tr1/cmath: Likewise.
2586 * include/tr1/ell_integral.tcc: Likewise.
2587 * include/tr1/exp_integral.tcc: Likewise.
2588 * include/tr1/gamma.tcc: Likewise.
2589 * include/tr1/hypergeometric.tcc: Likewise.
2590 * include/tr1/legendre_function.tcc: Likewise.
2591 * include/tr1/modified_bessel_func.tcc: Likewise.
2592 * include/tr1/poly_hermite.tcc: Likewise.
2593 * include/tr1/poly_laguerre.tcc: Likewise.
2594 * include/tr1/riemann_zeta.tcc: Likewise.
2595 * include/tr1/special_function_util.h: Likewise.
2596 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
2597
2598 * include/std/type_traits (has_trivial_default_constructor): Remove.
2599 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
2600 * testsuite/20_util/has_trivial_copy_assign/requirements/
2601 explicit_instantiation.cc: Remove test.
2602 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
2603 line number.
2604 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
2605 Likewise.
2606 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
2607 * testsuite/20_util/has_trivial_copy_constructor/requirements/
2608 explicit_instantiation.cc: Likewise.
2609 * testsuite/20_util/has_trivial_copy_constructor/requirements/
2610 typedefs.cc: Likewise.
2611 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
2612 * testsuite/20_util/has_trivial_default_constructor/requirements/
2613 explicit_instantiation.cc: Likewise.
2614 * testsuite/20_util/has_trivial_default_constructor/requirements/
2615 typedefs.cc: Likewise.
2616 * testsuite/20_util/has_trivial_default_constructor/value.cc:
2617 Likewise.
2618 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2619 Check has_trivial_default_constructor, has_trivial_copy_constructor,
2620 and has_trivial_copy_assign are not defined.
2621 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
2622 tests.
2623 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
2624 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2625 dg-error line number.
2626 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2627 Likewise.
2628
2629 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2630
2631 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
2632 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
2633 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
2634 Likewise.
2635 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2636 Likewise.
2637 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2638 Likewise.
2639 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2640 Likewise.
2641 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2642 Likewise.
2643 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2644 Likewise.
2645
2646 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
2647 comments.
2648
2649 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
2650 dg-error to relevant line.
2651 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
2652 Likewise.
2653 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
2654
2655 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
2656
2657 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
2658 options are present that aren't valid for C.
2659 * testsuite/abi/header_cxxabi.c: Likewise.
2660
2661 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
2662 check_value.cc: Do not add special functions to namespace std in TR1
2663 test.
2664
2665 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
2666 run for C++11 and later.
2667 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
2668 Likewise.
2669 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
2670 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
2671 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
2672 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
2673 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
2674 Likewise.
2675 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
2676 Likewise.
2677 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
2678 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
2679 Likewise.
2680 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
2681 Likewise.
2682 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
2683 Likewise.
2684 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
2685 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
2686 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
2687 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
2688 * testsuite/special_functions/03_beta/compile.cc: Likewise.
2689 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
2690 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
2691 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
2692 Likewise.
2693 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
2694 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
2695 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
2696 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
2697 Likewise.
2698 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
2699 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
2700 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
2701 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
2702 Likewise.
2703 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
2704 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
2705 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
2706 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
2707 Likewise.
2708 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
2709 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
2710 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
2711 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
2712 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
2713 Likewise.
2714 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
2715 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
2716 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
2717 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
2718 Likewise.
2719 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
2720 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
2721 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
2722 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
2723 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
2724 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
2725 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
2726 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
2727 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
2728 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
2729 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
2730 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
2731 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
2732 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
2733 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
2734 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
2735 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
2736 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
2737 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
2738 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
2739 * testsuite/special_functions/14_expint/compile.cc: Likewise.
2740 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
2741 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
2742 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
2743 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
2744 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
2745 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
2746 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
2747 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
2748 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
2749 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
2750 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
2751 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
2752 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
2753 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
2754 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
2755 Likewise.
2756 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
2757 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
2758 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
2759 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
2760 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
2761 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
2762 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
2763 * testsuite/special_functions/20_sph_legendre/check_value.cc:
2764 Likewise.
2765 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
2766 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
2767 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
2768 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
2769 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
2770 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
2771
2772 * testsuite/tr1/5_numerical_facilities/special_functions/
2773 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
2774 of [[gnu::unused]].
2775 * testsuite/tr1/5_numerical_facilities/special_functions/
2776 09_cyl_bessel_j/check_value.cc: Likewise.
2777 * testsuite/tr1/5_numerical_facilities/special_functions/
2778 10_cyl_bessel_k/check_value.cc: Likewise.
2779 * testsuite/tr1/5_numerical_facilities/special_functions/
2780 11_cyl_neumann/check_value.cc: Likewise.
2781 * testsuite/tr1/5_numerical_facilities/special_functions/
2782 21_sph_bessel/check_value.cc: Likewise.
2783 * testsuite/tr1/5_numerical_facilities/special_functions/
2784 23_sph_neumann/check_value.cc: Likewise.
2785
2786 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2787
2788 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
2789 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
2790 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
2791 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
2792 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
2793 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
2794
2795 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2796
2797 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2798 test if -flto used.
2799
2800 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2801 additional flags for compiling libtestc++.a objects.
2802
2803 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
2804
2805 * include/bits/basic_string.h (data() const): Update comment.
2806 (data()): Add non-const overload for C++17.
2807 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2808 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2809
2810 * include/bits/basic_string.tcc: Disable explicit instantiation
2811 declarations for C++17.
2812
2813 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
2814 ignored "xfail" from { dg-do compile { xfail selector } } directive.
2815 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2816 Likewise.
2817 * testsuite/26_numerics/headers/cmath/
2818 c99_classification_macros_c++11.cc: Likewise.
2819 * testsuite/26_numerics/headers/cmath/
2820 c99_classification_macros_c++98.cc: Likewise.
2821 * testsuite/26_numerics/headers/cmath/
2822 c99_classification_macros_c.cc: Likewise.
2823
2824 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2825 for different construct/destroy counts in C++98 mode.
2826
2827 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2828
2829 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2830 later.
2831 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2832 Likewise.
2833
2834 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2835 C++98-compatible initialization for array.
2836
2837 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
2838 unused header and variable from compile-only test.
2839 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
2840 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
2841 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
2842 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
2843 Likewise.
2844
2845 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2846 Remove duplicate dg-options directive.
2847
2848 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2849 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
2850
2851 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
2852 linker options from compile-only tests.
2853 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2854 Likewise.
2855
2856 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
2857 supported for C++11 and later.
2858 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
2859 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
2860
2861 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2862
2863 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2864
2865 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2866
2867 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2868 compile-only test.
2869
2870 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2871 Ensure test is compiled with optimization.
2872
2873 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2874 Adjust dg-prune-output pattern for error in C++98 mode.
2875
2876 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2877 run for C++11 or later.
2878
2879 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
2880 test to not rely on GNU extension (escaped normal characters in POSIX
2881 BRE). Enable tests for other strings which are now supported.
2882
2883 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2884 c++11 instead of setting -std=gnu++14.
2885
2886 PR libstdc++/72745
2887 * include/std/array (get): Use positive message for static assertions.
2888 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
2889 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
2890 specialization for invalid indices, with static assertion.
2891 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
2892
2893 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
2894 dg-error to relevant line.
2895 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
2896 Likewise.
2897 * testsuite/23_containers/forward_list/requirements/dr438/
2898 assign_neg.cc: Likewise.
2899 * testsuite/23_containers/forward_list/requirements/dr438/
2900 constructor_1_neg.cc: Likewise.
2901 * testsuite/23_containers/forward_list/requirements/dr438/
2902 constructor_2_neg.cc: Likewise.
2903 * testsuite/23_containers/forward_list/requirements/dr438/
2904 insert_neg.cc: Likewise.
2905 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
2906 Likewise.
2907 * testsuite/26_numerics/random/linear_congruential_engine/
2908 requirements/non_uint_neg.cc: Likewise.
2909 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
2910 Likewise. Also test for std::atomic_address.
2911
2912 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2913
2914 Add missing variable traits, fix testsuite failures.
2915 * include/bits/uses_allocator.h (uses_allocator_v): New.
2916 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2917 Likewise.
2918 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2919 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2920 * testsuite/20_util/duration/literals/range.cc: Likewise.
2921 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2922 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2923 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2924 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2925 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2926 Likewise.
2927 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2928 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2929 New.
2930
2931 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2932
2933 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2934 not test 128-bit types.
2935 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2936 * testsuite/20_util/is_integral/value.cc: Likewise.
2937 * testsuite/20_util/is_signed/value.cc: Likewise.
2938 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2939 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2940 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2941 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2942 Likewise.
2943 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2944 Likewise.
2945
2946 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2947
2948 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2949
2950 Implement C++17 variable templates for type traits.
2951 * include/std/chrono (treat_as_floating_point_v): New.
2952 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2953 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2954 (ratio_greater_equal_v): Likewise.
2955 * include/std/system_error (is_error_code_enum_v)
2956 (is_error_condition_enum_v): Likewise.
2957 * include/std/tuple (tuple_size_v): Likewise.
2958 * type_traits (conjunction_v, disjunction_v, negation_v)
2959 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2960 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2961 (is_rvalue_reference_v, is_member_object_pointer_v)
2962 (is_member_function_pointer_v, is_enum_v, is_union_v)
2963 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2964 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2965 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2966 (is_trivially_copyable_v, is_standard_layout_v)
2967 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2968 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2969 (is_constructible_v, is_default_constructible_v)
2970 (is_copy_constructible_v, is_move_constructible_v)
2971 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2972 (is_destructible_v, is_trivially_constructible_v)
2973 (is_trivially_default_constructible_v)
2974 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2975 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2976 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2977 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2978 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2979 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2980 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2981 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2982 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2983 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2984 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2985 Likewise.
2986 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2987 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2988 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2989
2990 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2991
2992 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2993 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2994 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2995
2996 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2997
2998 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2999 * doc/html/manual/abi.html: Regenerate.
3000
3001 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
3002 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
3003 symbols.
3004 * configure: Regenerate.
3005 * testsuite/util/testsuite_abi.cc: Add new symbol version.
3006
3007 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3008 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
3009 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
3010 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
3011 Likewise.
3012 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
3013 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
3014 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
3015
3016 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
3017
3018 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
3019 Adjust dg-prune-output pattern for error in C++98 mode.
3020 * testsuite/23_containers/deque/requirements/dr438/
3021 constructor_1_neg.cc: Likewise.
3022 * testsuite/23_containers/deque/requirements/dr438/
3023 constructor_2_neg.cc: Likewise.
3024 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
3025 Likewise.
3026 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
3027 Likewise.
3028 * testsuite/23_containers/list/requirements/dr438/
3029 constructor_1_neg.cc: Likewise.
3030 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
3031 Likewise.
3032 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
3033 Likewise.
3034 * testsuite/23_containers/vector/requirements/dr438/
3035 constructor_1_neg.cc: Likewise.
3036 * testsuite/23_containers/vector/requirements/dr438/
3037 constructor_2_neg.cc: Likewise.
3038 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
3039 Likewise.
3040
3041 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
3042 for different construct/destroy counts in C++98 mode.
3043
3044 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
3045 dg-options to dg-additional-options so that default options are used.
3046 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
3047 Likewise.
3048 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
3049 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
3050 Likewise.
3051 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
3052 Use dg-additional-options instead of repeating the common options.
3053
3054 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
3055 dg-do compile directive.
3056 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
3057 dg-do directive.
3058 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
3059
3060 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
3061
3062 Implement std::string_view and P0254r2,
3063 Integrating std::string_view and std::string.
3064 * include/Makefile.am: Add string_view and string_view.tcc
3065 to the exported headers.
3066 * include/Makefile.in: Likewise.
3067 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
3068 (__sv_type): New.
3069 (basic_string(__sv_type, const _Alloc&)): Likewise.
3070 (operator=(__sv_type)): Likewise.
3071 (operator __sv_type()): Likewise.
3072 (operator+=(__sv_type)): Likewise.
3073 (append(__sv_type __sv)): Likewise.
3074 (append(__sv_type, size_type, size_type)): Likewise.
3075 (assign(__sv_type)): Likewise.
3076 (assign(__sv_type, size_type, size_type)): Likewise.
3077 (insert(size_type, __sv_type)): Likewise.
3078 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
3079 (replace(size_type, size_type, __sv_type)): Likewise.
3080 (replace(size_type, size_type, __sv_type, size_type, size_type)):
3081 Likewise.
3082 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
3083 (find(__sv_type, size_type)): Likewise.
3084 (rfind(__sv_type, size_type)): Likewise.
3085 (find_first_of(__sv_type, size_type)): Likewise.
3086 (find_last_of(__sv_type, size_type)): Likewise.
3087 (find_first_not_of(__sv_type, size_type)): Likewise.
3088 (find_last_not_of(__sv_type, size_type)): Likewise.
3089 (compare(__sv_type)): Likewise.
3090 (compare(size_type, size_type, __sv_type)): Likewise.
3091 (compare(size_type, size_type, __sv_type, size_type, size_type)):
3092 Likewise.
3093 * include/bits/string_view.tcc: New.
3094 * include/std/string_view: Likewise.
3095 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3096 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3097 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3098 Likewise.
3099 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3100 Likewise.
3101 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3102 Likewise.
3103 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3104 Likewise.
3105 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3106 Likewise.
3107 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3108 Likewise.
3109 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3110 Likewise.
3111 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3112 Likewise.
3113 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3114 Likewise.
3115 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3116 Likewise.
3117 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3118 Likewise.
3119 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3120 Likewise.
3121 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
3122 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
3123 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
3124 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
3125 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
3126 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
3127 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
3128 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
3129 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
3130 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3131 Likewise.
3132 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3133 Likewise.
3134 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3135 Likewise.
3136 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3137 Likewise.
3138 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3139 Likewise.
3140 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3141 Likewise.
3142 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3143 Likewise.
3144 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3145 Likewise.
3146 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3147 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
3148 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
3149 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
3150 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3151 Likewise.
3152 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3153 Likewise.
3154 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3155 Likewise.
3156 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3157 Likewise.
3158 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3159 Likewise.
3160 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3161 Likewise.
3162 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3163 Likewise.
3164 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3165 Likewise.
3166 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3167 Likewise.
3168 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3169 Likewise.
3170 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3171 Likewise.
3172 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3173 Likewise.
3174 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3175 Likewise.
3176 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3177 Likewise.
3178 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3179 Likewise.
3180 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3181 Likewise.
3182 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3183 Likewise.
3184 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3185 Likewise.
3186 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3187 Likewise.
3188 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3189 Likewise.
3190 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3191 Likewise.
3192 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3193 Likewise.
3194 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3195 Likewise.
3196 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3197 Likewise.
3198 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3199 Likewise.
3200 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3201 Likewise.
3202 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3203 Likewise.
3204 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3205 Likewise.
3206 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3207 Likewise.
3208 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3209 Likewise.
3210 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3211 Likewise.
3212 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3213 Likewise.
3214 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3215 Likewise.
3216 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
3217 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3218 Likewise.
3219 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3220 Likewise.
3221 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3222 Likewise.
3223 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3224 Likewise.
3225 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3226 Likewise.
3227 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3228 Likewise.
3229 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3230 Likewise.
3231 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3232 Likewise.
3233 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3234 Likewise.
3235 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3236 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3237
3238 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
3239
3240 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
3241
3242 2016-07-25 Georeth Chow <georeth2010@gmail.com>
3243
3244 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
3245 _S_concat enumerator.
3246 * testsuite/ext/rope/6.cc: New test.
3247
3248 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
3249
3250 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
3251 std::mt19937, std::thread and std::atomic to simplify test.
3252 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
3253
3254 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
3255
3256 PR libstdc++/71964
3257 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3258 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
3259 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
3260 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
3261 * testsuite/23_containers/set/allocator/71964.cc: New test.
3262
3263 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
3264 delete[] instead of delete.
3265
3266 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
3267
3268 * include/experimental/propagate_const (propagate_const::__t): Rename
3269 to _M_t and remove comment. Qualify std::move and std::forward.
3270 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
3271
3272 * testsuite/23_containers/vector/zero_sized_allocations.cc:
3273 Define sized deallocation function.
3274 * testsuite/util/testsuite_new_operators.h:
3275 (operator delete(void*, const std::nothrow_t&)): Define nothrow
3276 deallocation function.
3277
3278 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
3279 reads past the end of strings.
3280 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
3281 Likewise.
3282 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
3283 invalid array accesses.
3284 * testsuite/experimental/string_view/operations/compare/char/1.cc:
3285 Fix read past the end of string.
3286 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
3287
3288 * testsuite/24_iterators/container_access.cc: Fix missing returns.
3289 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
3290
3291 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
3292 leak) memory for arguments to placement delete.
3293 * testsuite/20_util/addressof/1.cc: Don't leak memory.
3294 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
3295 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
3296 Likewise.
3297
3298 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
3299
3300 * doc/xml/manual/intro.xml: Document DR 2684 status.
3301 * doc/html/*: Regenerate.
3302
3303 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
3304 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
3305 (atomic_uint64_t): Define (LWG 2441).
3306 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
3307 lines.
3308 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
3309 the new types.
3310 * doc/xml/manual/intro.xml: Document DR 2441 status.
3311
3312 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
3313 to use perfect forwarding (LWG 2328).
3314 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
3315 * doc/xml/manual/intro.xml: Document DR 2328 status.
3316
3317 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
3318 static objects for catching nullptr as pointer to member types.
3319
3320 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
3321
3322 Clean up optional's comments.
3323 * include/std/optional: Remove incorrect section headers
3324 from comments when redundant, replace bare section
3325 headers with more descriptive comments.
3326
3327 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
3328
3329 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
3330 * include/bits/move.h: Likewise.
3331 * include/bits/postypes.h: Likewise.
3332 * include/debug/bitset: Likewise.
3333 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
3334 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
3335 comment.
3336 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
3337 * testsuite/util/thread/all.h: Likewise.
3338
3339 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
3340 and adjust comment.
3341
3342 PR c++/58796
3343 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
3344 nullptr match handlers of pointer type.
3345
3346 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
3347
3348 Implement C++17 P0025 clamp.
3349 * include/bits/algorithmfwd.h: Declare clamp overloads.
3350 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
3351 * testsuite/25_algorithms/clamp/1.cc: New test.
3352 * testsuite/25_algorithms/clamp/2.cc: New test.
3353 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
3354 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
3355 1.cc: New test.
3356 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
3357 pod.cc: New test.
3358
3359 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
3360
3361 Fix the constraints for any's assignment operator template to properly
3362 reject assignment from a non-copyable lvalue.
3363 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
3364 type for is_copy_constructible,
3365 * testsuite/20_util/any/requirements.cc: Add a test for
3366 non-copyable lvalues.
3367
3368 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
3369
3370 * include/experimental/functional: Include <parallel/algorithm> in
3371 Parallel Mode.
3372
3373 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
3374 for std::search.
3375
3376 PR libstdc++/70716
3377 * include/bits/forward_list.h (forward_list): Update doxygen comments
3378 to reflect allocator propagation semantics. Remove ambiguous
3379 statements about data being lost.
3380 * include/bits/stl_deque.h (deque): Likewise.
3381 * include/bits/stl_list.h (list): Likewise.
3382 * include/bits/stl_map.h (map): Likewise.
3383 * include/bits/stl_multimap.h (multimap): Likewise.
3384 * include/bits/stl_multiset.h (multiset): Likewise.
3385 * include/bits/stl_set.h (set): Likewise.
3386 * include/bits/stl_vector.h (vector): Likewise.
3387 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
3388 Likewise.
3389 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
3390 Likewise.
3391
3392 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
3393
3394 Implement P0032R3, Homogeneous interface for variant, any and optional,
3395 for the parts concerning any and optional.
3396 * include/std/any (_Storage()): Make constexpr and have it
3397 initialize _M_ptr.
3398 (any()): Make constexpr.
3399 (any(const any&)): Adjust.
3400 (any(any&&)): Likewise.
3401 (__any_constructible_t): New.
3402 (any(_ValueType&&)): Constrain.
3403 (any(in_place_type_t<_Tp>, _Args&&...)): New.
3404 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
3405 Likewise.
3406 (~any()): Adjust.
3407 (operator=(const any&)): Likewise.
3408 (operator=(any&&)): Likewise.
3409 (operator=(_ValueType&&)): Constrain.
3410 (emplace(_Args&&...)): New.
3411 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3412 (clear()): Remove.
3413 (reset()): New.
3414 (swap(any&)): Adjust.
3415 (empty()): Remove.
3416 (has_value()): New.
3417 (type()): Adjust.
3418 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
3419 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
3420 (make_any(_Args&&...)): Likewise.
3421 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
3422 * include/std/optional (in_place_t, in_place): Remove.
3423 (bad_optional_access): Add a comment referring to LEWG 72.
3424 (emplace(_Args&&...)): Constrain.
3425 (has_value()): New.
3426 (reset()): Likewise.
3427 (make_optional(_Args&&...)): Likewise.
3428 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
3429 * include/std/utility (in_place_tag): New.
3430 (__in_place, __in_place_type, __in_place_index): Likewise.
3431 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
3432 (in_place(__in_place*)): Likewise.
3433 (in_place(__in_place_type<_Tp>*)): Likewise.
3434 (in_place(__in_place_index<_Idx>*)): Likewise.
3435 * testsuite/20_util/any/assign/1.cc: Adjust.
3436 * testsuite/20_util/any/assign/emplace.cc: New.
3437 * testsuite/20_util/any/assign/self.cc: Adjust.
3438 * testsuite/20_util/any/cons/1.cc: Likewise.
3439 * testsuite/20_util/any/cons/in_place.cc: New.
3440 * testsuite/20_util/any/make_any.cc: Likewise.
3441 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
3442 * testsuite/20_util/any/misc/swap.cc: Likewise.
3443 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3444 * testsuite/20_util/any/requirements.cc: New.
3445 * testsuite/20_util/in_place/requirements.cc: Likewise.
3446 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
3447 * testsuite/20_util/optional/in_place.cc: Likewise.
3448 * testsuite/20_util/optional/make_optional.cc: Add tests for
3449 the new overloads of make_optional.
3450
3451 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3452
3453 Implement P0307R2, Making Optional Greater Equal Again.
3454 * include/experimental/optional (_Has_addressof): Fix the comment.
3455 * include/std/optional (_Has_addressof): Likewise.
3456 (operator=(_Up&&)): Constrain.
3457 (operator=(const optional<_Up>&)): Likewise.
3458 (operator=(optional<_Up>&&)): Likewise.
3459 (__optional_relop_t): New.
3460 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
3461 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3462 Constrain and make transparent.
3463 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
3464 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3465 Constrain and make transparent.
3466 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
3467 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
3468 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
3469 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
3470 (operator!=(const optional<_Tp>&, _Tp const&)):
3471 Constrain and make transparent.
3472 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
3473 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
3474 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
3475 (operator>(const optional<_Tp>&, const _Tp&)):
3476 Constrain and make transparent.
3477 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
3478 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
3479 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
3480 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
3481 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
3482 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
3483 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3484 * testsuite/20_util/optional/relops/1.cc: Likewise.
3485 * testsuite/20_util/optional/relops/2.cc: Likewise.
3486 * testsuite/20_util/optional/relops/3.cc: Likewise.
3487 * testsuite/20_util/optional/relops/4.cc: Likewise.
3488 * testsuite/20_util/optional/requirements.cc: Add tests to verify
3489 that optional's relops are transparent and don't synthesize
3490 operators. Also test that assignment sfinaes.
3491
3492 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
3493
3494 PR libstdc++/71856
3495 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
3496 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
3497 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
3498 on _GLIBCXX_ASSERTIONS.
3499 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
3500 Include <unistd.h> for sleep.
3501 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
3502 * include/parallel/merge.h: Likewise.
3503 * include/parallel/multiway_merge.h: Likewise.
3504 * include/parallel/partition.h: Likewise.
3505 * include/parallel/queue.h: Likewise.
3506 * include/parallel/sort.h: Likewise.
3507 * testsuite/25_algorithms/headers/algorithm/
3508 parallel_algorithm_assert.cc: New.
3509
3510 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3511 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
3512 Forward to different overload.
3513
3514 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
3515 static.
3516
3517 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
3518
3519 Revert "Add non-const overload of std::string::data()".
3520
3521 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3522
3523 Implement P0307R2, Making Optional Greater Equal Again.
3524 * include/experimental/optional (_Has_addressof): Fix the comment.
3525 * include/std/optional (_Has_addressof): Likewise.
3526 (operator=(_Up&&)): Constrain.
3527 (operator=(const optional<_Up>&)): Likewise.
3528 (operator=(optional<_Up>&&)): Likewise.
3529 (__optional_relop_t): New.
3530 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
3531 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
3532 Constrain and make transparent.
3533 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
3534 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
3535 Constrain and make transparent.
3536 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
3537 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
3538 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
3539 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
3540 (operator!=(const optional<_Tp>&, _Tp const&)):
3541 Constrain and make transparent.
3542 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
3543 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
3544 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
3545 (operator>(const optional<_Tp>&, const _Tp&)):
3546 Constrain and make transparent.
3547 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
3548 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
3549 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
3550 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
3551 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
3552 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
3553 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3554 * testsuite/20_util/optional/relops/1.cc: Likewise.
3555 * testsuite/20_util/optional/relops/2.cc: Likewise.
3556 * testsuite/20_util/optional/relops/3.cc: Likewise.
3557 * testsuite/20_util/optional/relops/4.cc: Likewise.
3558 * testsuite/20_util/optional/requirements.cc: Add tests to verify
3559 that optional's relops are transparent and don't synthesize
3560 operators. Also test that assignment sfinaes.
3561
3562 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
3563
3564 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
3565 New function.
3566 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
3567 instead of _M_data().
3568 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
3569 Likewise.
3570 (append(const basic_string&)): Likewise.
3571 (append(const basic_string&, size_type, size_type)): Likewise.
3572 (assign(const basic_string&, size_type, size_type)): Likewise.
3573 (insert(size_type, const basic_string&)): Likewise.
3574 (insert(size_type, const basic_string&, size_type, size_type)):
3575 Likewise.
3576 (replace(size_type, size_type, const basic_string&, size_type,
3577 size_type)): Likewise.
3578 (replace(__const_iterator, __const_iterator, const basic_string&)):
3579 Likewise.
3580 (c_str(), data()): Use c_str() instead of _M_data().
3581 (data()): Add non-const overload as per LWG 2391 and P0272R1.
3582 (compare(const basic_string&)): Use data() instead of _M_data().
3583 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
3584 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
3585 Pass raw pointers to _S_copy.
3586 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
3587 _S_assign.
3588 (find(const _CharT*, size_type, size_type)): Use data instead of
3589 _M_data().
3590 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
3591 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
3592 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
3593
3594 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
3595
3596 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
3597 * doc/xml/manual/intro.xml: Document DR 2458 status.
3598 * doc/html*: Regenerate.
3599
3600 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
3601 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3602 Only include <array>.
3603 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
3604 Likewise.
3605 * doc/xml/manual/intro.xml: Document LWG 2212 support.
3606 * doc/html*: Regenerate.
3607
3608 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3609 Add testcase from LWG 2164.
3610
3611 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
3612
3613 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
3614 to _M_realloc_insert.
3615 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
3616 (_M_realloc_insert): Declare new function.
3617 (_M_emplace_back_aux): Remove definition.
3618 * include/bits/vector.tcc (emplace_back(_Args...)):
3619 Use _M_realloc_insert.
3620 (insert(const_iterator, const value_type&)): Likewise.
3621 (_M_insert_rval, _M_emplace_aux): Likewise.
3622 (_M_emplace_back_aux): Remove declaration.
3623 (_M_realloc_insert): Define.
3624 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3625 Adjust expected results for emplacing an lvalue with reallocation.
3626
3627 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
3628
3629 Implement std::optional.
3630 * include/Makefile.am: Add optional to exported headers.
3631 * include/Makefile.in: Likewise.
3632 * include/std/optional: New.
3633 * testsuite/20_util/optional/typedefs.cc: Likewise.
3634 * testsuite/20_util/optional/relops/2.cc: Likewise.
3635 * testsuite/20_util/optional/relops/3.cc: Likewise.
3636 * testsuite/20_util/optional/relops/4.cc: Likewise.
3637 * testsuite/20_util/optional/relops/5.cc: Likewise.
3638 * testsuite/20_util/optional/relops/1.cc: Likewise.
3639 * testsuite/20_util/optional/relops/6.cc: Likewise.
3640 * testsuite/20_util/optional/nullopt.cc: Likewise.
3641 * testsuite/20_util/optional/in_place.cc: Likewise.
3642 * testsuite/20_util/optional/make_optional.cc: Likewise.
3643 * testsuite/20_util/optional/assignment/2.cc: Likewise.
3644 * testsuite/20_util/optional/assignment/3.cc: Likewise.
3645 * testsuite/20_util/optional/assignment/4.cc: Likewise.
3646 * testsuite/20_util/optional/assignment/5.cc: Likewise.
3647 * testsuite/20_util/optional/assignment/1.cc: Likewise.
3648 * testsuite/20_util/optional/assignment/6.cc: Likewise.
3649 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3650 * testsuite/20_util/optional/cons/default.cc: Likewise.
3651 * testsuite/20_util/optional/cons/move.cc: Likewise.
3652 * testsuite/20_util/optional/cons/value.cc: Likewise.
3653 * testsuite/20_util/optional/cons/copy.cc: Likewise.
3654 * testsuite/20_util/optional/requirements.cc: Likewise.
3655 * testsuite/20_util/optional/observers/2.cc: Likewise.
3656 * testsuite/20_util/optional/observers/3.cc: Likewise.
3657 * testsuite/20_util/optional/observers/4.cc: Likewise.
3658 * testsuite/20_util/optional/observers/5.cc: Likewise.
3659 * testsuite/20_util/optional/observers/1.cc: Likewise.
3660 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3661 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3662 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3663 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3664 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3665 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3666 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3667 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3668 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
3669 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
3670 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3671 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3672 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3673 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3674 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3675 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3676 * testsuite/20_util/optional/swap/1.cc: Likewise.
3677
3678 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
3679
3680 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
3681
3682 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
3683
3684 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
3685 * doc/html/*: Regenerate.
3686
3687 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
3688
3689 Implement std::any.
3690 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
3691 * include/Makefile.in: Likewise.
3692 * include/std/any: New.
3693 * testsuite/20_util/any/assign/1.cc: Likewise.
3694 * testsuite/20_util/any/assign/2.cc: Likewise.
3695 * testsuite/20_util/any/assign/self.cc: Likewise.
3696 * testsuite/20_util/any/cons/1.cc: Likewise.
3697 * testsuite/20_util/any/cons/2.cc: Likewise.
3698 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3699 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3700 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3701 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3702 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3703 * testsuite/20_util/any/misc/swap.cc: Likewise.
3704 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3705 * testsuite/20_util/any/observers/type.cc: Likewise.
3706 * testsuite/20_util/any/typedefs.cc: Likewise.
3707
3708 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3709
3710 Add a new header for diagnosing the use of C++17 facilities
3711 in pre-C++17 modes.
3712 * include/bits/c++17_warning.h: New.
3713
3714 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3715
3716 Implement LWG 2451, optional<T> should 'forward' T's
3717 implicit conversions.
3718 * include/experimental/optional (__is_optional_impl, __is_optional):
3719 New.
3720 (optional()): Make constexpr and default.
3721 (optional(_Up&&), optional(const optional<_Up>&),
3722 optional(optional<_Up>&& __t): New.
3723 (operator=(_Up&&)): Constrain.
3724 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
3725 * testsuite/experimental/optional/cons/value.cc:
3726 Add tests for the functionality added by LWG 2451.
3727 * testsuite/experimental/optional/cons/value_neg.cc: New.
3728
3729 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3730
3731 Implement LWG 2509,
3732 any_cast doesn't work with rvalue reference targets and cannot
3733 move with a value target.
3734 * include/experimental/any (any(_ValueType&&)): Constrain and
3735 add an overload that doesn't forward.
3736 (any_cast(any&&)): Constrain and add an overload that moves.
3737 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
3738 the functionality added by LWG 2509.
3739
3740 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
3741
3742 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3743 New test.
3744 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
3745 test.
3746
3747 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
3748
3749 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
3750 Define inline. Forward to _M_emplace_aux.
3751 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
3752 (_M_insert_rval, _M_emplace_aux): Declare new functions.
3753 (_Temporary_value): New RAII type using allocator to construct/destroy.
3754 (_S_insert_aux_assign): Remove.
3755 (_M_insert_aux): Make non-variadic.
3756 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
3757 Use _Temporary_value.
3758 (emplace(const_iterator, _Args&&...)): Remove definition.
3759 (_M_insert_rval, _M_emplace_aux): Define.
3760 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
3761 (_M_fill_insert): Use _Temporary_value.
3762 * testsuite/23_containers/vector/allocator/construction.cc: New test.
3763 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
3764 Adjust expected results for emplacing an lvalue with reallocation.
3765 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
3766 expected results to account for construction/destruction of temporary
3767 using allocator.
3768 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
3769
3770 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
3771
3772 PR libstdc++/71313
3773 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
3774 Call remove_all for children of a directory.
3775 * testsuite/experimental/filesystem/operations/create_directories.cc:
3776 Adjust.
3777
3778 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
3779
3780 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
3781 dg-error line numbers.
3782 * testsuite/23_containers/array/tuple_interface/
3783 tuple_element_debug_neg.cc: Likewise.
3784 * testsuite/25_algorithms/lexicographical_compare/debug/
3785 irreflexive_neg.cc: Remove.
3786
3787 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3788
3789 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3790 than specific target.
3791
3792 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3793
3794 PR libstdc++/71640
3795 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3796 friend declaration.
3797
3798 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3799
3800 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3801 zero-size array.
3802
3803 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3804
3805 * configure.host: Remove mep-* support.
3806
3807 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3808
3809 * configure: Regenerate.
3810 * configure.host: Remove support for knetbsd.
3811 * crossconfig.m4: Likewise.
3812
3813 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
3814
3815 PR libstdc++/71181
3816 * include/tr1/hashtable_policy.h
3817 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
3818 dereferenceable to avoid check on lower_bound result.
3819 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
3820 (_Prime_rehash_policy::_M_need_rehash): Likewise.
3821 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
3822 Always return a value greater than input value. Set _M_next_resize to
3823 max value when reaching highest prime number.
3824 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
3825 being now useless.
3826 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3827 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3828 (test02): New.
3829 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3830 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3831 Fix indentation.
3832
3833 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
3834
3835 PR libstdc++/71545
3836 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
3837 Remove irreflexive checks.
3838 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
3839 binary_search): Likewise.
3840 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
3841 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
3842 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
3843 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
3844 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
3845 Add constructor from array.
3846
3847 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
3848
3849 * include/debug/debug.h
3850 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
3851 (__glibcxx_requires_subscript): Move...
3852 * include/debug/assertions.h: ...here and add __builtin_expect.
3853 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
3854 * include/bits/stl_deque.h
3855 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
3856 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
3857 (std::deque<>::back()): Likewise.
3858 (std::deque<>::pop_front()): Likewise.
3859 (std::deque<>::pop_back()): Likewise.
3860 (std::deque<>::swap(deque&)): Add allocator check.
3861 * include/bits/stl_vector.h
3862 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
3863 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
3864 (std::vector<>::back()): Likewise.
3865 (std::vector<>::pop_back()): Likewise.
3866 (std::vector<>::swap(vector&)): Add allocator check.
3867
3868 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
3869
3870 Provide swappable traits (p0185r1)
3871 * include/std/type_traits (is_swappable, is_nothrow_swappable,
3872 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
3873 is_nothrow_swappable_v, is_swappable_with_v,
3874 is_nothrow_swappable_with_v): New.
3875 * include/bits/stl_pair.h: Use it as per p0185r1.
3876 * include/bits/stl_queue.h: Likewise.
3877 * include/bits/stl_stack.h: Likewise.
3878 * include/bits/unique_ptr.h: Likewise.
3879 * include/std/tuple: Likewise.
3880 * include/std/array: Likewise. Fix zero-size member swap.
3881 * include/bits/hashtable.h: Use __and_.
3882 * testsuite/20_util/is_nothrow_swappable/requirements/
3883 explicit_instantiation.cc: Change test options to std=gnu++17.
3884 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3885 Likewise.
3886 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3887 * testsuite/20_util/is_swappable/requirements/
3888 explicit_instantiation.cc: Likewise.
3889 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
3890 * testsuite/20_util/is_swappable/value.cc: Likewise.
3891 * testsuite/20_util/is_nothrow_swappable/requirements/
3892 explicit_instantiation_ext.cc: New.
3893 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
3894 New.
3895 * testsuite/20_util/is_nothrow_swappable/value.h: New.
3896 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
3897 * testsuite/20_util/is_nothrow_swappable_with/requirements/
3898 explicit_instantiation.cc: New.
3899 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3900 New.
3901 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
3902 * testsuite/20_util/is_swappable/requirements/
3903 explicit_instantiation_ext.cc: New.
3904 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
3905 * testsuite/20_util/is_swappable/value.h: New.
3906 * testsuite/20_util/is_swappable/value_ext.cc: New.
3907 * testsuite/20_util/is_swappable_with/requirements/
3908 explicit_instantiation.cc: New.
3909 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
3910 * testsuite/20_util/is_swappable_with/value.cc: New.
3911 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
3912 dg-error line numbers.
3913 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3914 Likewise.
3915
3916 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
3917
3918 * include/std/array: Remove trailing whitespace.
3919 * include/std/atomic: Likewise.
3920 * include/std/bitset: Likewise.
3921 * include/std/chrono: Likewise.
3922 * include/std/complex: Likewise.
3923 * include/std/condition_variable: Likewise.
3924 * include/std/fstream: Likewise.
3925 * include/std/functional: Likewise.
3926 * include/std/future: Likewise.
3927 * include/std/iomanip: Likewise.
3928 * include/std/iosfwd: Likewise.
3929 * include/std/istream: Likewise.
3930 * include/std/limits: Likewise.
3931 * include/std/ratio: Likewise.
3932 * include/std/scoped_allocator: Likewise.
3933 * include/std/sstream: Likewise.
3934 * include/std/stdexcept: Likewise.
3935 * include/std/string: Likewise.
3936 * include/std/system_error: Likewise.
3937 * include/std/thread: Likewise.
3938 * include/std/tuple: Likewise.
3939 * include/std/type_traits: Likewise.
3940 * include/std/utility: Likewise.
3941 * include/std/valarray: Likewise.
3942 * include/std/vector: Likewise.
3943
3944 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3945 new overloaded functions.
3946 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3947 to avoid creating a redundant temporary.
3948 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3949 test.
3950
3951 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
3952
3953 * include/bits/stl_deque.h
3954 (std::deque<>::operator=): Call _M_assign_aux.
3955 (std::deque<>::assign(initializer_list<>)): Likewise.
3956 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3957 (std::deque<>::insert(const_iterator, initializer_list<>)):
3958 Call _M_range_insert_aux.
3959 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3960 Likewise.
3961 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3962 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3963 * include/bits/deque.tcc
3964 (std::deque<>::operator=): Call _M_range_insert_aux.
3965 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3966 Likewise.
3967 * include/bits/stl_vector.h
3968 (std::vector<>::operator=): Call _M_assign_aux.
3969 (std::vector<>::assign(initializer_list<>)): Likewise.
3970 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3971 (std::vector<>::insert(const_iterator, initializer_list<>)):
3972 Call _M_range_insert.
3973 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3974
3975 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3976
3977 * include/std/tuple (_Head_base<>): Default specialization condition at
3978 type declaration.
3979
3980 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3981
3982 Support allocators in tuples of zero size.
3983 * include/std/tuple (tuple<>::tuple(),
3984 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3985 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3986 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3987
3988 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
3989
3990 PR libstdc++/71320
3991 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3992 Add or remove permissions according to perms argument.
3993 * testsuite/experimental/filesystem/operations/permissions.cc: New
3994 test.
3995
3996 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3997
3998 Protect allocator-overloads of tuple-from-tuple constructors
3999 from cases that would create dangling references.
4000 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
4001 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
4002 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
4003 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
4004
4005 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
4006
4007 * doc/xml/manual/backwards_compatibility.xml: Adjust
4008 lists.debian.org link to https.
4009 * doc/html/manual/backwards.html: Regenerate.
4010
4011 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
4012
4013 * doc/xml/manual/abi.xml: Adjust URL to use https.
4014 * doc/html/manual/*: Regenerate.
4015
4016 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
4017
4018 PR libstdc++/66338
4019 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
4020 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
4021 check for _NotSameTuple.
4022 * include/std/tuple (_TMCT): New.
4023 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
4024 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
4025 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
4026 const tuple<_UElements...>&)): Likewise.
4027 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
4028 tuple<_UElements...>&&)): Likewise.
4029 * testsuite/20_util/tuple/cons/66338.cc: New.
4030
4031 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
4032
4033 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
4034 * configure: Regenerate.
4035 * config.h.in: Regenerate.
4036
4037 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
4038 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
4039 Remove const qualification on function. Replace
4040 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
4041 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
4042 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
4043
4044 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
4045
4046 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
4047 * include/bits/hashtable_policy.h
4048 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
4049 having load factor management.
4050 (_Mask_range_hashing): New.
4051 (__clp2): New.
4052 (_Power2_rehash_policy): New.
4053 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
4054 partial specializations only depend on whether iterators are constant
4055 or not.
4056 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
4057 test new hash policy.
4058 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
4059 Likewise.
4060 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
4061 Likewise.
4062 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
4063 Likewise.
4064 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
4065 Likewise.
4066 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
4067 New.
4068 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
4069 using the new hash policy.
4070 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
4071
4072 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
4073
4074 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
4075
4076 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
4077
4078 * include/debug/safe_iterator.h
4079 (_Safe_iterator<>::operator->()): Implement using underlying iterator
4080 operator ->.
4081 * include/debug/safe_local_iterator.h
4082 (_Safe_local_iterator<>::operator->()): Likewise.
4083
4084 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
4085
4086 * testsuite/experimental/memory_resource/1.cc: Add required argument
4087 to dg-require-atomic-builtins.
4088
4089 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
4090
4091 PR libstdc++/71073
4092 * include/debug/bitset: Add #pragma GCC system_header.
4093 * include/debug/deque: Likewise.
4094 * include/debug/list: Likewise.
4095 * include/debug/map: Likewise.
4096 * include/debug/set: Likewise.
4097 * include/debug/string: Likewise.
4098 * include/debug/unordered_map: Likewise.
4099 * include/debug/unordered_set: Likewise.
4100 * include/debug/vector: Likewise.
4101 * include/debug/functions.h: Adjust whitespace.
4102
4103 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
4104
4105 PR libstdc++/71081
4106 * testsuite/experimental/memory_resource/1.cc: Require atomics.
4107
4108 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
4109
4110 PR libstdc++/71049
4111 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
4112 exception constructors with __sso_string parameters.
4113
4114 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
4115
4116 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
4117 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4118 Test begin and end functions.
4119 * testsuite/experimental/filesystem/iterators/
4120 recursive_directory_iterator.cc: Likewise.
4121
4122 PR libstdc++/71038
4123 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
4124 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
4125
4126 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
4127 Overload operator* to move from rvalues.
4128
4129 PR libstdc++/71036
4130 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
4131 * testsuite/experimental/filesystem/operations/create_directory.cc:
4132 New test.
4133
4134 PR libstdc++/71037
4135 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
4136 base path to exception.
4137 * testsuite/experimental/filesystem/operations/canonical.cc: Test
4138 paths contained in exception.
4139
4140 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
4141 using declaration.
4142
4143 PR libstdc++/71005
4144 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
4145 New type.
4146 (directory_iterator::operator++(int)): Return proxy.
4147 (recursive_directory_iterator::operator++(int)): Likewise.
4148 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4149 Test post-increment.
4150 * testsuite/experimental/filesystem/iterators/
4151 recursive_directory_iterator.cc: Likewise.
4152
4153 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
4154
4155 PR libstdc++/71004
4156 * testsuite/experimental/filesystem/iterators/
4157 recursive_directory_iterator.cc: Fix test02 to not call member
4158 functions on invalid iterator, and use VERIFY not assert.
4159
4160 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
4161
4162 Avoid endless run-time recursion for copying single-element
4163 tuples where the element type is by-value constructible
4164 from any type.
4165 * include/std/tuple (_NotSameTuple): New.
4166 * include/std/tuple (tuple(_UElements&&...): Use it.
4167 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
4168
4169 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
4170
4171 PR libstdc++/71004
4172 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
4173 Initialize scalar member variables in default constructor.
4174 * testsuite/experimental/filesystem/iterators/
4175 recursive_directory_iterator.cc: Test default construction.
4176
4177 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4178
4179 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
4180
4181 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
4182
4183 * testsuite/experimental/filesystem/path/native/string.cc: Add
4184 dg-require-filesystem-ts directive.
4185
4186 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
4187
4188 PR libstdc++/70940
4189 * include/experimental/memory_resource
4190 (__resource_adaptor_imp::do_allocate): Do not default-construct
4191 rebound allocator.
4192 (__resource_adaptor_imp::do_deallocate): Likewise. Use
4193 allocator_traits to get pointer type.
4194 (__null_memory_resource::do_allocate): Remove unused parameters.
4195 (__null_memory_resource::do_deallocate): Likewise.
4196 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
4197 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
4198 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
4199 move to ...
4200 * testsuite/experimental/memory_resource/1.cc: Here.
4201 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
4202 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
4203
4204 2016-04-29 Chris Gregory <czipperz@gmail.com>
4205
4206 * config/*: Remove trailing whitespace.
4207 * src/*: Likewise.
4208 * testsuite/tr1/*: Likewise.
4209 * testsuite/util/*: Likewise.
4210
4211 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
4212
4213 PR libstdc++/70766
4214 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
4215 __addressof.
4216 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
4217 Likewise.
4218 * include/std/atomic (atomic<_Tp>): Likewise.
4219 * include/std/shared_mutex (shared_lock): Likewise.
4220 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
4221 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
4222 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
4223 * testsuite/29_atomics/atomic/70766.cc: New test.
4224 * testsuite/30_threads/shared_lock/70766.cc: New test.
4225
4226 * include/bits/hashtable_policy.h (__detail::_Insert_base,
4227 __detail::_Insert): Improve comments.
4228
4229 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
4230
4231 PR libstdc++/70767
4232 * include/std/limits: Update comments about DRs.
4233 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
4234 numeric_limits<const volatile _Tp>): Define unconditionally.
4235
4236 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
4237
4238 PR libstdc++/70762
4239 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
4240 static counter to return a different path on every call.
4241
4242 2016-04-22 Tim Shen <timshen@google.com>
4243
4244 PR libstdc++/70745
4245 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
4246 Fix the match_not_bow and match_not_eow behavior.
4247 * testsuite/28_regex/regression.cc: Add testcase.
4248
4249 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
4250
4251 PR libstdc++/69703
4252 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
4253 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
4254
4255 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
4256
4257 PR libstdc++/69703
4258 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
4259 Override endianness bit in mode.
4260 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
4261 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
4262 that little_endian mode is ignored.
4263 * testsuite/experimental/filesystem/path/native/string.cc: New test.
4264
4265 PR libstdc++/70609
4266 * src/filesystem/ops.cc (close_fd): New function.
4267 (do_copy_file): Set permissions before copying file contents. Check
4268 result of closing file descriptors. Don't copy streambuf when file
4269 is empty.
4270 (copy(const path&, const path&, copy_options, error_code&)): Use
4271 lstat for source file when copy_symlinks is set.
4272 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
4273
4274 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
4275 operator~ operator&=, operator|=, operator^=): Add noexcept to
4276 overloaded operators for copy_options, perms and directory_options.
4277 * src/filesystem/ops.cc (make_file_type, make_file_status,
4278 is_not_found_errno, file_time): Add noexcept.
4279
4280 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
4281
4282 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
4283
4284 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
4285
4286 PR libstdc++/41759
4287 * include/bits/random.h: Reword static assertion messages to state
4288 positive conditions.
4289 * include/bits/random.tcc: Likewise.
4290 * include/bits/uniform_int_dist.h: Likewise.
4291 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4292 patterns.
4293
4294 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
4295
4296 * config/cpu/sh/atomicity.h: Fix typo in comment.
4297
4298 PR libstdc++/70294
4299 * include/std/thread (operator<, operator==): Move definitions to
4300 namespace-scope.
4301 * testsuite/30_threads/thread/id/70294.cc: New test.
4302
4303 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
4304 -Wno-pedantic to dg-options.
4305 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
4306 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
4307 to dg-options.
4308 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
4309 Remove extra semi-colon.
4310 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
4311 Always supply second argument to static_assert.
4312 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
4313 semi-colon.
4314 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
4315 dg-options.
4316 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
4317 * testsuite/29_atomics/atomic/60695.cc: Likewise.
4318 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
4319 alignof when operand is an object not a type.
4320 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
4321 * testsuite/decimal/make-decimal.cc: Likewise.
4322 * testsuite/experimental/type_traits/value.cc: Always supply second
4323 argument to static_assert.
4324 * testsuite/util/testsuite_common_types.h: Use __extension__ for
4325 __int128 types.
4326
4327 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
4328 internal header.
4329 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
4330 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
4331 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
4332 Likewise. Add licence and change to compile-only test.
4333
4334 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
4335 unused parameter.
4336 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
4337
4338 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
4339 warnings.
4340
4341 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
4342
4343 * include/bits/specfun.h: Trivial comment misspelling.
4344
4345 2016-04-14 Jason Merrill <jason@redhat.com>
4346
4347 Revert Jonathan's empty ABI change from yesterday.
4348
4349 2016-04-13 Martin Sebor <msebor@redhat.com>
4350
4351 PR c++/69517
4352 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
4353 upper bound is positive.
4354
4355 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
4356
4357 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
4358 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
4359 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
4360 of functions taking empty structs by value. Add a template parameter
4361 to overloads without hints. Rename overloads with hints to
4362 _M_emplace_hint.
4363 (_Hashtable::_M_erase(true_type, const_iterator),
4364 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
4365 by reordering parameters.
4366 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
4367 _M_emplace_hint instead of _M_emplace.
4368 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
4369 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
4370 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
4371 __shared_ptr): Likewise.
4372 * include/bits/stl_algo.h (replace_if): Likewise.
4373 * include/bits/stl_pair.h (piecewise_construct_t,
4374 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
4375 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
4376 __uses_alloc0): Likewise.
4377 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
4378 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
4379 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
4380 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
4381 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4382 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
4383 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
4384
4385 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
4386
4387 Document C++17/TR29124 C++ Special Math Functions.
4388 * include/bits/specfun.h: Add Doxygen markup.
4389
4390 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
4391
4392 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
4393
4394 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
4395
4396 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
4397 * src/Makefile.in: Regenerate.
4398
4399 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
4400
4401 PR libstdc++/70554
4402 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
4403 __atomic_fetch_add for bool.
4404 * configure: Regenerate.
4405
4406 * testsuite/30_threads/thread/70503.cc: Require -static to work.
4407
4408 PR libstdc++/70503
4409 * src/c++11/thread.cc (execute_native_thread_routine,
4410 execute_native_thread_routine_compat): Give internal linkage.
4411 * testsuite/30_threads/thread/70503.cc: New test.
4412
4413 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
4414
4415 PR libstdc++/70437
4416 * include/bits/stl_pair.h (_ConstructiblePair,
4417 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
4418 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
4419 for same-type cases.
4420 * testsuite/20_util/pair/70437.cc: New.
4421
4422 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
4423
4424 PR libstdc++/69945
4425 * config/abi/pre/gnu.ver: Add new symbol.
4426 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
4427 * testsuite/18_support/free_eh_pool.cc: New test.
4428
4429 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
4430
4431 * include/Makefile.am (install-freestanding-headers): Add
4432 concept_check.h and move.h to the installed headers.
4433 * include/Makefile.in: Regenerated.
4434 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
4435 freestanding implementations.
4436 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
4437 that this macro has no effect for freestanding implementations.
4438 * doc/html/manual/using_macros.html: Likewise.
4439
4440 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
4441
4442 PR libstdc++/69939
4443 * include/experimental/tuple (__apply_impl): Qualify get and forward.
4444
4445 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
4446
4447 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
4448 * doc/html/*: Regenerate.
4449
4450 PR libstdc++/69893
4451 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
4452 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
4453 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
4454 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
4455 trunc) [__cplusplus >= 201103L]: Import from namespace std.
4456 (fabs) [__cplusplus < 201103L]: Import from namespace std.
4457 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
4458 Likewise.
4459 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
4460 namespace before including TR1 headers.
4461 * testsuite/tr1/headers/c++200x/math.cc: New test.
4462
4463 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
4464
4465 PR libstdc++/69881
4466 * include/c_global/cstdarg: Undefine __need___va_list.
4467 * include/c_global/cstddef: Undefine all kinds of __need_*.
4468
4469 2016-02-16 Tim Shen <timshen@google.com>
4470
4471 PR libstdc++/69794
4472 * include/bits/regex_scanner.h: Add different special character
4473 sets for grep and egrep regex.
4474 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
4475 * testsuite/28_regex/regression.cc: Add new testcase.
4476
4477 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
4478
4479 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
4480 added 'constexpr' in previous commit.
4481 * configure: Regenerate.
4482
4483 PR libstdc++/48891
4484 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
4485 checks for all targets except *-*-solaris2.* and ensure we find the
4486 libc math.h header not our own.
4487 * configure: Regenerate.
4488
4489 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
4490
4491 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
4492 New file. Copied over from s390-linux-gnu.
4493
4494 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
4495
4496 PR libstdc++/69626
4497 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
4498 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
4499 * config.h.in: Regenerate.
4500 * configure: Regenerate.
4501 * testsuite/21_strings/c_strings/char/69626.cc: New.
4502
4503 * doc/html/index.html: Regenerate.
4504
4505 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
4506 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
4507 * doc/html/*: Regenerate.
4508
4509 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4510
4511 PR libstdc++/69581
4512 * include/c_compatibility/math.h: Move header guards.
4513 * include/c_compatibility/stdlib.h: Likewise.
4514
4515 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
4516
4517 PR libstdc++/69506
4518 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4519
4520 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
4521
4522 PR libstdc++/69450
4523 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
4524 isinf and isnan functions into two independent checks. Check on hpux.
4525 * config.h.in: Regenerate.
4526 * configure: Regenerate.
4527 * include/c_global/cmath (isinf(double), isnan(double)): Use
4528 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
4529 respectively.
4530
4531 2016-01-27 Jakub Jelinek <jakub@redhat.com>
4532
4533 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
4534
4535 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
4536
4537 PR libstdc++/69295
4538 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
4539 -ffp-contract=off, and -ffloat-store to disable excess precision.
4540 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
4541 -ffp-contract=off.
4542
4543 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
4544
4545 PR libstdc++/69478
4546 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
4547 random_access_iterator_tag>): Check is_move_assignable when moving.
4548 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
4549 Likewise.
4550 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
4551 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
4552 * testsuite/25_algorithms/move/69478.cc: New.
4553 * testsuite/25_algorithms/move_backward/69478.cc: new.
4554
4555 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
4556
4557 * include/c_compatibility/stdlib.h: Include wide character related
4558 definitions only when they are available in cstdlib.
4559
4560 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
4561
4562 PR libstdc++/69464
4563 * include/Makefile.am: Add new header.
4564 * include/Makefile.in: Regenerate.
4565 * include/bits/random.h (uniform_int_distribution): Move to
4566 bits/uniform_int_dist.h.
4567 * include/bits/random.tcc (uniform_int_distribution::operator(),
4568 uniform_int_distribution::__generate_impl): Likewise.
4569 * include/bits/uniform_int_dist.h: New header.
4570 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
4571 <bits/uniform_int_dist.h> instead of <random>.
4572 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
4573 move_iterators/1.cc: Include correct header for uninitialized_copy.
4574 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
4575 move_iterators/1.cc: Likewise.
4576 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
4577 header for vector.
4578 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
4579
4580 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
4581
4582 PR libstdc++/69446
4583 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4584
4585 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
4586
4587 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
4588 * include/c_compatibility/math.h: Import the TR29124 functions
4589 into the global namespace.
4590 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
4591 xfail and make compile-only.
4592 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
4593 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
4594 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
4595 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
4596 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
4597 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
4598 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
4599 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
4600 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
4601 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
4602 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
4603 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
4604 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
4605 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
4606 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
4607 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
4608 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
4609 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
4610 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
4611 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
4612
4613 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
4614
4615 PR libstdc++/69116
4616 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
4617 define result_type for types which can be safely used with valarrays.
4618 * testsuite/26_numerics/valarray/69116.cc: New.
4619
4620 PR libstdc++/69413
4621 * config/os/gnu-linux/os_defines.h: Define
4622 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
4623 * include/c_global/cmath (isinf, isnan): Check it.
4624 * doc/xml/manual/internals.xml: Document it.
4625 * doc/html/*: Regenerate.
4626
4627 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
4628
4629 PR libstdc++/69406
4630 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
4631 * include/ext/type_traits.h: Likewise.
4632 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
4633 for presence of C headers.
4634 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
4635 dg-error line number.
4636 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
4637 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
4638 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
4639
4640 2016-01-20 Torvald Riegel <triegel@redhat.com>
4641
4642 PR libstdc++/69310
4643 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4644
4645 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
4646
4647 PR libstdc++/60401
4648 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
4649 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
4650 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
4651 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
4652 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
4653 Add using declarations.
4654 * testsuite/26_numerics/headers/cmath/60401.cc: New.
4655
4656 PR libstdc++/69386
4657 * include/c_global/ccomplex: Ensure C++ language linkage.
4658 * include/c_global/cmath: Likewise.
4659 * include/c_global/cstdlib: Likewise.
4660 * include/c_global/ctgmath: Likewise.
4661 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
4662
4663 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
4664
4665 PR libstdc++/14608
4666 PR libstdc++/60401
4667 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
4668 --enable-cheaders=c_global configs.
4669 * include/Makefile.in: Regenerate.
4670 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
4671 test and allow inclusion from C files.
4672 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
4673 (at_quick_exit, quick_exit): Add using directives.
4674 * include/c_global/cmath: Use #include_next for math.h.
4675 * include/c_global/cstdlib: Use #include_next for stdlib.h.
4676 * testsuite/26_numerics/headers/cmath/14608.cc: New.
4677 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
4678 Remove xfail for most targets.
4679 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
4680
4681 2016-01-18 Torvald Riegel <triegel@redhat.com>
4682
4683 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
4684 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
4685 and move after its definition.
4686 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
4687 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
4688 __GXX_WEAK__, and only provide transactional clones if
4689 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
4690 functions.
4691
4692 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
4693
4694 PR libstdc++/60637
4695 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
4696
4697 PR libstdc++/69243
4698 * include/std/functional (_Function_base::_M_not_empty_function):
4699 Change overloads for pointers to take arguments by value.
4700 * testsuite/20_util/function/cons/57465.cc: Add tests for
4701 pointer-to-member cases.
4702
4703 PR libstdc++/69340
4704 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
4705 Use macros for exception handling and fix unused parameter warning.
4706
4707 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
4708
4709 PR libstdc++/68734
4710 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
4711
4712 2016-01-17 Torvald Riegel <triegel@redhat.com>
4713
4714 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
4715
4716 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
4717
4718 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
4719 __int128 symbols.
4720
4721 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4722
4723 PR libstdc++/69293
4724 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
4725 static assertion that type is constructible from the arguments.
4726 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
4727 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
4728 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
4729
4730 PR libstdc++/69294
4731 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4732 and isnan on AIX. Quote variables.
4733 * configure: Regenerate.
4734
4735 2016-01-15 Torvald Riegel <triegel@redhat.com>
4736
4737 * include/bits/basic_string.h (basic_string): Declare friends.
4738 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
4739 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
4740 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
4741 length_error, out_of_range, runtime_error, range_error,
4742 underflow_error, overflow_error): Declare members as transaction-safe.
4743 (logic_error, runtime_error): Declare friend functions.
4744 * libsupc++/exception (exception, bad_exception): Declare members as
4745 transaction-safe.
4746 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
4747 transaction-safe members of exceptions and helper functions.
4748 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
4749 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
4750 (CXXABI_1.3.10): New.
4751 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
4752 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
4753 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
4754 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
4755 * include/Makefile.in: Regenerate.
4756 * config.h.in: Regenerate.
4757 * configure: Regenerate.
4758 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
4759
4760 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
4761
4762 * include/ext/random.tcc: Use __builtin_isfinite instead of
4763 std::isfinite.
4764
4765 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4766
4767 * include/bits/std_mutex.h: Fix Doxygen @file name.
4768
4769 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
4770 Jonathan Wakely <jwakely@redhat.com>
4771 Florian Goth <CaptainSifff@gmx.de>
4772
4773 Implement TR29124 C++ special Math Functions.
4774 * include/Makefile.am: Add new headers.
4775 * include/Makefile.in: Regenerate.
4776 * include/bits/specfun.h: New.
4777 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
4778 * include/tr1/bessel_function.tcc: Ditto.
4779 * include/tr1/beta_function.tcc: Ditto.
4780 * include/tr1/cmath: Ditto.
4781 * include/tr1/ell_integral.tcc: Ditto.
4782 * include/tr1/exp_integral.tcc: Ditto.
4783 * include/tr1/gamma.tcc: Ditto.
4784 * include/tr1/hypergeometric.tcc: Ditto.
4785 * include/tr1/legendre_function.tcc: Ditto.
4786 * include/tr1/modified_bessel_func.tcc: Ditto.
4787 * include/tr1/poly_hermite.tcc: Ditto.
4788 * include/tr1/poly_laguerre.tcc: Ditto.
4789 * include/tr1/riemann_zeta.tcc: Ditto.
4790 * include/tr1/special_function_util.h: Ditto.
4791 * testsuite/ext/special_functions/conf_hyperg: New.
4792 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
4793 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
4794 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
4795 * testsuite/ext/special_functions/hyperg: New.
4796 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
4797 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
4798 * testsuite/ext/special_functions/hyperg/compile.cc: New.
4799 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
4800 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
4801 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
4802 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
4803 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
4804 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
4805 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
4806 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
4807 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
4808 * testsuite/special_functions/03_beta/check_nan.cc: New.
4809 * testsuite/special_functions/03_beta/check_value.cc: New.
4810 * testsuite/special_functions/03_beta/compile.cc: New.
4811 * testsuite/special_functions/03_beta/compile_2.cc: New.
4812 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
4813 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
4814 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
4815 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
4816 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
4817 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
4818 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
4819 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
4820 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
4821 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
4822 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
4823 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
4824 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
4825 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
4826 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
4827 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
4828 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
4829 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
4830 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
4831 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
4832 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
4833 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
4834 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
4835 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
4836 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
4837 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
4838 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
4839 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
4840 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
4841 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
4842 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
4843 * testsuite/special_functions/11_ellint_1/compile.cc: New.
4844 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
4845 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
4846 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
4847 * testsuite/special_functions/12_ellint_2/compile.cc: New.
4848 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
4849 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
4850 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
4851 * testsuite/special_functions/13_ellint_3/compile.cc: New.
4852 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
4853 * testsuite/special_functions/14_expint/check_nan.cc: New.
4854 * testsuite/special_functions/14_expint/check_value.cc: New.
4855 * testsuite/special_functions/14_expint/compile.cc: New.
4856 * testsuite/special_functions/14_expint/compile_2.cc: New.
4857 * testsuite/special_functions/15_hermite/check_nan.cc: New.
4858 * testsuite/special_functions/15_hermite/check_value.cc: New.
4859 * testsuite/special_functions/15_hermite/compile.cc: New.
4860 * testsuite/special_functions/15_hermite/compile_2.cc: New.
4861 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
4862 * testsuite/special_functions/16_laguerre/check_value.cc: New.
4863 * testsuite/special_functions/16_laguerre/compile.cc: New.
4864 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
4865 * testsuite/special_functions/17_legendre/check_nan.cc: New.
4866 * testsuite/special_functions/17_legendre/check_value.cc: New.
4867 * testsuite/special_functions/17_legendre/compile.cc: New.
4868 * testsuite/special_functions/17_legendre/compile_2.cc: New.
4869 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
4870 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
4871 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
4872 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
4873 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
4874 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
4875 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
4876 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
4877 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
4878 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
4879 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
4880 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
4881 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
4882 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
4883 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
4884 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
4885 * testsuite/util/specfun_testcase.h: New.
4886 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
4887 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
4888 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
4889 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
4890 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
4891 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
4892 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
4893
4894 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
4895
4896 PR libstdc++/48891
4897 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4898 and isnan functions.
4899 * config.h.in: Regenerate.
4900 * configure: Regenerate.
4901 * include/c_global/cmath (isinf(double), isnan(double))
4902 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
4903 * testsuite/26_numerics/headers/cmath/48891.cc: New.
4904
4905 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4906
4907 PR libstdc++/66006
4908 * configure.host (abi_baseline_pair): Use separate baseline for
4909 Solaris 11+ and Solaris 10 with gld.
4910 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
4911 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
4912 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4913
4914 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4915
4916 PR libstdc++/68877
4917 * include/std/type_traits: Following N4511, reimplement __is_swappable
4918 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4919 adjust callers. Use __is_nothrow_swappable in swap.
4920 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4921 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4922 __is_swappable related tests.
4923 * testsuite/20_util/is_swappable/value.cc: New.
4924 * testsuite/20_util/is_swappable/requirements/
4925 explicit_instantiation.cc: New.
4926 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4927 * testsuite/25_algorithms/swap/68877.cc: New.
4928
4929 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4930
4931 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4932
4933 PR libstdc++/69005
4934 PR libstdc++/69222
4935 * include/std/functional (function::_Invoke): Remove, use result_of.
4936 (function::_Callable): Replace alias template with class template
4937 and use partial specialization instead of _NotSelf alias template.
4938 (function(_Functor)): Add "not self" constraint so that _Callable is
4939 not used while type is incomplete.
4940 * testsuite/20_util/function/69222.cc: New.
4941
4942 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
4943
4944 PR libstdc++/60976
4945 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4946 Define partial specialization.
4947 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4948 destroy members to std::allocator explicit specialization.
4949
4950 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
4951
4952 * testsuite/26_numerics/headers/cmath/
4953 c99_classification_macros_c++.cc: Rename to ...
4954 * testsuite/26_numerics/headers/cmath/
4955 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4956 * testsuite/26_numerics/headers/cmath/
4957 c99_classification_macros_c++0x.cc: Rename to ...
4958 * testsuite/26_numerics/headers/cmath/
4959 c99_classification_macros_c++11.cc: Here.
4960
4961 PR libstdc++/69190
4962 * include/bits/uses_allocator.h: Add missing include.
4963
4964 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
4965
4966 PR libstdc++/69105
4967 PR libstdc++/69106
4968 PR libstdc++/69114
4969 * include/bits/stl_iterator.h (back_insert_iterator,
4970 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4971 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4972 * include/std/future (__future::base::_State_baseV2::__setter):
4973 Likewise.
4974 * include/std/scoped_allocator (__outermost): Likewise.
4975 * testsuite/20_util/scoped_allocator/69114.cc: New.
4976 * testsuite/20_util/uses_allocator/69114.cc: New.
4977 * testsuite/30_threads/promise/69106.cc: New.
4978
4979 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
4980
4981 PR libstdc++/69092
4982 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4983 Remove _GLIBCXX_NOEXCEPT.
4984 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4985
4986 * include/Makefile.am: Adjust.
4987 * include/Makefile.in: Regenerate.
4988 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4989 * include/std/condition_variable: Adjust include.
4990 * include/std/mutex: Likewise.
4991
4992 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4993
4994 Update copyright years.
4995 \f
4996 Copyright (C) 2016 Free Software Foundation, Inc.
4997
4998 Copying and distribution of this file, with or without modification,
4999 are permitted in any medium without royalty provided the copyright
5000 notice and this notice are preserved.