1 2016-10-13 Jonathan Wakely <jwakely@redhat.com>
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.
7 2016-10-12 Paolo Carlini <paolo.carlini@oracle.com>
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:
25 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
27 * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
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:
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:
77 * testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise.
78 * testsuite/19_diagnostics/error_condition/operators/equal.cc:
80 * testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
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:
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:
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:
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:
209 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
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:
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:
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:
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:
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:
296 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
297 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
299 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
300 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
302 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
304 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
306 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
308 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
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:
316 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
317 * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
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:
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:
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:
351 * testsuite/21_strings/basic_string/element_access/char/empty.cc:
353 * testsuite/21_strings/basic_string/element_access/char/front_back.cc:
355 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
357 * testsuite/21_strings/basic_string/element_access/wchar_t/2.cc:
359 * testsuite/21_strings/basic_string/element_access/wchar_t/3.cc:
361 * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
363 * testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
365 * testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
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:
372 * testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
374 * testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
376 * testsuite/21_strings/basic_string/inserters_extractors/char/
378 * testsuite/21_strings/basic_string/inserters_extractors/char/4.cc:
380 * testsuite/21_strings/basic_string/inserters_extractors/char/5.cc:
382 * testsuite/21_strings/basic_string/inserters_extractors/char/6.cc:
384 * testsuite/21_strings/basic_string/inserters_extractors/char/7.cc:
386 * testsuite/21_strings/basic_string/inserters_extractors/char/8.cc:
388 * testsuite/21_strings/basic_string/inserters_extractors/char/9.cc:
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:
396 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
398 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
400 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
402 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc:
404 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
406 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc:
408 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc:
410 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc:
412 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc:
414 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc:
416 * testsuite/21_strings/basic_string/modifiers/append/char/2.cc:
418 * testsuite/21_strings/basic_string/modifiers/append/char/3.cc:
420 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
422 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
424 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc:
426 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc:
428 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
430 * testsuite/21_strings/basic_string/modifiers/assign/char/1.cc:
432 * testsuite/21_strings/basic_string/modifiers/assign/char/2.cc:
434 * testsuite/21_strings/basic_string/modifiers/assign/char/3.cc:
436 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
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:
442 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc:
444 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc:
446 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
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:
452 * testsuite/21_strings/basic_string/modifiers/insert/char/2.cc:
454 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
456 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc:
458 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc:
460 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
462 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
464 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
466 * testsuite/21_strings/basic_string/modifiers/replace/char/1.cc:
468 * testsuite/21_strings/basic_string/modifiers/replace/char/2.cc:
470 * testsuite/21_strings/basic_string/modifiers/replace/char/3.cc:
472 * testsuite/21_strings/basic_string/modifiers/replace/char/4.cc:
474 * testsuite/21_strings/basic_string/modifiers/replace/char/5.cc:
476 * testsuite/21_strings/basic_string/modifiers/replace/char/6.cc:
478 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
480 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc:
482 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc:
484 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc:
486 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc:
488 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc:
490 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc:
492 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
494 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
496 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
498 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
500 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
502 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
504 * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
506 * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
508 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
510 * testsuite/21_strings/basic_string/numeric_conversions/char/
512 * testsuite/21_strings/basic_string/numeric_conversions/char/
513 to_string.cc: Likewise.
514 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
516 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
518 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
520 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
522 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
524 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
526 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
528 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
530 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
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:
536 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc:
538 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
540 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
542 * testsuite/21_strings/basic_string/operations/compare/wchar_t/
544 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
546 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
548 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
550 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
552 * testsuite/21_strings/basic_string/operations/find/char/2.cc:
554 * testsuite/21_strings/basic_string/operations/find/char/3.cc:
556 * testsuite/21_strings/basic_string/operations/find/char/4.cc:
558 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
560 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
562 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc:
564 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc:
566 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc:
568 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
570 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc:
572 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc:
574 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc:
576 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc:
578 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc:
580 * testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc:
582 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
584 * testsuite/21_strings/basic_string/operations/substr/wchar_t/
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/
605 * testsuite/21_strings/basic_string_view/element_access/char/
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/
611 * testsuite/21_strings/basic_string_view/element_access/wchar_t/
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:
620 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
622 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
624 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
626 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
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/
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/
636 * testsuite/21_strings/basic_string_view/operations/compare/char/
638 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
640 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
642 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
644 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
646 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
648 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
650 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
652 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
654 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
656 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
658 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
660 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
662 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
664 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/
666 * testsuite/21_strings/basic_string_view/operations/rfind/char/
668 * testsuite/21_strings/basic_string_view/operations/rfind/char/
670 * testsuite/21_strings/basic_string_view/operations/rfind/char/
672 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
674 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
676 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
678 * testsuite/21_strings/basic_string_view/operations/string_conversion/
680 * testsuite/21_strings/basic_string_view/operations/substr/char/
682 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
684 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
686 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
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:
693 * testsuite/21_strings/char_traits/requirements/short/1.cc: Likewise.
694 * testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Likewise.
696 * doc/xml/manual/test.xml: Fix typo.
698 2016-10-12 Jonathan Wakely <jwakely@redhat.com>
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.
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
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.
720 * include/std/mutex [_GLIBCXX_HAVE_TLS] (_Once_call): Remove.
721 (call_once) [_GLIBCXX_HAVE_TLS]: Simplify by removing _Once_call.
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.
728 * libsupc++/nested_exception.h (throw_with_nested): Remove return.
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
738 * testsuite/30_threads/call_once/dr2442.cc: New test.
740 2016-10-11 Jonathan Wakely <jwakely@redhat.com>
742 * include/bits/stl_list.h (assign(initializer_list<value_type>)): Call
743 _M_assign_dispatch directly with correct tag.
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.
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.
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.
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.
773 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
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.
780 2016-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
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&&...)):
787 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
789 (operator=(const any&)): Make strongly exception-safe.
790 (operator=(any&&)): reset() unconditionally in the case where
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.
800 2016-10-10 Jonathan Wakely <jwakely@redhat.com>
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.
807 * doc/xml/manual/status_cxx2011.xml: Correct C++11 status.
809 * libsupc++/eh_ptr.cc (exception_ptr): Replace _GLIBCXX_USE_NOEXCEPT
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
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.
827 * include/bits/allocator.h (allocator<T>::is_always_equal): Define.
828 * testsuite/20_util/allocator/requirements/typedefs.cc: Test for
830 * testsuite/util/testsuite_allocator.h
831 (uneq_allocator::is_always_equal): Define as false_type.
833 * include/experimental/numeric (gcd, lcm): Make bool arguments
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.
839 * include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
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.
846 2016-10-07 Jonathan Wakely <jwakely@redhat.com>
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.
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/
861 2016-10-06 Jonathan Wakely <jwakely@redhat.com>
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.
876 2016-10-05 Jonathan Wakely <jwakely@redhat.com>
879 * testsuite/20_util/not_fn/1.cc: Fix test.
880 * testsuite/experimental/functional/not_fn.cc: Likewise.
883 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended
885 * testsuite/23_containers/priority_queue/allocator.cc: New test.
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:
895 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
897 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
899 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
902 * include/bits/node_handle.h (_Node_handle): Remove invalid and unused
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.
914 2016-10-03 François Dumont <fdumont@gcc.gnu.org>
916 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
918 * src/c++11/mutex_pool.h: ... here. New.
919 * src/c++11/debug.cc: Use latter.
921 2016-10-03 Jonathan Wakely <jwakely@redhat.com>
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.
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
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
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:
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.
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>.
989 2016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
992 * testsuite/20_util/tuple/77802.cc: New.
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.
1019 2016-09-30 Jonathan Wakely <jwakely@redhat.com>
1022 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
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.
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.
1048 * include/experimental/numeric: Include <numeric>.
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.
1055 2016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1064 2016-09-29 Jonathan Wakely <jwakely@redhat.com>
1066 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
1067 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
1069 2016-09-29 Alan Modra <amodra@gmail.com>
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.
1087 2016-09-28 Jonathan Wakely <jwakely@redhat.com>
1089 * include/std/chrono (system_clock): Fix typo in comment.
1091 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
1093 * src/filesystem/ops.cc (file_time): Take error_code parameter and
1095 (do_copy_file, last_write_time): Pass error_code in file_time calls.
1096 * testsuite/experimental/filesystem/operations/last_write_time.cc:
1098 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
1101 * include/std/functional (_Any_data): Add may_alias attribute.
1103 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
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.
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.
1114 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1122 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
1124 * include/debug/safe_base.h
1125 (_Safe_iterator_base::_M_detach_single): Make public.
1127 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
1129 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
1130 redefine macro defined in <bits/stl_iterator.h>.
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)):
1136 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
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.
1144 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
1147 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1148 Fix an out-of-bounds access.
1150 2016-09-26 Marek Polacek <polacek@redhat.com>
1153 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
1155 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
1157 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
1159 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
1160 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
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.
1193 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
1196 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
1200 * include/bits/basic_string.h (basic_string::clear()): Drop reference
1202 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
1204 * testsuite/21_strings/basic_string/56166.cc: New.
1205 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
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.
1214 2016-09-22 Jason Merrill <jason@redhat.com>
1216 * configure.ac: Define HAVE_MEMALIGN for newlib.
1218 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
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.
1226 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
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
1241 (map::node_type, map::insert_return_type, map::extract, map::merge)
1242 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
1244 (_Rb_tree_merge_helper): Specialize for map.
1245 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
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
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
1258 (set::node_type, set::insert_return_type, set::extract, set::merge)
1259 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
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):
1297 * include/debug/unordered_set( unordered_set, unordered_multiset):
1299 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
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:
1316 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
1317 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
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
1324 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
1326 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
1328 Fix tests on old arm platforms for optional.
1329 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
1331 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
1333 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
1334 recent change to _Variant_storage.
1335 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
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.
1344 2016-09-22 Tim Shen <timshen@google.com>
1346 * include/std/variant (variant::operator=): Fix assignment
1348 * testsuite/20_util/variant/compile.cc: Add test.
1350 2016-09-22 Tim Shen <timshen@google.com>
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.
1357 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1374 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1399 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1408 (pair(const _T1&, const _T2&)): Adjust.
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.
1422 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1449 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
1451 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
1452 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
1454 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
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.
1461 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
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.
1473 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
1475 (ListWorkerBase.get_value_from_node): Define new method.
1476 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
1478 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
1480 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
1481 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
1482 Register for C++17 components in namespace std. Strip inline namespace
1485 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
1487 * doc/xml/manual/profile_mode.xml: Fix typo.
1488 * doc/html/manual/profile_mode_devel.html: Regenerate.
1490 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
1491 Marc Glisse <marc.glisse@inria.fr>
1493 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
1494 (operator new(size_t, align_val_t)): Replace modulus operator with
1497 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
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.
1504 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
1506 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
1507 * doc/html/*: Regenerate.
1509 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
1511 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
1513 2016-09-14 Marek Polacek <polacek@redhat.com>
1515 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
1518 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
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:
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.
1546 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1548 Implement P0040R3, Extending memory management tools.
1549 * include/bits/stl_uninitialized.h (utility): New include
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/
1561 2016-09-12 Jason Merrill <jason@redhat.com>
1563 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
1565 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1575 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
1577 Implement C++17 string searchers.
1578 * include/std/functional: (unordered_map, vector): New includes
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.
1589 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
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:
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:
1610 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
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:
1616 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
1618 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
1620 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
1622 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
1624 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
1626 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
1628 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
1630 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
1632 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
1634 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
1636 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
1638 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
1640 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
1642 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
1644 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
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:
1650 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
1652 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
1654 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
1656 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
1658 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
1660 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
1662 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
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:
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:
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:
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:
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:
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:
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:
1728 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
1730 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
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:
1745 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
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:
1756 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
1758 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
1760 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
1762 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
1764 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
1766 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
1768 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
1770 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
1772 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
1774 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
1776 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
1778 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
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:
1798 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
1800 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
1802 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
1804 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
1806 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
1808 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
1810 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
1812 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
1814 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
1816 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
1818 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
1820 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
1822 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
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:
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:
1849 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
1851 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
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:
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:
1894 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
1896 * libsupc++/new_opant.cc: Include exception_defines.h.
1897 * libsupc++/new_opvant.cc: Likewise.
1899 2016-09-09 Jason Merrill <jason@redhat.com>
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,
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.
1918 2016-09-05 Tim Shen <timshen@google.com>
1920 * include/std/variant: include bits/move.h for std::addressof.
1922 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1924 * include/std/variant (_Variant_storage::_M_storage()): Use
1925 std::addressof instead of operator& to take address.
1927 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1929 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1930 setrlimit on both native and cross targets.
1931 * configure: Regenerate.
1933 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
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
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
1945 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1946 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1948 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
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.
1956 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1958 * testsuite/23_containers/set/move_comparison.cc: New test.
1960 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1963 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
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:
1973 * testsuite/20_util/tuple/77395.cc: New.
1975 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
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.
1985 2016-08-27 Tim Shen <timshen@google.com>
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.
1996 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
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.
2005 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
2006 using -std in dg-options.
2008 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
2009 Pedro Alves <palves@redhat.com>
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.
2017 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
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
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.
2034 2016-08-24 Aditya Kumar <hiraditya@msn.com>
2036 * include/bits/algorithmfwd.h: Remove trailing whitespace.
2037 * include/bits/shared_ptr_base.h: Likewise.
2039 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
2041 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
2042 * include/profile/array (array): Likewise.
2043 (array::swap): Fix exception specification for zero-sized arrays.
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.
2050 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
2051 * doc/html/*: Regenerate.
2053 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
2054 * testsuite/experimental/feat-lib-fund.cc: Likewise.
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
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.
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):
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.
2091 2016-08-22 Tim Shen <timshen@google.com>
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.
2102 2016-08-22 Gleb Natapov <gleb@scylladb.com>
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
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.
2129 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
2131 * doc/xml/api.xml: Replace hardcoded links for specific versions with
2132 link to docs for all releases.
2133 * doc/html/*: Regenerate.
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.
2141 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
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:
2163 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2164 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
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.
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
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.
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.
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
2206 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
2207 * testsuite/experimental/type_traits/value.cc: Likewise.
2209 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
2211 * doc/html/*: Regenerate.
2213 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
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
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.
2238 2016-08-18 Tim Shen <timshen@google.com>
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.
2252 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
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.
2259 * doc/xml/manual/test.xml: Improve documentation of test targets.
2260 Document new-abi-baseline, check-debug, and check-parallel targets.
2262 * doc/xml/manual/build_hacking.xml: New section on shared library
2265 * doc/xml/manual/build_hacking.xml: Improve markup.
2266 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
2268 * doc/xml/faq.xml: Change link text to "Testing".
2270 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
2271 dg-options directive.
2273 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
2275 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
2276 directive and use effective target instead of dg-options.
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.
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.
2295 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
2297 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2298 Remove duplicate dg-options directive.
2300 * testsuite/ext/profile/all.cc: Use effective target instead of
2301 -std=gnu++11. Use dg-additional-options instead of repeating options.
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.
2307 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
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
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.
2325 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
2326 expected signatures for C++14 compatibility.
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)):
2341 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
2343 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2345 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2347 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2349 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2351 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2353 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2355 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2357 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2359 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2361 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2364 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
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.
2376 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
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&&...)):
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
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.
2395 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
2403 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
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.
2411 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
2414 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
2417 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
2423 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
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)):
2434 (compare(size_type, size_type,__sv_type, size_type, size_type)):
2436 * testsuite/21_strings/basic_string/lwg2758.cc: New.
2438 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
2440 * doc/xml/manual/status_cxx2017.xml: Update status table.
2441 * doc/html/manual/status.html: Regenerate.
2443 * testsuite/lib/libstdc++.exp: Fix typo in comment.
2446 * include/std/functional (_Function_base::_Base_manager::_M_clone):
2447 Qualify new operator.
2448 * testsuite/20_util/function/cons/72820.cc: New test.
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
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
2466 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
2468 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
2469 * doc/html/manual/status.html: Regenerate.
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
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.
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.
2489 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
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
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:
2516 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
2518 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
2519 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
2521 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
2522 * doc/html/manual/status.html: Regenerate.
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:
2529 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
2531 (__invoke_impl): Remove unused template parameters.
2532 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
2534 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
2535 and test __invoke extension for C++11.
2537 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
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
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.
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.
2554 * include/bits/shared_ptr.h (owner_less): Add default template
2556 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
2558 (owner_less<void>): Define specialization.
2559 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2561 * testsuite/20_util/owner_less/void.cc: New test.
2562 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
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.
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.
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
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.
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
2604 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
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:
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
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:
2629 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
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:
2635 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
2637 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
2639 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2641 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
2643 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
2646 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
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:
2653 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
2655 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
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.
2661 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
2662 check_value.cc: Do not add special functions to namespace std in TR1
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:
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:
2675 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
2677 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
2678 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
2680 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
2682 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
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:
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:
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:
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:
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:
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:
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:
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:
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.
2772 * testsuite/tr1/5_numerical_facilities/special_functions/
2773 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
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.
2786 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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.
2795 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
2797 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
2800 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
2801 additional flags for compiling libtestc++.a objects.
2803 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
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.
2810 * include/bits/basic_string.tcc: Disable explicit instantiation
2811 declarations for C++17.
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:
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.
2824 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
2825 for different construct/destroy counts in C++98 mode.
2827 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
2829 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
2831 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
2834 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
2835 C++98-compatible initialization for array.
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:
2845 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
2846 Remove duplicate dg-options directive.
2848 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2849 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
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:
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.
2861 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
2863 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
2865 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
2867 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
2870 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2871 Ensure test is compiled with optimization.
2873 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2874 Adjust dg-prune-output pattern for error in C++98 mode.
2876 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
2877 run for C++11 or later.
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.
2883 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
2884 c++11 instead of setting -std=gnu++14.
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.
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:
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:
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.
2912 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
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):
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:
2927 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2928 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2931 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
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:
2943 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2946 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2948 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
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:
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.
2990 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
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.
2996 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
2998 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2999 * doc/html/manual/abi.html: Regenerate.
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
3004 * configure: Regenerate.
3005 * testsuite/util/testsuite_abi.cc: Add new symbol version.
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:
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.
3016 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
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:
3026 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
3028 * testsuite/23_containers/list/requirements/dr438/
3029 constructor_1_neg.cc: Likewise.
3030 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
3032 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
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:
3041 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
3042 for different construct/destroy counts in C++98 mode.
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:
3048 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
3049 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
3051 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
3052 Use dg-additional-options instead of repeating the common options.
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
3058 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
3060 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
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)):
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)):
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:
3099 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3101 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3103 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3105 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3107 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3109 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3111 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3113 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3115 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3117 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3119 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
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:
3132 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3134 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3136 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3138 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3140 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3142 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3144 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
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:
3152 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3154 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3156 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3158 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3160 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3162 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3164 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3166 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3168 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3170 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3172 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3174 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3176 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3178 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3180 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3182 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3184 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3186 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3188 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3190 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3192 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3194 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3196 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3198 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3200 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3202 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3204 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3206 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3208 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3210 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3212 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3214 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3216 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
3217 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3219 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3221 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3223 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3225 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3227 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3229 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3231 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3233 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3235 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3236 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3238 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
3240 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
3242 2016-07-25 Georeth Chow <georeth2010@gmail.com>
3244 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
3245 _S_concat enumerator.
3246 * testsuite/ext/rope/6.cc: New test.
3248 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
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.
3254 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
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.
3263 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
3264 delete[] instead of delete.
3266 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
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.
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.
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:
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.
3288 * testsuite/24_iterators/container_access.cc: Fix missing returns.
3289 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
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:
3298 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
3300 * doc/xml/manual/intro.xml: Document DR 2684 status.
3301 * doc/html/*: Regenerate.
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
3308 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
3310 * doc/xml/manual/intro.xml: Document DR 2441 status.
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.
3317 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
3318 static objects for catching nullptr as pointer to member types.
3320 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3327 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
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
3336 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
3337 * testsuite/util/thread/all.h: Likewise.
3339 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
3343 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
3344 nullptr match handlers of pointer type.
3346 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
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/
3356 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
3359 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3368 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
3370 * include/experimental/functional: Include <parallel/algorithm> in
3373 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
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):
3389 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
3392 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
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
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&&...)):
3407 (operator=(const any&)): Likewise.
3408 (operator=(any&&)): Likewise.
3409 (operator=(_ValueType&&)): Constrain.
3410 (emplace(_Args&&...)): New.
3411 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
3414 (swap(any&)): 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.
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.
3451 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3492 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
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.
3510 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
3511 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
3512 Forward to different overload.
3514 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
3517 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
3519 Revert "Add non-const overload of std::string::data()".
3521 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3562 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
3564 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
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&)):
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)):
3576 (replace(size_type, size_type, const basic_string&, size_type,
3577 size_type)): Likewise.
3578 (replace(__const_iterator, __const_iterator, const basic_string&)):
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
3588 (find(const _CharT*, size_type, size_type)): Use data instead of
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.
3594 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
3596 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
3597 * doc/xml/manual/intro.xml: Document DR 2458 status.
3598 * doc/html*: Regenerate.
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:
3605 * doc/xml/manual/intro.xml: Document LWG 2212 support.
3606 * doc/html*: Regenerate.
3608 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3609 Add testcase from LWG 2164.
3611 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
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.
3627 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3678 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
3680 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
3682 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
3684 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
3685 * doc/html/*: Regenerate.
3687 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3708 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3710 Add a new header for diagnosing the use of C++17 facilities
3712 * include/bits/c++17_warning.h: New.
3714 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3716 Implement LWG 2451, optional<T> should 'forward' T's
3717 implicit conversions.
3718 * include/experimental/optional (__is_optional_impl, __is_optional):
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.
3729 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3740 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
3742 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
3744 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
3747 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
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
3768 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
3770 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
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:
3778 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
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.
3787 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
3789 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
3790 than specific target.
3792 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
3795 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
3798 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
3800 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
3803 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3805 * configure.host: Remove mep-* support.
3807 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3809 * configure: Regenerate.
3810 * configure.host: Remove support for knetbsd.
3811 * crossconfig.m4: Likewise.
3813 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
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
3826 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
3827 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
3829 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
3830 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3833 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
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.
3847 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
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.
3868 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
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:
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:
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:
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:
3916 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
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.
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
3951 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
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):
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)):
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.
3975 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
3977 * include/std/tuple (_Head_base<>): Default specialization condition at
3980 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
3988 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
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
3996 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
4005 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
4007 * doc/xml/manual/backwards_compatibility.xml: Adjust
4008 lists.debian.org link to https.
4009 * doc/html/manual/backwards.html: Regenerate.
4011 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
4013 * doc/xml/manual/abi.xml: Adjust URL to use https.
4014 * doc/html/manual/*: Regenerate.
4016 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
4031 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
4033 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
4034 * configure: Regenerate.
4035 * config.h.in: Regenerate.
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.
4044 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
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.
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
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:
4060 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
4062 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
4064 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
4066 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
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.
4072 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
4074 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
4076 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
4078 * include/debug/safe_iterator.h
4079 (_Safe_iterator<>::operator->()): Implement using underlying iterator
4081 * include/debug/safe_local_iterator.h
4082 (_Safe_local_iterator<>::operator->()): Likewise.
4084 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
4086 * testsuite/experimental/memory_resource/1.cc: Add required argument
4087 to dg-require-atomic-builtins.
4089 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
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.
4103 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
4106 * testsuite/experimental/memory_resource/1.cc: Require atomics.
4108 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
4111 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
4112 exception constructors with __sso_string parameters.
4114 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
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.
4123 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
4124 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
4126 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
4127 Overload operator* to move from rvalues.
4130 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
4131 * testsuite/experimental/filesystem/operations/create_directory.cc:
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.
4140 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
4144 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
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.
4153 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
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.
4160 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
4162 Avoid endless run-time recursion for copying single-element
4163 tuples where the element type is by-value constructible
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.
4169 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
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.
4177 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4179 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
4181 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
4183 * testsuite/experimental/filesystem/path/native/string.cc: Add
4184 dg-require-filesystem-ts directive.
4186 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
4189 * include/experimental/memory_resource
4190 (__resource_adaptor_imp::do_allocate): Do not default-construct
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
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.
4204 2016-04-29 Chris Gregory <czipperz@gmail.com>
4206 * config/*: Remove trailing whitespace.
4208 * testsuite/tr1/*: Likewise.
4209 * testsuite/util/*: Likewise.
4211 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
4214 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
4216 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
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.
4226 * include/bits/hashtable_policy.h (__detail::_Insert_base,
4227 __detail::_Insert): Improve comments.
4229 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
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.
4236 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
4239 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
4240 static counter to return a different path on every call.
4242 2016-04-22 Tim Shen <timshen@google.com>
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.
4249 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
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.
4255 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
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.
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
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().
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.
4280 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
4282 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
4284 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
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
4294 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
4296 * config/cpu/sh/atomicity.h: Fix typo in comment.
4299 * include/std/thread (operator<, operator==): Move definitions to
4301 * testsuite/30_threads/thread/id/70294.cc: New test.
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
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
4314 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
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
4327 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
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.
4334 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
4336 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
4338 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
4341 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
4343 * include/bits/specfun.h: Trivial comment misspelling.
4345 2016-04-14 Jason Merrill <jason@redhat.com>
4347 Revert Jonathan's empty ABI change from yesterday.
4349 2016-04-13 Martin Sebor <msebor@redhat.com>
4352 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
4353 upper bound is positive.
4355 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
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
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.
4385 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
4387 Document C++17/TR29124 C++ Special Math Functions.
4388 * include/bits/specfun.h: Add Doxygen markup.
4390 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
4392 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
4394 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
4396 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
4397 * src/Makefile.in: Regenerate.
4399 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
4402 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
4403 __atomic_fetch_add for bool.
4404 * configure: Regenerate.
4406 * testsuite/30_threads/thread/70503.cc: Require -static to work.
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.
4413 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
4422 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
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.
4429 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
4440 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
4443 * include/experimental/tuple (__apply_impl): Qualify get and forward.
4445 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
4447 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
4448 * doc/html/*: Regenerate.
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]:
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.
4463 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
4466 * include/c_global/cstdarg: Undefine __need___va_list.
4467 * include/c_global/cstddef: Undefine all kinds of __need_*.
4469 2016-02-16 Tim Shen <timshen@google.com>
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.
4477 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
4479 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
4480 added 'constexpr' in previous commit.
4481 * configure: Regenerate.
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.
4489 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
4491 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
4492 New file. Copied over from s390-linux-gnu.
4494 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
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.
4503 * doc/html/index.html: Regenerate.
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.
4509 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4512 * include/c_compatibility/math.h: Move header guards.
4513 * include/c_compatibility/stdlib.h: Likewise.
4515 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
4518 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4520 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
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,
4531 2016-01-27 Jakub Jelinek <jakub@redhat.com>
4533 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
4535 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
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
4543 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
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>):
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.
4555 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
4557 * include/c_compatibility/stdlib.h: Include wide character related
4558 definitions only when they are available in cstdlib.
4560 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
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
4578 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
4580 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
4583 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4585 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
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.
4613 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
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.
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.
4627 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
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.
4640 2016-01-20 Torvald Riegel <triegel@redhat.com>
4643 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
4645 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
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.
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.
4663 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
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.
4681 2016-01-18 Torvald Riegel <triegel@redhat.com>
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
4692 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
4695 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
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.
4704 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
4705 Use macros for exception handling and fix unused parameter warning.
4707 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
4710 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
4712 2016-01-17 Torvald Riegel <triegel@redhat.com>
4714 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
4716 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
4718 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
4721 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
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.
4731 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
4732 and isnan on AIX. Quote variables.
4733 * configure: Regenerate.
4735 2016-01-15 Torvald Riegel <triegel@redhat.com>
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
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.
4760 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
4762 * include/ext/random.tcc: Use __builtin_isfinite instead of
4765 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
4767 * include/bits/std_mutex.h: Fix Doxygen @file name.
4769 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
4770 Jonathan Wakely <jwakely@redhat.com>
4771 Florian Goth <CaptainSifff@gmx.de>
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.
4894 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
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.
4905 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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.
4914 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
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.
4929 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
4931 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
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.
4942 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
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.
4950 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
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.
4962 * include/bits/uses_allocator.h: Add missing include.
4964 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
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):
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.
4979 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
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.
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.
4992 2016-01-04 Jakub Jelinek <jakub@redhat.com>
4994 Update copyright years.
4996 Copyright (C) 2016 Free Software Foundation, Inc.
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.