]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
ada: Fix up handling of ghost units [PR104027]
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
02a8a01b
GA
12022-01-12 Patrick Palka <ppalka@redhat.com>
2
3 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
4 directive.
5
62022-01-12 Patrick Palka <ppalka@redhat.com>
7
8 PR libstdc++/103955
9 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
10 Track the excess precision separately from the effective
11 precision. Avoid overflow in bounds check by splitting it into
12 two checks.
13 (__floating_to_chars_precision): Avoid overflow in bounds checks
14 similarly.
15 * testsuite/20_util/to_chars/103955.cc: New test.
16
01a254e3
GA
172022-01-11 Jonathan Wakely <jwakely@redhat.com>
18
19 PR libstdc++/103726
20 * include/Makefile.am: Install <source_location> for
21 freestanding.
22 * include/Makefile.in: Regenerate.
23 * include/std/version (__cpp_lib_source_location): Define for
24 freestanding.
25
262022-01-11 Jonathan Wakely <jwakely@redhat.com>
27
28 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
29 Add neoxcept (LWG 3593).
30
312022-01-11 Jonathan Wakely <jwakely@redhat.com>
32
33 * include/std/ranges (ranges::__detail::__box): Add constexpr to
34 assignment operators (LWG 3572).
35 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
36 view that uses copyable-box.
37
382022-01-11 Jonathan Wakely <jwakely@redhat.com>
39
40 PR libstdc++/103726
41 * include/Makefile.am: Install <coroutine> for freestanding.
42 * include/Makefile.in: Regenerate.
43 * include/std/coroutine: Adjust headers and preprocessor
44 conditions.
45 (__coroutine_traits_impl): Use concepts when available.
46 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
47
482022-01-11 Jonathan Wakely <jwakely@redhat.com>
49
50 * include/std/ostream (operator<<(basic_ostream&, charT)):
51 Use unformatted input if no padding is needed.
52 (operator<<(basic_ostream<char>&, char)): Likewise.
53
542022-01-11 Jonathan Wakely <jwakely@redhat.com>
55
56 PR libstdc++/103891
57 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
58 Define.
59 * include/std/variant (__cpp_lib_variant): Only define C++20
60 value when the compiler is known to support conditionally
61 trivial destructors.
62 * include/std/version (__cpp_lib_variant): Likewise.
63
642022-01-11 Jonathan Wakely <jwakely@redhat.com>
65
66 * include/bits/stl_iterator.h (common_iterator): Add constexpr
67 to all member functions (LWG 3574).
68 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
69 tests as constant expressions.
70 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
71
d9450aa0
GA
722022-01-10 Jakub Jelinek <jakub@redhat.com>
73
74 PR libstdc++/77760
75 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
76 (time_get::_M_extract_via_format): Declare new method with
77 __time_get_state& as an extra argument.
78 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
79 __state argument, set various fields in it while parsing. Handle %j,
80 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
81 for %p immediately. Add a wrapper around the method without the
82 __state argument for backwards compatibility.
83 (_M_extract_num): Remove all __len == 4 special cases.
84 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
85 initialize __state, pass it to _M_extract_via_format and finalize it
86 at the end.
87 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
88 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
89 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
90 version, don't call do_get but call _M_extract_via_format instead to
91 pass around state.
92 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
93 with extra __time_get_state and __time_get_state::_M_finalize_state.
94 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
95 day_of_the_year): New functions in anon namespace.
96 (mon_yday): New var in anon namespace.
97 (__time_get_state::_M_finalize_state): Define.
98 * testsuite/22_locale/time_get/get/char/4.cc: New test.
99 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
100 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
101 as year 197AD instead of error.
102 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
103 year 2001 instead of error.
104 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
105 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
106 197 as year 197AD instead of error.
107 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
108 1 as year 2001 instead of error.
109 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
110
1112022-01-10 Jonathan Wakely <jwakely@redhat.com>
112
113 PR libstdc++/103866
114 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
115 nothing for freestanding builds.
116 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
117 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
118 with --without-headers. Do not use GCC_HEADER_STDINT for
119 freestanding builds.
120 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
121 for freestanding builds.
122 * configure: Regenerate.
123 * Makefile.in: Regenerate.
124 * doc/Makefile.in: Regenerate.
125 * include/Makefile.in: Regenerate.
126 * libsupc++/Makefile.in: Regenerate.
127 * po/Makefile.in: Regenerate.
128 * python/Makefile.in: Regenerate.
129 * src/Makefile.in: Regenerate.
130 * src/c++11/Makefile.in: Regenerate.
131 * src/c++17/Makefile.in: Regenerate.
132 * src/c++20/Makefile.in: Regenerate.
133 * src/c++98/Makefile.in: Regenerate.
134 * src/filesystem/Makefile.in: Regenerate.
135 * testsuite/Makefile.in: Regenerate.
136
1372022-01-10 Jonathan Wakely <jwakely@redhat.com>
138
139 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
140 Add dg-timeout-factor directive.
141 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
142 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
143 * testsuite/28_regex/match_results/102667.cc: Likewise.
144
1452022-01-10 Jonathan Wakely <jwakely@redhat.com>
146
147 * doc/xml/manual/using.xml: Update documentation around default
148 -std option.
149 * doc/html/*: Regenerate.
150
1512022-01-10 Jonathan Wakely <jwakely@redhat.com>
152
153 PR libstdc++/100017
154 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
155 * src/c++17/Makefile.in: Regenerate.
156
3a5702df
GA
1572022-01-09 Sandra Loosemore <sandra@codesourcery.com>
158
159 * testsuite/18_support/type_info/constexpr.cc: Add explicit
160 -fdelete-null-pointer-checks option.
161
11ce8d04
GA
1622022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
163 Jonathan Wakely <jwakely@redhat.com>
164
165 PR libstdc++/103853
166 * include/bits/forward_list.tcc (forward_list::merge): Check for
167 self-merge.
168 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
169
1702022-01-06 Jonathan Wakely <jwakely@redhat.com>
171
172 * include/bits/regex.h (basic_regex, match_results): Qualify
173 name in friend declaration, to work around Clang bug.
174
1752022-01-06 Jonathan Wakely <jwakely@redhat.com>
176
177 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
178
1792022-01-06 Jonathan Wakely <jwakely@redhat.com>
180
181 PR libstdc++/103911
182 * include/std/charconv (__from_chars_alpha_to_num): Return
183 char instead of unsigned char. Change invalid return value to
184 127 instead of using numeric trait.
185 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
186 Change type of variable to char.
187
0fbefa25
GA
1882022-01-05 François Dumont <fdumont@gcc.gnu.org>
189
190 PR libstdc++/68303
191 * include/bits/hashtable_policy.h
192 (_Hashtable_hash_traits<_Hash>): New.
193 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
194 (_Hashtable_base<>::_M_key_equals): New.
195 (_Hashtable_base<>::_M_equals): Use latter.
196 (_Hashtable_base<>::_M_key_equals_tr): New.
197 (_Hashtable_base<>::_M_equals_tr): Use latter.
198 * include/bits/hashtable.h
199 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
200 (_Hashtable<>::find): Loop through elements to look for key if size is lower
201 than __small_size_threshold().
202 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
203 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
204 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
205 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
206 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
207 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
208 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
209 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
210 * testsuite/util/testsuite_performance.h
211 (report_performance): Use 9 width to display memory.
212 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
213 New performance test case.
214
2152022-01-05 Jonathan Wakely <jwakely@redhat.com>
216
217 PR libstdc++/103919
218 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
219 Relax constraints on string_view parameter.
220 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
221 Likewise.
222 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
223
2242022-01-05 Jonathan Wakely <jwakely@redhat.com>
225
226 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
227 ARM EABI.
228 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
229 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
230 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
231 is emitted.
232 (type_info::__equal): Define alias symbol.
233 * libsupc++/typeinfo (type_info::before): Combine different
234 implementations into one.
235 (type_info::operator==): Likewise. Use address equality for
236 constant evaluation. Call __equal for targets that require the
237 definition to be non-inline.
238 * testsuite/18_support/type_info/constexpr.cc: New test.
239
2402022-01-05 Jonathan Wakely <jwakely@redhat.com>
241
242 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
243 class and virtual functions as 'final'.
244 (io_category_instance): Use constinit union to make the object
245 immortal.
246 * src/c++11/future.cc (future_error_category): Define class and
247 virtual functions as 'final'.
248 (future_category_instance): Use constinit union.
249
2502022-01-05 Jonathan Wakely <jwakely@redhat.com>
251
252 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
253 versioned namespace from the type name that is printed.
254
2552022-01-05 Jonathan Wakely <jwakely@redhat.com>
256
257 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
258 printer for std::regex NFA states.
259
2602022-01-05 Jonathan Wakely <jwakely@redhat.com>
261
262 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
263 placeholders in comments.
264 * testsuite/23_containers/forward_list/operations/2.cc:
265 Likewise.
266 * testsuite/23_containers/forward_list/operations/3.cc:
267 Likewise.
268 * testsuite/23_containers/forward_list/operations/4.cc:
269 Likewise.
270 * testsuite/23_containers/forward_list/operations/5.cc:
271 Likewise.
272 * testsuite/23_containers/forward_list/operations/6.cc:
273 Likewise.
274 * testsuite/23_containers/forward_list/operations/7.cc:
275 Likewise.
276
2772022-01-05 Jonathan Wakely <jwakely@redhat.com>
278
279 PR libstdc++/103848
280 * include/bits/stl_deque.h (operator-): Do not use 0 as null
281 pointer constant.
282
2832022-01-05 Jonathan Wakely <jwakely@redhat.com>
284
285 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
286 Use std::_Construct for construct.
287
2882022-01-05 Jonathan Wakely <jwakely@redhat.com>
289
290 PR libstdc++/103877
291 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
292 * doc/html/faq.html: Regenerate.
293
2942022-01-05 Jonathan Wakely <jwakely@redhat.com>
295
296 * include/bits/regex.h (__regex_algo_impl): Change __policy and
297 __match_mode template parameters to be function parameters.
298 (regex_match, regex_search): Pass policy and match mode as
299 function arguments.
300 * include/bits/regex.tcc (__regex_algo_impl): Change template
301 parameters to function parameters.
302 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
303 'if constexpr' for conditions using template parameters.
304 (_RegexTranslator): Likewise.
305 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
306 Likewise.
307 * testsuite/util/testsuite_regex.h (regex_match_debug)
308 (regex_search_debug): Move template arguments to function
309 arguments.
310
3112022-01-05 Jonathan Wakely <jwakely@redhat.com>
312
313 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
314 results even if the match failed.
315
3162022-01-05 Jonathan Wakely <jwakely@redhat.com>
317
318 * include/bits/regex_compiler.tcc: Adjust all calls to
319 __throw_regex_error.
320 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
321 attribute.
322 * include/bits/regex_scanner.tcc: Likewise.
323 * src/c++11/regex.cc (desc): New helper function.
324 (regex_error::regex_error(error_type)): Use desc to get a string
325 corresponding to the error code.
326
b4df5e92 327\f
6123f29a 328Copyright (C) 2022 Free Software Foundation, Inc.
b4df5e92
JW
329
330Copying and distribution of this file, with or without modification,
331are permitted in any medium without royalty provided the copyright
332notice and this notice are preserved.