Reduce the size of variant, it doesn't need an index of type size_t internally.
[gcc.git] / libstdc++-v3 / ChangeLog
1 2017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com>
2
3 Reduce the size of variant, it doesn't need an index of
4 type size_t internally.
5 * include/std/variant (parse_numbers.h): New include.
6 (__select_index): New.
7 (_Variant_storage<false, _Types...>::_M_reset_impl): Use
8 _index_type for comparison with variant_npos.
9 (_Variant_storage<false, _Types...>::__index_type): New.
10 (_Variant_storage<false, _Types...>::_M_index): Change the
11 type from size_t to __index_type.
12 (_Variant_storage<true, _Types...>::__index_type): New.
13 (_Variant_storage<true, _Types...>::_M_index): Change the
14 type from size_t to __index_type.
15 (_Variant_base::_M_valid): Use _Storage::__index_type
16 for comparison with variant_npos.
17 (variant::index): Use _Base::_Storage::__index_type
18 for comparison with variant_npos.
19 * testsuite/20_util/variant/index_type.cc: New.
20
21 2017-01-10 Jonathan Wakely <jwakely@redhat.com>
22
23 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
24 effective target selector to prevent running in C++17 mode.
25
26 PR libstdc++/77528
27 * include/bits/stl_queue.h (queue::c): Add default member initializer.
28 (queue::queue()): Add constructor and define as defaulted.
29 (queue::queue(_Sequence&&)): Remove default argument.
30 (priority_queue::c, priority_queue::comp): Add default member
31 initializers.
32 (priority_queue::priority_queue()): Add constructor and define as
33 defaulted.
34 (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
35 Remove default argument for first parameter.
36 * include/bits/stl_stack.h (stack::c): Add default member initializer.
37 (stack::stack()): Add constructor and define as defaulted.
38 (stack::stack(const _Sequence&)): Remove default argument.
39 * testsuite/23_containers/priority_queue/requirements/
40 explicit_instantiation/1.cc: Test explicit instantiation with
41 non-DefaultConstructible sequence.
42 * testsuite/23_containers/priority_queue/77528.cc: New test.
43 * testsuite/23_containers/priority_queue/requirements/
44 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
45 * testsuite/23_containers/queue/77528.cc: New test.
46 * testsuite/23_containers/queue/requirements/explicit_instantiation/
47 1.cc: Test explicit instantiation with non-DefaultConstructible
48 sequence.
49 * testsuite/23_containers/queue/requirements/explicit_instantiation/
50 1_c++0x.cc: Replace with 1_c++98.cc.
51 * testsuite/23_containers/stack/77528.cc: New test.
52 * testsuite/23_containers/stack/requirements/explicit_instantiation/
53 1.cc: Test explicit instantiation with non-DefaultConstructible
54 sequence.
55 * testsuite/23_containers/stack/requirements/explicit_instantiation/
56 1_c++0x.cc: Replace with 1_c++98.cc.
57
58 2017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
59
60 * include/bits/locale_facets_nonio.tcc
61 (time_get::_M_extract_via_format): Avoid compilation errors with
62 non-standard struct tm.
63
64 2017-01-10 François Dumont <fdumont@gcc.gnu.org>
65 Jonathan Wakely <jwakely@redhat.com>
66
67 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
68 (is_specialization, strip_versioned_namespace): New helpers functions
69 to work with symbols in the versioned namespace.
70 (Printer.add_version): Add second name using versioned namespace.
71 (add_one_template_type_printer, add_one_type_printer): Add second
72 type printers using versioned namespace.
73 (register_type_printers): Add template type printer for basic_string.
74 (build_libstdcxx_dictionary): Remove dead code.
75 * python/libstdcxx/v6/xmethods.py: Make all matchers look for
76 versioned namespace.
77 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
78 results.
79 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
80
81 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
82
83 PR libstdc++/79017
84 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
85 functions separately on darwin and if they're missing define
86 _GLIBCXX_NO_C99_ROUNDING_FUNCS.
87 * config.h.in: Regenerate.
88 * configure: Regenerate.
89 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
90 (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
91
92 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
93 to detect correct thread_local destructors.
94 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
95 Define.
96
97 2017-01-09 Jonathan Wakely <jwakely@redhat.com>
98 Aditya Kumar <hiraditya@msn.com>
99
100 PR libstdc++/66414
101 * include/bits/basic_string.tcc
102 (basic_string::find(const CharT*, size_type, size_type)): Optimize.
103
104 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
105
106 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
107 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
108
109 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
110 Include <cassert> header.
111
112 PR libstdc++/78968
113 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
114 * configure: Regenerate.
115
116 2017-01-06 Barrett Adair <barrettellisadair@gmail.com>
117 Jonathan Wakely <jwakely@redhat.com>
118
119 * include/std/variant (variant, swap): Replace __and_ usage with fold
120 expressions.
121
122 2017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
123
124 PR go/78978
125 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
126 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
127 GLIBCXX_CHECK_ASSEMBLER_HWCAP.
128 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
129 HWCAP_FLAGS.
130 * aclocal.m4: Regenerate.
131 * configure: Regenerate.
132 * Makefile.in, doc/Makefile.in, include/Makefile.in,
133 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
134 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
135 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
136
137 2017-01-06 Jonathan Wakely <jwakely@redhat.com>
138
139 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
140
141 PR libstdc++/78991
142 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
143 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
144 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
145 move function objects.
146 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
147 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
148 * testsuite/25_algorithms/sort/78991.cc: New test.
149
150 2017-01-05 Jonathan Wakely <jwakely@redhat.com>
151
152 * include/bits/std_function.h (function::_Signature_type): Remove.
153 (function::function(_Functor)): Adjust.
154
155 2017-01-05 Tim Shen <timshen@google.com>
156
157 PR libstdc++/78996
158 * include/std/variant (__gen_vtable_impl): rename __unused to
159 __dimensions to avoid naming conflict.
160
161 2017-01-04 Jonathan Wakely <jwakely@redhat.com>
162
163 PR libstdc++/78968
164 * config.h.in: Regenerate.
165 * configure: Likewise.
166 * configure.ac: Check for __cxa_thread_atexit.
167 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
168 Don't define __cxa_thread_atexit if libc provides it.
169
170 2017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com>
171
172 Implement 2801, Default-constructibility of unique_ptr.
173 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
174 (unique_ptr::_DeleterConstraint): Likewise.
175 (unique_ptr()): Constrain.
176 (unique_ptr(pointer)): Likewise.
177 (unique_ptr(nullptr_t)): Likewise.
178 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
179 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
180 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
181 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
182 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
183 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
184 * testsuite/20_util/unique_ptr/cons/default.cc: New.
185 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
186
187 2017-01-04 Pauli Nieminen <suokkos@gmail.com>
188 Jonathan Wakely <jwakely@redhat.com>
189
190 PR libstdc++/64735
191 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
192 * config.h.in: Regenerate.
193 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
194 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
195 exports for exception_ptr, nested_exception, and future conditional.
196 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
197 exports for exception_ptr, nested_exception, and future conditional.
198 * configure: Regenerate.
199 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
200 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
201 * libsupc++/eh_atomics.h: New file for internal use only.
202 (__eh_atomic_inc, __eh_atomic_dec): New.
203 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
204 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
205 (rethrow_exception): Use eh_atomics.h reference counting helpers.
206 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
207 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
208 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
209 * libsupc++/exception_ptr.h: Likewise.
210 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
211 * libsupc++/nested_exception.cc: Remove check for
212 ATOMIC_INT_LOCK_FREE.
213 * libsupc++/nested_exception.h: Likewise.
214 * src/c++11/future.cc: Likewise.
215 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
216 * testsuite/18_support/nested_exception/*: Likewise.
217 * testsuite/30_threads/async/*: Likewise.
218 * testsuite/30_threads/future/*: Likewise.
219 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
220 * testsuite/30_threads/packaged_task/*: Likewise.
221 * testsuite/30_threads/promise/*: Likewise.
222 * testsuite/30_threads/shared_future/*: Likewise.
223
224 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
225
226 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
227 defaults to https; adjust reference.
228
229 2017-01-03 Jonathan Wakely <jwakely@redhat.com>
230
231 PR libstdc++/78956
232 * include/std/thread (thread(const thread&&)): Add deleted
233 constructor.
234 * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
235
236 * doc/xml/manual/spine.xml: Update copyright years.
237 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
238 * doc/xml/manual/test.xml: Likewise.
239 * doc/html/*: Regenerate.
240
241 2017-01-01 Gerald Pfeifer <gerald@pfeifer.com>
242
243 * doc/xml/faq.xml: Update address of C++ ABI link.
244 * doc/xml/manual/abi.xml: Ditto.
245
246 2017-01-01 Jakub Jelinek <jakub@redhat.com>
247
248 Update copyright years.
249 \f
250 Copyright (C) 2017 Free Software Foundation, Inc.
251
252 Copying and distribution of this file, with or without modification,
253 are permitted in any medium without royalty provided the copyright
254 notice and this notice are preserved.