PR libstdc++/70607 make proj(T) and conj(T) return complex<T>
[gcc.git] / libstdc++-v3 / ChangeLog
1 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/61791
4 PR libstdc++/70607
5 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
6 (proj(T), conj(T)): Change return types per DR 1522.
7 * include/tr1/complex (conj): Remove overloads and use std::conj.
8 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
9 * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
10 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
11 real(T) and imag(T). Allow testing for C++11 too.
12
13 2017-01-24 Jonathan Wakely <jwakely@redhat.com>
14
15 PR libstdc++/79206
16 * include/experimental/string_view (operator==): Check sizes first.
17 * include/std/string_view (operator==): Likewise.
18
19 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
20
21 * testsuite/experimental/array/make_array.cc: Restore <functional>
22 inclusion.
23
24 2017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
25
26 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
27
28 2017-01-23 Jonathan Wakely <jwakely@redhat.com>
29
30 PR libstdc++/79195
31 * include/experimental/array (__make_array_elem): New class template
32 and partial specialization.
33 (__is_reference_wrapper): Move into __make_array_elem specialization.
34 (make_array): Use __make_array_elem to determine element type and move
35 static assertion into specialization. Qualify std::forward call.
36 (to_array): Add exception specifiation.
37 * testsuite/experimental/array/make_array.cc: Test argument types
38 without a common type.
39 * testsuite/experimental/array/neg.cc: Adjust expected error message.
40
41 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
42
43 * doc/xml/manual/debug.xml: code.google.com uses https now.
44
45 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
46
47 * doc/xml/manual/test.xml: Fix link into gccint online manual.
48
49 2017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com>
50
51 Make poisoned hashes SFINAE away the call operator of the hash.
52 * include/bits/functional_hash.h
53 (__poison_hash::__enable_hash_call): New.
54 * include/std/optional (__optional_hash_call_base): New.
55 (hash<optional<_Tp>>): Derive from the new base,
56 move the hash function into that base.
57 * include/std/variant (__variant_hash_call_base_impl): New.
58 (__variant_hash_call_base): Likewise.
59 (hash<variant<_Types...>>): Derive from the new base,
60 move the hash function into that base.
61 * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
62 * testsuite/20_util/variant/hash.cc: Likewise.
63
64 2017-01-20 Joe Seymour <joe.s@somniumtech.com>
65
66 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
67 * configure: Regenerate.
68
69 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
70
71 PR libstdc++/69240
72 * include/bits/random.h (uniform_real_distribution::param_type)
73 (normal_distribution::param_type, lognormal_distribution::param_type)
74 (gamma_distribution::param_type, chi_squared_distribution::param_type)
75 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
76 (student_t_distribution::param_type)
77 (bernoulli_distribution::param_type, binomial_distribution::param_type)
78 (geometric_distribution::param_type)
79 (negative_binomial_distribution::param_type)
80 (poisson_distribution::param_type)
81 (exponential_distribution::param_type)
82 (weibull_distribution::param_type)
83 (extreme_value_distribution::param_type)
84 (discrete_distribution::param_type)
85 (piecewise_constant_distribution::param_type)
86 (piecewise_linear_distribution::param_type): Define operator!=.
87 * include/bits/uniform_int_dist.h
88 (uniform_int_distribution::param_type): Likewise.
89 * include/ext/random (beta_distribution::param_type)
90 (rice_distribution::param_type, nakagami_distribution::param_type)
91 (pareto_distribution::param_type, k_distribution::param_type)
92 (arcsine_distribution::param_type, hoyt_distribution::param_type)
93 (triangular_distribution::param_type)
94 (von_mises_distribution::param_type)
95 (hypergeometric_distribution::param_type)
96 (logistic_distribution::param_type)
97 (uniform_on_sphere_distribution::param_type)
98 (uniform_inside_sphere_distribution::param_type): Likewise.
99 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
100 Test construction with param_type.
101 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
102 Likewise.
103 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
104 Likewise.
105 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
106 Likewise.
107 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
108 Likewise.
109 * testsuite/26_numerics/random/extreme_value_distribution/cons/
110 parms.cc: Likewise.
111 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
112 Likewise.
113 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
114 Likewise.
115 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
116 Likewise.
117 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
118 Likewise.
119 * testsuite/26_numerics/random/negative_binomial_distribution/cons/
120 parms.cc: Likewise.
121 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
122 Likewise.
123 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
124 Likewise.
125 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
126 Likewise.
127 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
128 Likewise.
129 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
130 Likewise.
131 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
132 Likewise.
133 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
134 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
135 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
136 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
137 Likewise.
138 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
139 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
140 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
141 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
142 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
143 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
144 * testsuite/ext/random/triangular_distribution/cons/parms.cc:
145 Likewise.
146 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
147 parms.cc: Likewise.
148 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
149
150 PR libstdc++/72792
151 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
152 (__allocator_traits_base::__size_type): Remove.
153 (allocator_traits::_Ptr): New class template to detect const and void
154 pointer types without instantiating pointer_traits::rebind
155 unnecessarily.
156 (allocator_traits::_Diff): Likewise for detecting difference_type.
157 (allocator_traits::_Size): New class template to detect size_type
158 without instantiating make_unsigned unnecessarily.
159 * include/bits/ptr_traits.h (pointer_traits::element_type): Use
160 __detected_or_t instead of __detected_or_t_.
161 * include/std/type_traits (__detected_or_t_): Remove.
162 * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
163
164 PR libstdc++/72792
165 PR libstdc++/72793
166 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
167 Replace with class template using void_t.
168 (__alloc_rebind): Define in terms of
169 __allocator_traits_base::__rebind.
170 (allocator_traits): Remove unconditional static_assert for
171 rebind_alloc.
172 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
173 (pointer_traits::__rebind): Replace with class template using void_t.
174 (pointer_traits::rebind): Define in terms of __rebind.
175 (pointer_traits): Remove unconditional static_assert for rebind.
176 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
177 * testsuite/20_util/pointer_traits/rebind.cc: New test.
178
179 PR libstdc++/69321
180 * include/experimental/any (__any_caster): Avoid instantiating
181 manager function for types that can't be stored in any.
182 * include/std/any (__any_caster): Likewise.
183 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
184 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
185
186 PR libstdc++/64903
187 * include/bits/stl_algo.h (is_partitioned): Use increment instead of
188 std::advance.
189
190 2017-01-19 Jonathan Wakely <jwakely@redhat.com>
191
192 PR libstdc++/79156
193 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
194 Fix return type.
195 (__enable_shared_from_this): Declare __shared_ptr as a friend.
196 * testsuite/ext/shared_ptr/1.cc: New test.
197
198 PR libstdc++/64903
199 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
200 point.
201 * testsuite/25_algorithms/is_partitioned/2.cc: New test.
202
203 * doc/xml/manual/abi.xml: Fix typo.
204 * doc/html/manual/abi.html: Likewise.
205
206 PR libstdc++/67085
207 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
208 converting constructors from _Iter_less_iter.
209 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
210 _Iter_comp_iter.
211 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
212 (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
213 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
214 (__make_heap, __sort_heap): Change _Compare parameters to references.
215 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
216 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
217 functions as lvalues.
218 (is_heap): Call __is_heap_until directly to avoid copying __comp.
219 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
220 count copies during construction with empty sequence.
221
222 PR libstdc++/67085
223 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
224 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
225 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
226 number of copies.
227 * testsuite/25_algorithms/make_heap/movable.cc: New test.
228
229 PR libstdc++/67085
230 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
231 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
232 _GLIBCXX_MOVE when passing comparison function to other functions.
233 (is_heap_until, is_heap): Use std::move when passing comparison
234 function.
235 * testsuite/23_containers/priority_queue/67085.cc: New test.
236
237 PR libstdc++/78905
238 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
239 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
240 Document that the deprecated _GLIBCXX_VERSION macro was removed for
241 the 4.0.0 release.
242 * doc/html/*: Regenerate.
243 * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
244 * include/Makefile.in: Regenerate.
245 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
246 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
247 dg-error.
248
249 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
250
251 PR libstdc++/69301
252 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
253 aligned buffer instead of default-initialized variable.
254 * testsuite/29_atomics/atomic/69301.cc: New test.
255 * include/experimental/memory (observer_ptr::release): Use reserved
256 name.
257 * include/ext/pointer.h (_Pointer_adapter::operator++(int))
258 (_Pointer_adapter::operator--(int)): Likewise.
259
260 PR libstdc++/68925
261 * include/experimental/random (randint): Use temporary instead of
262 thread_local static.
263
264 2017-01-17 Joshua Conner <joshconner@google.com>
265
266 * crossconfig.m4: Add fuchsia OS.
267 * configure: Regenerate.
268
269 2017-01-17 Jonathan Wakely <jwakely@redhat.com>
270
271 PR libstdc++/69699
272 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
273 __GLIBCXX__ macro is not useful. Remove redundant date information
274 and link to the GCC release timeline.
275 (abi.versioning.active): Move partial sentence into the previous
276 paragraph.
277 * doc/html/*: Regenerate.
278
279 PR libstdc++/79114
280 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
281 of remove_reference.
282 * testsuite/18_support/nested_exception/79114.cc: New test.
283
284 2017-01-17 Jakub Jelinek <jakub@redhat.com>
285
286 PR other/79046
287 * configure.ac: Add GCC_BASE_VER.
288 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
289 get version from BASE-VER file.
290 * po/Makefile.in: Regenerated.
291 * libsupc++/Makefile.in: Regenerated.
292 * testsuite/Makefile.in: Regenerated.
293 * src/Makefile.in: Regenerated.
294 * configure: Regenerated.
295 * Makefile.in: Regenerated.
296 * include/Makefile.in: Regenerated.
297 * doc/Makefile.in: Regenerated.
298 * python/Makefile.in: Regenerated.
299 * src/c++11/Makefile.in: Regenerated.
300 * src/c++98/Makefile.in: Regenerated.
301 * src/filesystem/Makefile.in: Regenerated.
302
303 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
304
305 PR libstdc++/66145
306 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
307 exceptions.
308 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
309 for test, so new ios::failure can be caught.
310 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
311 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
312 exceptions_failbit.cc: Likewise.
313 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
314 exceptions_failbit.cc: Likewise.
315 * testsuite/27_io/basic_istream/extractors_other/char/
316 exceptions_null.cc: Likewise.
317 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
318 exceptions_null.cc: Likewise.
319 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
320 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
321 * testsuite/27_io/basic_ostream/inserters_other/char/
322 exceptions_null.cc: Likewise.
323 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
324 exceptions_null.cc: Likewise.
325 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
326
327 PR libstdc++/78702
328 * include/bits/locale_classes.h (locale::facet::__shim): Change from
329 private to protected.
330 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
331 make locale::facet::__shim accessible.
332
333 2017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com>
334
335 PR libstdc++/78389
336 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
337 (merge(list&&, _StrictWeakOrdering)): Likewise.
338 * testsuite/23_containers/list/operations/78389.cc: Add
339 better test for the sizes.
340
341 2017-01-14 Jonathan Wakely <jwakely@redhat.com>
342
343 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
344 Skip test when -D_GLIBCXX_PROFILE mode is included in options.
345 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
346 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
347 Likewise.
348 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
349 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
350 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
351 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
352 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
353 Likewise.
354 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
355 Likewise.
356 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
357 Likewise.
358 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
359 Likewise.
360 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
361 Likewise.
362 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
363 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
364 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
365 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
366 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
367 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
368 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
369 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
370 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
371 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
372 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
373 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
374 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
375
376 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
377
378 PR libstdc++/65411
379 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
380 retry fclose on EINTR.
381
382 * include/profile/base.h: Remove unused header that leads to header
383 cycle in C++17 mode.
384
385 PR libstdc++/79075
386 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
387 Make _If_sv private.
388 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
389 basic_string_view arguments.
390
391 PR libstdc++/79075
392 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
393 redundant option from cxxflags.
394 (check_effective_target_cxx11-abi): Define.
395 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
396 effective target.
397 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
398 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
399 Likewise.
400 * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
401 Likewise.
402 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
403 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
404 Likewise.
405 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
406 Likewise.
407 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
408 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
409 Likewise.
410 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
411 Likewise.
412 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
413 Likewise.
414 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
415 Likewise.
416 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
417 Likewise.
418 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
419 Likewise.
420 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
421 Likewise.
422 * testsuite/23_containers/list/61347.cc: Likewise.
423 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
424 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
425
426 2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
427
428 PR libstdc++/78389
429 * include/bits/list.tcc (merge(list&&)):
430 Adjust list sizes if the comparator throws.
431 (merge(list&&, _StrictWeakOrdering)): Likewise.
432 (sort()): Splice elements back from the scratch buffers
433 if the comparator throws.
434 (sort(_StrictWeakOrdering)): Likewise.
435 * testsuite/23_containers/list/operations/78389.cc: New.
436
437 2017-01-13 Jonathan Wakely <jwakely@redhat.com>
438
439 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
440 XFAIL for C++17 until node reinsertion supports fancy pointers.
441
442 PR libstdc++/78361
443 * testsuite/20_util/add_pointer/value.cc: Test forming function
444 pointers.
445
446 2017-01-13 Michael Brune <lucdanton@free.fr>
447
448 PR libstdc++/78361
449 * include/std/type_traits (__is_referenceable): Handle noexcept
450 function types.
451
452 2017-01-12 Jonathan Wakely <jwakely@redhat.com>
453
454 PR libstdc++/77528
455 * include/bits/stl_queue.h (queue, priority_queue): Remove default
456 member-initializers and define default constructors as templates with
457 constraints.
458 * include/bits/stl_stack.h (stack): Likewise.
459 * testsuite/23_containers/priority_queue/requirements/constructible.cc:
460 New.
461 * testsuite/23_containers/priority_queue/requirements/
462 explicit_instantiation/1.cc: Test more instantiations.
463 * testsuite/23_containers/priority_queue/requirements/
464 explicit_instantiation/1_c++98.cc: Likewise.
465 * testsuite/23_containers/queue/requirements/constructible.cc: New.
466 * testsuite/23_containers/stack/requirements/constructible.cc: New.
467
468 PR libstdc++/66284
469 * doc/xml/manual/intro.xml: Document LWG 2781 change.
470 * doc/html/*: Regenerate.
471 * include/std/functional (_Function_base::_Ref_manager): Remove.
472 (_Function_handler): Remove partial specializations for
473 reference_wrapper.
474 (function::target): Remove special case for const qualification.
475 * testsuite/20_util/function/6.cc: Adjust tests for target type.
476 * testsuite/20_util/function/7.cc: Likewise.
477 * testsuite/20_util/function/8.cc: Likewise.
478
479 2017-01-11 Jonathan Wakely <jwakely@redhat.com>
480
481 PR libstdc++/78134
482 * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
483 (map::equal_range): Fix return type of heterogeneous overloads.
484 * include/bits/stl_multimap.h (multimap::lower_bound)
485 (multimap::upper_bound, multimap::equal_range): Likewise.
486 * include/bits/stl_multiset.h (multiset::lower_bound)
487 (multiset::upper_bound, multiset::equal_range): Likewise.
488 * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
489 (set::equal_range): Likewise.
490 * testsuite/23_containers/map/operations/2.cc
491 * testsuite/23_containers/multimap/operations/2.cc
492 * testsuite/23_containers/multiset/operations/2.cc
493 * testsuite/23_containers/set/operations/2.cc
494
495 PR libstdc++/78273
496 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
497 the heterogeneous comparison can only find one match.
498 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
499 * testsuite/23_containers/map/operations/2.cc: Test count works with
500 comparison function that just partitions rather than sorting.
501 * testsuite/23_containers/set/operations/2.cc: Likewise.
502
503 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
504
505 Reduce the size of variant, it doesn't need an index of
506 type size_t internally.
507 * include/std/variant (parse_numbers.h): New include.
508 (__select_index): New.
509 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
510 _index_type for comparison with variant_npos.
511 (_Variant_storage<false, _Types...>::__index_type): New.
512 (_Variant_storage<false, _Types...>::_M_index): Change the
513 type from size_t to __index_type.
514 (_Variant_storage<true, _Types...>::__index_type): New.
515 (_Variant_storage<true, _Types...>::_M_index): Change the
516 type from size_t to __index_type.
517 (_Variant_base::_M_valid): Use _Storage::__index_type
518 for comparison with variant_npos.
519 (variant::index): Use _Base::_Storage::__index_type
520 for comparison with variant_npos.
521 * testsuite/20_util/variant/index_type.cc: New.
522
523 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
524
525 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
526 effective target selector to prevent running in C++17 mode.
527
528 PR libstdc++/77528
529 * include/bits/stl_queue.h (queue::c): Add default member initializer.
530 (queue::queue()): Add constructor and define as defaulted.
531 (queue::queue(_Sequence&&)): Remove default argument.
532 (priority_queue::c, priority_queue::comp): Add default member
533 initializers.
534 (priority_queue::priority_queue()): Add constructor and define as
535 defaulted.
536 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
537 Remove default argument for first parameter.
538 * include/bits/stl_stack.h (stack::c): Add default member initializer.
539 (stack::stack()): Add constructor and define as defaulted.
540 (stack::stack(const _Sequence&)): Remove default argument.
541 * testsuite/23_containers/priority_queue/requirements/
542 explicit_instantiation/1.cc: Test explicit instantiation with
543 non-DefaultConstructible sequence.
544 * testsuite/23_containers/priority_queue/77528.cc: New test.
545 * testsuite/23_containers/priority_queue/requirements/
546 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
547 * testsuite/23_containers/queue/77528.cc: New test.
548 * testsuite/23_containers/queue/requirements/explicit_instantiation/
549 1.cc: Test explicit instantiation with non-DefaultConstructible
550 sequence.
551 * testsuite/23_containers/queue/requirements/explicit_instantiation/
552 1_c++0x.cc: Replace with 1_c++98.cc.
553 * testsuite/23_containers/stack/77528.cc: New test.
554 * testsuite/23_containers/stack/requirements/explicit_instantiation/
555 1.cc: Test explicit instantiation with non-DefaultConstructible
556 sequence.
557 * testsuite/23_containers/stack/requirements/explicit_instantiation/
558 1_c++0x.cc: Replace with 1_c++98.cc.
559
560 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
561
562 * include/bits/locale_facets_nonio.tcc
563 (time_get::_M_extract_via_format): Avoid compilation errors with
564 non-standard struct tm.
565
566 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
567 Jonathan Wakely <jwakely@redhat.com>
568
569 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
570 (is_specialization, strip_versioned_namespace): New helpers functions
571 to work with symbols in the versioned namespace.
572 (Printer.add_version): Add second name using versioned namespace.
573 (add_one_template_type_printer, add_one_type_printer): Add second
574 type printers using versioned namespace.
575 (register_type_printers): Add template type printer for basic_string.
576 (build_libstdcxx_dictionary): Remove dead code.
577 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
578 versioned namespace.
579 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
580 results.
581 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
582
583 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
584
585 PR libstdc++/79017
586 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
587 functions separately on darwin and if they're missing define
588 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
589 * config.h.in: Regenerate.
590 * configure: Regenerate.
591 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
592 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
593
594 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
595 to detect correct thread_local destructors.
596 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
597 Define.
598
599 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
600 Aditya Kumar <hiraditya@msn.com>
601
602 PR libstdc++/66414
603 * include/bits/basic_string.tcc
604 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
605
606 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
607
608 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
609 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
610
611 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
612 Include <cassert> header.
613
614 PR libstdc++/78968
615 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
616 * configure: Regenerate.
617
618 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
619 Jonathan Wakely <jwakely@redhat.com>
620
621 * include/std/variant (variant, swap): Replace __and_ usage with fold
622 expressions.
623
624 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
625
626 PR go/78978
627 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
628 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
629 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
630 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
631 HWCAP_FLAGS.
632 * aclocal.m4: Regenerate.
633 * configure: Regenerate.
634 * Makefile.in, doc/Makefile.in, include/Makefile.in,
635 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
636 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
637 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
638
639 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
640
641 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
642
643 PR libstdc++/78991
644 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
645 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
646 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
647 move function objects.
648 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
649 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
650 * testsuite/25_algorithms/sort/78991.cc: New test.
651
652 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
653
654 * include/bits/std_function.h (function::_Signature_type): Remove.
655 (function::function(_Functor)): Adjust.
656
657 2017-01-05 Tim Shen <timshen@google.com>
658
659 PR libstdc++/78996
660 * include/std/variant (__gen_vtable_impl): rename __unused to
661 __dimensions to avoid naming conflict.
662
663 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
664
665 PR libstdc++/78968
666 * config.h.in: Regenerate.
667 * configure: Likewise.
668 * configure.ac: Check for __cxa_thread_atexit.
669 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
670 Don't define __cxa_thread_atexit if libc provides it.
671
672 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
673
674 Implement 2801, Default-constructibility of unique_ptr.
675 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
676 (unique_ptr::_DeleterConstraint): Likewise.
677 (unique_ptr()): Constrain.
678 (unique_ptr(pointer)): Likewise.
679 (unique_ptr(nullptr_t)): Likewise.
680 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
681 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
682 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
683 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
684 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
685 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
686 * testsuite/20_util/unique_ptr/cons/default.cc: New.
687 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
688
689 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
690 Jonathan Wakely <jwakely@redhat.com>
691
692 PR libstdc++/64735
693 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
694 * config.h.in: Regenerate.
695 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
696 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
697 exports for exception_ptr, nested_exception, and future conditional.
698 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
699 exports for exception_ptr, nested_exception, and future conditional.
700 * configure: Regenerate.
701 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
702 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
703 * libsupc++/eh_atomics.h: New file for internal use only.
704 (__eh_atomic_inc, __eh_atomic_dec): New.
705 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
706 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
707 (rethrow_exception): Use eh_atomics.h reference counting helpers.
708 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
709 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
710 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
711 * libsupc++/exception_ptr.h: Likewise.
712 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
713 * libsupc++/nested_exception.cc: Remove check for
714 ATOMIC_INT_LOCK_FREE.
715 * libsupc++/nested_exception.h: Likewise.
716 * src/c++11/future.cc: Likewise.
717 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
718 * testsuite/18_support/nested_exception/*: Likewise.
719 * testsuite/30_threads/async/*: Likewise.
720 * testsuite/30_threads/future/*: Likewise.
721 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
722 * testsuite/30_threads/packaged_task/*: Likewise.
723 * testsuite/30_threads/promise/*: Likewise.
724 * testsuite/30_threads/shared_future/*: Likewise.
725
726 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
727
728 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
729 defaults to https; adjust reference.
730
731 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
732
733 PR libstdc++/78956
734 * include/std/thread (thread(const thread&&)): Add deleted
735 constructor.
736 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
737
738 * doc/xml/manual/spine.xml: Update copyright years.
739 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
740 * doc/xml/manual/test.xml: Likewise.
741 * doc/html/*: Regenerate.
742
743 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
744
745 * doc/xml/faq.xml: Update address of C++ ABI link.
746 * doc/xml/manual/abi.xml: Ditto.
747
748 2017-01-01 Jakub Jelinek <jakub@redhat.com>
749
750 Update copyright years.
751 \f
752 Copyright (C) 2017 Free Software Foundation, Inc.
753
754 Copying and distribution of this file, with or without modification,
755 are permitted in any medium without royalty provided the copyright
756 notice and this notice are preserved.