]>
Commit | Line | Data |
---|---|---|
6e926962 JJ |
1 | 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> |
2 | ||
3 | * doc/xml/manual/abi.xml: Update link to Arm ABI. | |
4 | * doc/html/manual/abi.html: Regenerate. | |
5 | ||
6 | 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> | |
7 | ||
8 | * doc/xml/manual/debug.xml: Move Valgrind references to https. | |
9 | * doc/html/manual/debug.html: Regenerate. | |
10 | ||
11 | 2020-12-26 Gerald Pfeifer <gerald@pfeifer.com> | |
12 | ||
13 | * doc/xml/manual/abi.xml: Update link to Intel's compatibility | |
14 | with GNU compilers document. | |
15 | * doc/html/manual/abi.html: Regenerate. | |
16 | ||
17 | 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> | |
18 | ||
19 | * doc/xml/manual/messages.xml: Update link to Java docs. | |
20 | * doc/html/manual/facets.html: Ditto. | |
21 | ||
22 | 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> | |
23 | ||
24 | * doc/xml/manual/documentation_hacking.xml: Convert three links | |
25 | to doxygen.nl to https. | |
26 | * doc/html/manual/documentation_hacking.html: Regenerate. | |
27 | ||
28 | 2020-12-23 Olivier Hainque <hainque@adacore.com> | |
29 | ||
30 | * testsuite/17_intro/names.cc: Account for VxWorks headers. | |
31 | ||
32 | 2020-12-21 Patrick Palka <ppalka@redhat.com> | |
33 | ||
34 | * include/bits/c++config (_GLIBCXX_FLOAT_IS_IEEE_BINARY_32): | |
35 | Define this macro. | |
36 | (_GLIBCXX_DOUBLE_IS_IEEE_BINARY_64): Likewise. | |
37 | * include/std/charconv (to_chars): Use these macros to | |
38 | conditionally hide the overloads for floating-point types. | |
39 | * src/c++17/floating_to_chars.cc: Use the macros to | |
40 | conditionally disable this file. | |
41 | (floating_type_traits<float>): Remove redundant static assert. | |
42 | (floating_type_traits<double>): Likewise. | |
43 | * testsuite/20_util/to_chars/double.cc: Run this test only on | |
44 | ieee-floats effective targets. | |
45 | * testsuite/20_util/to_chars/float.cc: Likewise. | |
46 | * testsuite/20_util/to_chars/long_double.cc: Likewise. | |
47 | * testsuite/lib/libstdc++.exp | |
48 | (check_effective_target_ieee-floats): Define new proc for | |
49 | detecting whether float and double have the IEEE binary32 and | |
50 | binary64 formats. | |
51 | ||
52 | 2020-12-20 Jonathan Wakely <jwakely@redhat.com> | |
53 | ||
54 | * include/std/semaphore: Fix indentation. | |
55 | ||
56 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
57 | ||
58 | PR libstdc++/98377 | |
59 | * src/c++17/floating_to_chars.cc (__floating_to_chars_precision): | |
60 | Fix mistake. | |
61 | ||
62 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
63 | ||
64 | PR libstdc++/98370 | |
65 | * src/c++17/floating_to_chars.cc (__floating_to_chars_shortest): | |
66 | Provide explicit template arguments to the call to std::max. | |
67 | ||
68 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
69 | ||
70 | PR libstdc++/98374 | |
71 | * src/c++17/floating_to_chars.cc: Guard include of <langinfo.h> | |
72 | with __has_include. | |
73 | (__floating_to_chars_precision) [!defined(RADIXCHAR)]: Don't | |
74 | attempt to obtain the radix character of the current locale, | |
75 | just assume it's '.'. | |
76 | ||
77 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
78 | ||
79 | * src/c++17/floating_from_chars.cc (from_chars_impl) | |
80 | [!defined(FE_TONEAREST)]: Don't adjust the rounding mode. | |
81 | * src/c++17/floating_to_chars.cc (__floating_to_chars_precision): | |
82 | Likewise. | |
83 | ||
84 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
85 | ||
86 | * testsuite/20_util/to_chars/double.cc: New test, consisting of | |
87 | testcases imported from the MSVC STL testsuite. | |
88 | * testsuite/20_util/to_chars/float.cc: Likewise. | |
89 | ||
90 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
91 | ||
92 | * config/abi/pre/gnu.ver: Add new exports. | |
93 | * include/std/charconv (to_chars): Declare the floating-point | |
94 | overloads for float, double and long double. | |
95 | * src/c++17/Makefile.am (sources): Add floating_to_chars.cc. | |
96 | * src/c++17/Makefile.in: Regenerate. | |
97 | * src/c++17/floating_to_chars.cc: New file. | |
98 | (to_chars): Define for float, double and long double. | |
99 | * testsuite/20_util/to_chars/long_double.cc: New test. | |
100 | ||
101 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
102 | ||
103 | * src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c, | |
104 | src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c, | |
105 | src/c++17/ryu/d2s_intrinsics.h, src/c++17/ryu/f2s.c, | |
106 | src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c: | |
107 | Apply local modifications. | |
108 | ||
109 | 2020-12-18 Patrick Palka <ppalka@redhat.com> | |
110 | ||
111 | * src/c++17/ryu/MERGE: New file. | |
112 | * src/c++17/ryu/common.h, src/c++17/ryu/d2fixed.c, | |
113 | src/c++17/ryu/d2fixed_full_table.h, src/c++17/ryu/d2s.c, | |
114 | src/c++17/ryu/d2s_full_table.h, src/c++17/ryu/d2s_intrinsics.h, | |
115 | src/c++17/ryu/digit_table.h, src/c++17/ryu/f2s.c, | |
116 | src/c++17/ryu/f2s_intrinsics.h, src/c++17/ryu/generic_128.c, | |
117 | src/c++17/ryu/generic_128.h, src/c++17/ryu/ryu_generic_128.h: | |
118 | Import these files from the Ryu library. | |
119 | ||
120 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
121 | ||
122 | * config/os/djgpp/error_constants.h: Test POSIX errno macros | |
123 | directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. | |
124 | * config/os/mingw32-w64/error_constants.h: Likewise. | |
125 | * config/os/mingw32/error_constants.h: Likewise. | |
126 | ||
127 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
128 | ||
129 | * testsuite/lib/libstdc++.exp (check_v3_target_gthreads_timed): | |
130 | Fix condition for _GTHREAD_USE_MUTEX_TIMEDLOCK test. | |
131 | ||
132 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
133 | ||
134 | * src/c++11/mutex.cc (std::once_flag::_M_finish): Add | |
135 | maybe_unused attribute to variable used in assertion. | |
136 | ||
137 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
138 | ||
139 | PR libstdc++/98344 | |
140 | * include/bits/semaphore_base.h: Fix preprocessor condition. | |
141 | ||
142 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
143 | ||
144 | * include/bits/std_thread.h (hash<thread::id>): Move here, | |
145 | from ... | |
146 | * include/std/thread (hash<thread::id>): ... here. | |
147 | ||
148 | 2020-12-17 Jonathan Wakely <jwakely@redhat.com> | |
149 | ||
150 | * config.h.in: Regenerate. | |
151 | * configure: Regenerate. | |
152 | ||
153 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
154 | ||
155 | * Makefile.in: Regenerate. | |
156 | * config.h.in: Regenerate. | |
157 | * config/abi/pre/gnu.ver: Make patterns less greedy. | |
158 | * config/os/gnu-linux/ldbl-ieee128-extra.ver: New file with patterns | |
159 | for IEEE128 long double symbols. | |
160 | * configure: Regenerate. | |
161 | * configure.ac: Enable alternative 128-bit long double format on | |
162 | powerpc64*-*-linux*. | |
163 | * doc/Makefile.in: Regenerate. | |
164 | * fragment.am: Regenerate. | |
165 | * include/Makefile.am: Set _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT. | |
166 | * include/Makefile.in: Regenerate. | |
167 | * include/bits/c++config: Define inline namespace for new long | |
168 | double symbols. Don't define _GLIBCXX_USE_FLOAT128 when it's the | |
169 | same type as long double. | |
170 | * include/bits/locale_classes.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] | |
171 | (locale::_Impl::_M_init_extra_ldbl128): Declare new member function. | |
172 | * include/bits/locale_facets.h (_GLIBCXX_NUM_FACETS): Simplify by | |
173 | only counting narrow character facets. | |
174 | (_GLIBCXX_NUM_CXX11_FACETS): Likewise. | |
175 | (_GLIBCXX_NUM_LBDL_ALT128_FACETS): New. | |
176 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] (num_get::__do_get): Define | |
177 | vtable placeholder for __ibm128 long double type. | |
178 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
179 | (num_get::__do_get): Declare vtable placeholder for __ibm128 long | |
180 | double type. | |
181 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
182 | (num_put::__do_put): Likewise. | |
183 | * include/bits/locale_facets.tcc | |
184 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
185 | (num_get::__do_get, num_put::__do_put): Define. | |
186 | * include/bits/locale_facets_nonio.h | |
187 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
188 | (money_get::__do_get): Declare vtable placeholder for __ibm128 long | |
189 | double type. | |
190 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
191 | (money_put::__do_put): Likewise. | |
192 | * include/bits/locale_facets_nonio.tcc | |
193 | [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __LONG_DOUBLE_IEEE128__] | |
194 | (money_get::__do_get, money_put::__do_put): Define. | |
195 | * include/ext/numeric_traits.h [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT] | |
196 | (__numeric_traits<__ibm128>, __numeric_traits<__ieee128>): Define. | |
197 | * libsupc++/Makefile.in: Regenerate. | |
198 | * po/Makefile.in: Regenerate. | |
199 | * python/Makefile.in: Regenerate. | |
200 | * src/Makefile.am: Add compatibility-ldbl-alt128.cc and | |
201 | compatibility-ldbl-alt128-cxx11.cc sources and recipes for objects. | |
202 | * src/Makefile.in: Regenerate. | |
203 | * src/c++11/Makefile.in: Regenerate. | |
204 | * src/c++11/compatibility-ldbl-alt128-cxx11.cc: New file defining | |
205 | symbols using the old 128-bit long double format, for the cxx11 ABI. | |
206 | * src/c++11/compatibility-ldbl-alt128.cc: Likewise, for the | |
207 | gcc4-compatible ABI. | |
208 | * src/c++11/compatibility-ldbl-facets-aliases.h: New header for long | |
209 | double compat aliases. | |
210 | * src/c++11/cow-locale_init.cc: Add comment. | |
211 | * src/c++11/cxx11-locale-inst.cc: Define C and C_is_char | |
212 | unconditionally. | |
213 | * src/c++11/cxx11-wlocale-inst.cc: Add sanity check. Include | |
214 | locale-inst.cc directly, not via cxx11-locale-inst.cc. | |
215 | * src/c++11/locale-inst-monetary.h: New header for monetary | |
216 | category instantiations. | |
217 | * src/c++11/locale-inst-numeric.h: New header for numeric category | |
218 | instantiations. | |
219 | * src/c++11/locale-inst.cc: Include new headers for monetary, | |
220 | numeric, and long double definitions. | |
221 | * src/c++11/wlocale-inst.cc: Remove long double compat aliases that | |
222 | are defined in new header now. | |
223 | * src/c++17/Makefile.am: Use -mabi=ibmlongdouble for | |
224 | floating_from_chars.cc. | |
225 | * src/c++17/Makefile.in: Regenerate. | |
226 | * src/c++17/floating_from_chars.cc (from_chars_impl): Add | |
227 | if-constexpr branch for __ieee128. | |
228 | (from_chars): Overload for __ieee128. | |
229 | * src/c++20/Makefile.in: Regenerate. | |
230 | * src/c++98/Makefile.in: Regenerate. | |
231 | * src/c++98/locale_init.cc (num_facets): Adjust calculation. | |
232 | (locale::_Impl::_Impl(size_t)): Call _M_init_extra_ldbl128. | |
233 | * src/c++98/localename.cc (num_facets): Adjust calculation. | |
234 | (locale::_Impl::_Impl(const char*, size_t)): Call | |
235 | _M_init_extra_ldbl128. | |
236 | * src/filesystem/Makefile.in: Regenerate. | |
237 | * testsuite/Makefile.in: Regenerate. | |
238 | * testsuite/util/testsuite_abi.cc: Add new symbol versions. | |
239 | Allow new symbols to be added to GLIBCXX_IEEE128_3.4.29 and | |
240 | CXXABI_IEEE128_1.3.13 too. | |
241 | * testsuite/26_numerics/complex/abi_tag.cc: Add u9__ieee128 to | |
242 | regex matching expected symbols. | |
243 | ||
244 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
245 | ||
246 | * include/std/utility: Use __has_builtin without checking if | |
247 | it's defined. | |
248 | ||
249 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
250 | ||
251 | * include/bits/c++config: Warn if __STRICT_ANSI__ state is | |
252 | inconsistent with __GLIBCXX_TYPE_INT_N_0. | |
253 | ||
254 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
255 | ||
256 | PR libstdc++/96083 | |
257 | * include/ext/throw_allocator.h: Use __has_builtin to check for | |
f04e7e54 | 258 | __builtin_sprintf support, and use std::sprintf if necessary. |
6e926962 JJ |
259 | |
260 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
261 | ||
262 | PR libstdc++/98319 | |
263 | * include/experimental/random: Only define contents for C++14 | |
264 | and later. | |
265 | * include/experimental/source_location: Likewise. | |
266 | * include/experimental/utility: Likewise. | |
267 | * testsuite/experimental/feat-lib-fund.cc: Include all LFTS | |
268 | headers that are present. Allow test to run for all modes. | |
269 | ||
270 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
271 | ||
272 | PR libstdc++/46447 | |
273 | * testsuite/performance/29_atomics/atomic_flag.cc: New test. | |
274 | ||
275 | 2020-12-16 Jonathan Wakely <jwakely@redhat.com> | |
276 | ||
277 | PR libstdc++/93151 | |
278 | * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove. | |
279 | * configure.ac: Regenerate. | |
280 | * config/os/generic/error_constants.h: Test POSIX errno macros | |
281 | directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. | |
282 | * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: | |
283 | Likewise. | |
284 | * testsuite/19_diagnostics/headers/system_error/93151.cc: New | |
285 | test. | |
286 | ||
287 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
288 | ||
289 | Revert: | |
290 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
291 | ||
292 | PR libstdc++/98108 | |
293 | * include/std/iostream (__ioinit): Add init_priority attribute. | |
294 | ||
295 | 2020-12-15 Keith Packard <keithp@keithp.com> | |
296 | ||
297 | * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Allow "stdio_pure" | |
298 | option and define _GLIBCXX_USE_PURE_STDIO when it is used. Also | |
299 | add "stdio_posix" option as an alias for "stdio". | |
300 | * config/io/basic_file_stdio.cc [_GLIBCXX_USE_PURE_STDIO]: Only | |
301 | use defined stdio entry points for all I/O operations, without | |
302 | direct calls to underlying POSIX functions. | |
303 | * config.h.in: Regenerate. | |
304 | * configure: Regenerate. | |
305 | ||
306 | 2020-12-15 Ville Voutilainen <ville.voutilainen@gmail.com> | |
307 | ||
308 | * testsuite/27_io/rvalue_streams.cc: Run the extraction to a char* | |
309 | for C++17 and lower only. | |
310 | ||
311 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
312 | ||
313 | * testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc: | |
314 | Add dg-timeout-factor directive. | |
315 | * testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc: | |
316 | Increase timeout factor from 2.0 to 3.0. | |
317 | * testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc: | |
318 | Likewise. | |
319 | * testsuite/lib/libstdc++.exp (check_effective_target_debug-mode): | |
320 | Define "debug-mode" as an effective-target keyword. | |
321 | ||
322 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
323 | ||
324 | * include/bits/c++config (__glibcxx_assert_1): Define as empty | |
325 | for C++11. | |
326 | ||
327 | 2020-12-15 Marius Hillenbrand <mhillen@linux.ibm.com> | |
328 | ||
329 | * testsuite/22_locale/locale/cons/5.cc: Add missing directives | |
330 | for required locales. | |
331 | ||
332 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
333 | ||
334 | * include/bits/iterator_concepts.h (incrementable_traits<Tp>): | |
335 | Remove workaround for PR c++/78173. | |
336 | ||
337 | 2020-12-15 Vladimir Vishnevsky <vv.os.swe@gmail.com> | |
338 | ||
339 | * configure.ac: Skip AC_LIBTOOL_DLOPEN check if avr-libc is used. | |
340 | * configure: Regenerate. | |
341 | ||
342 | 2020-12-15 Jonathan Wakely <jwakely@redhat.com> | |
343 | ||
344 | PR libstdc++/98108 | |
345 | * include/std/iostream (__ioinit): Add init_priority attribute. | |
346 | ||
347 | 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com> | |
348 | ||
349 | * doc/xml/manual/codecvt.xml: Update link to Unicode-HOWTO. | |
350 | * doc/html/manual/facets.html: Regenerate. | |
351 | ||
352 | 2020-12-14 François Dumont <fdumont@gcc.gnu.org> | |
353 | ||
354 | * testsuite/23_containers/array/debug/back1_neg.cc: Target c++14 because assertion | |
355 | is disabled in C++11. | |
356 | * testsuite/23_containers/array/debug/front1_neg.cc: Likewise. | |
357 | * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: Likewise. | |
358 | ||
359 | 2020-12-14 Martin Sebor <msebor@redhat.com> | |
360 | ||
361 | * testsuite/ext/vstring/requirements/exception/basic.cc: Suppress | |
362 | a false positive warning. | |
363 | * testsuite/ext/vstring/requirements/exception/propagation_consistent.cc: | |
364 | Same. | |
365 | ||
366 | 2020-12-14 François Dumont <fdumont@gcc.gnu.org> | |
367 | ||
368 | * testsuite/23_containers/array/debug/back2_neg.cc: target c++14 because assertion | |
369 | for constexpr is disabled in C++11. | |
370 | * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. | |
371 | * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: Likewise. | |
372 | * testsuite/23_containers/vector/debug/multithreaded_swap.cc: Include <memory> | |
373 | for shared_ptr. | |
374 | ||
375 | 2020-12-12 François Dumont <fdumont@gcc.gnu.org> | |
376 | ||
377 | * include/debug/macros.h (__glibcxx_check_can_increment_range): Replace | |
378 | _GLIBCXX_DEBUG_VERIFY_COND_AT usage with _GLIBCXX_DEBUG_VERIFY_AT_F. | |
379 | (__glibcxx_check_can_decrement_range): Likewise. | |
380 | * testsuite/25_algorithms/copy_backward/constexpr.cc (test03): New. | |
381 | * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: New test. | |
382 | * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: New test. | |
383 | * testsuite/25_algorithms/equal/constexpr_neg.cc: New test. | |
384 | * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: New test. | |
385 | ||
386 | 2020-12-10 Jonathan Wakely <jwakely@redhat.com> | |
387 | ||
388 | PR libstdc++/98226 | |
389 | * include/std/bit (__countl_one, __countr_one): Remove redundant | |
390 | branches. | |
391 | ||
392 | 2020-12-09 Jonathan Wakely <jwakely@redhat.com> | |
393 | ||
394 | * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Define NO_SLEEP | |
395 | if none of nanosleep, sleep and Sleep is available. | |
396 | * config.h.in: Regenerate. | |
397 | * configure: Regenerate. | |
398 | * include/std/thread [_GLIBCXX_NO_SLEEP] (__sleep_for): Do | |
399 | not declare. | |
400 | [_GLIBCXX_NO_SLEEP] (sleep_for, sleep_until): Do not | |
401 | define. | |
402 | * src/c++11/thread.cc [_GLIBCXX_NO_SLEEP] (__sleep_for): Do | |
403 | not define. | |
404 | ||
405 | 2020-12-08 Jason Merrill <jason@redhat.com> | |
406 | ||
407 | PR c++/96299 | |
408 | * testsuite/18_support/comparisons/algorithms/partial_order.cc: | |
409 | One more line needs to use VERIFY instead of static_assert. | |
410 | ||
411 | 2020-12-08 Jonathan Wakely <jwakely@redhat.com> | |
412 | ||
413 | * doc/xml/manual/appendix_contributing.xml: Use consistent | |
414 | indentation. | |
415 | * doc/html/manual/source_code_style.html: Regenerate. | |
416 | ||
417 | 2020-12-05 Iain Sandoe <iain@sandoe.co.uk> | |
418 | ||
419 | PR target/97865 | |
420 | * configure: Regenerate. | |
421 | ||
422 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
423 | ||
424 | PR c++/80780 | |
425 | * testsuite/18_support/source_location/1.cc (main): Adjust for | |
426 | __builtin_source_location using __PRETTY_FUNCTION__-like names instead | |
427 | __FUNCTION__-like. | |
428 | * testsuite/18_support/source_location/consteval.cc (main): Likewise. | |
429 | ||
430 | 2020-12-03 Martin Sebor <msebor@redhat.com> | |
431 | ||
432 | * testsuite/ext/vstring/modifiers/clear/56166.cc: Suppress a false | |
433 | positive warning. | |
434 | ||
435 | 2020-12-03 Jonathan Wakely <jwakely@redhat.com> | |
436 | ||
437 | * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Remove stray | |
438 | word from copy&paste. | |
439 | * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise. | |
440 | ||
441 | 2020-12-03 Jonathan Wakely <jwakely@redhat.com> | |
442 | ||
443 | * doc/xml/manual/status_cxx2020.xml: Update C++20 status. | |
444 | * doc/html/*: Regenerate. | |
445 | ||
446 | 2020-12-03 JeanHeyd Meneide <phdofthehouse@gmail.com> | |
447 | ||
448 | * doc/doxygen/user.cfg.in (INPUT): Add <source_location>. | |
449 | * include/Makefile.am: Add <source_location>. | |
450 | * include/Makefile.in: Regenerate. | |
451 | * include/std/version (__cpp_lib_source_location): Define. | |
452 | * include/std/source_location: New file. | |
453 | * testsuite/18_support/source_location/1.cc: New test. | |
454 | * testsuite/18_support/source_location/consteval.cc: New test. | |
455 | * testsuite/18_support/source_location/srcloc.h: New test. | |
456 | * testsuite/18_support/source_location/version.cc: New test. | |
457 | ||
458 | 2020-12-03 Jonathan Wakely <jwakely@redhat.com> | |
459 | ||
460 | PR libstdc++/93121 | |
461 | * include/std/bit (__cpp_lib_bit_cast, bit_cast): Define. | |
462 | * include/std/version (__cpp_lib_bit_cast): Define. | |
463 | * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: New test. | |
464 | * testsuite/26_numerics/bit/bit.cast/version.cc: New test. | |
465 | ||
466 | 2020-12-03 Jonathan Wakely <jwakely@redhat.com> | |
467 | ||
468 | * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: | |
469 | Update. | |
470 | * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: | |
471 | Update. | |
472 | ||
473 | 2020-12-03 Jonathan Wakely <jwakely@redhat.com> | |
474 | ||
475 | * include/std/array (array::operator[](size_t) const, array::front() const) | |
476 | (array::back() const) [__cplusplus == 201103]: Disable | |
477 | assertions. | |
478 | * testsuite/23_containers/array/element_access/constexpr_element_access.cc: | |
479 | Check for correct values. | |
480 | * testsuite/23_containers/array/tuple_interface/get_neg.cc: | |
481 | Adjust dg-error line numbers. | |
482 | * testsuite/23_containers/array/debug/constexpr_c++11.cc: New test. | |
483 | ||
484 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
485 | ||
486 | PR libstdc++/65480 | |
487 | PR libstdc++/68735 | |
488 | * python/libstdcxx/v6/printers.py (function_pointer_to_name): | |
489 | New helper function to get the name of a function from its | |
490 | address. | |
491 | (StdExpAnyPrinter.__init__): Use it. | |
492 | ||
493 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
494 | ||
495 | * testsuite/lib/dg-options.exp (add_options_for_libatomic): | |
496 | Replace powerpc-ibm-aix* and powerpc*-*-darwin* with check for | |
497 | powerpc && ilp32. | |
498 | ||
499 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
500 | ||
501 | * testsuite/27_io/basic_istream/ignore/char/94749.cc: Add | |
502 | dg-timeout-factor for ilp32 targets. | |
503 | * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: | |
504 | Likewise. | |
505 | ||
506 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
507 | ||
508 | * include/ext/rope (rope::_S_concat_char_iter) | |
509 | (rope::_S_destr_concat_char_iter): Add allocator parameter. | |
510 | (rope::push_back, rope::append, rope::insert, operator+): | |
511 | Pass allocator. | |
512 | * include/ext/ropeimpl.h (rope::_S_concat_char_iter) | |
513 | (rope::_S_destr_concat_char_iter): Add allocator parameter | |
514 | and use it. | |
515 | (_Rope_char_ref_proxy::operator=(_CharT)): Pass allocator. | |
516 | ||
517 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
518 | ||
519 | * include/ext/rope: Fix indentation of access specifiers. | |
520 | ||
521 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
522 | ||
523 | * include/bits/atomic_timed_wait.h: Use #if instead of #ifdef. | |
524 | * include/bits/semaphore_base.h: Likewise. | |
525 | * include/std/version: Remove trailing whitespace. | |
526 | ||
527 | 2020-12-02 Jonathan Wakely <jwakely@redhat.com> | |
528 | ||
529 | * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Store the | |
530 | name of the type and pass it to the iterator. | |
531 | (StdPathPrinter): Likewise. | |
532 | * testsuite/libstdc++-prettyprinters/filesystem-ts.cc: New test. | |
533 | ||
534 | 2020-12-01 Thomas Rodgers <trodgers@redhat.com> | |
535 | ||
536 | * include/bits/atomic_base.h: Replace usage of | |
537 | _GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait. | |
538 | * include/bits/atomic_timed_wait.h: Likewise. | |
539 | * include/bits/atomic_wait.h: Define __cpp_lib_atomic_wait | |
540 | feature test macro. | |
541 | * include/bits/semaphore_base.h: Replace usage of | |
542 | _GLIBCXX_HAVE_ATOMIC_WAIT with __cpp_lib_atomic_wait. | |
543 | * include/std/atomic: Likewise. | |
544 | * include/std/latch: Likewise. | |
545 | * include/std/semaphore: Likewise. | |
546 | * include/std/version: Define __cpp_lib_atomic wait | |
547 | feature test macro and replace usage of | |
548 | _GLIBCXX_HAVE_ATOMIC_WAIT. | |
549 | * testsuite/29_atomics/atomic/wait_notify/1.cc: New test. | |
550 | * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise. | |
551 | ||
552 | 2020-12-01 Michael Weghorn <m.weghorn@posteo.de> | |
553 | ||
554 | * python/libstdcxx/v6/printers.py (StdBitIteratorPrinter) | |
555 | (StdBitReferencePrinter): Add pretty-printers for | |
556 | _Bit_reference, _Bit_iterator and _Bit_const_iterator. | |
557 | * testsuite/libstdc++-prettyprinters/simple.cc: Test | |
558 | std::_Bit_reference, std::_Bit_iterator and | |
559 | std::_Bit_const_iterator. | |
560 | * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. | |
561 | ||
562 | 2020-12-01 Jonathan Wakely <jwakely@redhat.com> | |
563 | ||
564 | * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Define macro to | |
565 | work around different implementations of __has_builtin. | |
566 | (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP) | |
567 | (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE) | |
568 | (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED) | |
569 | (_GLIBCXX_HAVE_BUILTIN_IS_SAME, _GLIBCXX_HAVE_BUILTIN_LAUNDER): | |
570 | Define using _GLIBCXX_HAS_BUILTIN. | |
571 | ||
572 | 2020-12-01 Jonathan Wakely <jwakely@redhat.com> | |
573 | ||
574 | * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Add | |
575 | dg-timeout-factor directive. | |
576 | * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: | |
577 | Likewise. | |
578 | ||
579 | 2020-12-01 Jonathan Wakely <jwakely@redhat.com> | |
580 | ||
581 | PR libstdc++/98003 | |
582 | * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Add options for | |
583 | libatomic. | |
584 | ||
585 | 2020-11-30 Jonathan Wakely <jwakely@redhat.com> | |
586 | ||
587 | * doc/doxygen/user.cfg.in (INPUT): Add <latch> and <semaphore>. | |
588 | ||
589 | 2020-11-30 Jonathan Wakely <jwakely@redhat.com> | |
590 | ||
591 | * testsuite/lib/libstdc++.exp (libstdc++_init): Reduce | |
592 | default tool_timeout to 360. | |
593 | ||
594 | 2020-11-30 Jonathan Wakely <jwakely@redhat.com> | |
595 | ||
596 | * testsuite/20_util/specialized_algorithms/pstl/*: Add | |
597 | dg-timeout-factor. | |
598 | * testsuite/25_algorithms/pstl/*: Likewise. | |
599 | * testsuite/26_numerics/pstl/*: Likewise. | |
600 | * testsuite/28_regex/*: Likewise. | |
601 | ||
602 | 2020-11-29 John David Anglin <danglin@gcc.gnu.org> | |
603 | ||
604 | * configure: Regenerate. | |
605 | ||
606 | 2020-11-27 Jonathan Wakely <jwakely@redhat.com> | |
607 | ||
608 | * testsuite/lib/libstdc++.exp (v3_try_preprocess): Define | |
609 | new proc to preprocess a chunk of code. | |
610 | (v3_check_preprocessor_condition): Define new proc to test | |
611 | a preprocessor condition depending on GCC or libstdc++ macros. | |
612 | (check_v3_target_debug_mode, check_v3_target_normal_mode): | |
613 | Use v3_try_preprocess. | |
614 | (check_v3_target_normal_namespace) | |
615 | (check_v3_target_parallel_mode, check_v3_target_cstdint) | |
616 | (check_v3_target_cmath, check_v3_target_atomic_builtins) | |
617 | (check_v3_target_gthreads, check_v3_target_gthreads_timed) | |
618 | (check_v3_target_sleep, check_v3_target_sched_yield) | |
619 | (check_v3_target_string_conversions, check_v3_target_swprintf) | |
620 | (check_v3_target_binary_io, check_v3_target_nprocs): Use | |
621 | v3_check_preprocessor_condition. | |
622 | (check_effective_target_cxx11): Likewise. | |
623 | (check_effective_target_random_device): Likewise. | |
624 | (check_effective_target_tbb-backend): Likewise. | |
625 | (check_effective_target_futex): Likewise. | |
626 | (check_v3_target_little_endian) Call check_effective_target_le. | |
627 | (check_effective_target_atomic-builtins): New proc to define | |
628 | new effective-target keyword. | |
629 | (check_effective_target_gthreads-timed): Likewise. | |
630 | ||
631 | 2020-11-27 Jonathan Wakely <jwakely@redhat.com> | |
632 | ||
633 | * testsuite/27_io/filesystem/operations/absolute.cc: Avoid | |
634 | -Wrange-loop-construct warning. | |
635 | * testsuite/27_io/filesystem/path/append/source.cc: Likewise. | |
636 | * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. | |
637 | * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. | |
638 | * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. | |
639 | * testsuite/27_io/filesystem/path/decompose/extension.cc: | |
640 | Likewise. | |
641 | * testsuite/27_io/filesystem/path/decompose/filename.cc: | |
642 | Likewise. | |
643 | * testsuite/27_io/filesystem/path/decompose/parent_path.cc: | |
644 | Likewise. | |
645 | * testsuite/27_io/filesystem/path/decompose/relative_path.cc: | |
646 | Likewise. | |
647 | * testsuite/27_io/filesystem/path/decompose/root_directory.cc: | |
648 | Likewise. | |
649 | * testsuite/27_io/filesystem/path/decompose/root_path.cc: | |
650 | Likewise. | |
651 | * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. | |
652 | * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: | |
653 | Likewise. | |
654 | * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: | |
655 | Likewise. | |
656 | * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: | |
657 | Likewise. | |
658 | * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. | |
659 | * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise. | |
660 | * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc: | |
661 | Likewise. | |
662 | * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: | |
663 | Likewise. | |
664 | * testsuite/27_io/filesystem/path/query/has_extension.cc: | |
665 | Likewise. | |
666 | * testsuite/27_io/filesystem/path/query/has_filename.cc: | |
667 | Likewise. | |
668 | * testsuite/27_io/filesystem/path/query/has_parent_path.cc: | |
669 | Likewise. | |
670 | * testsuite/27_io/filesystem/path/query/has_relative_path.cc: | |
671 | Likewise. | |
672 | * testsuite/27_io/filesystem/path/query/has_root_directory.cc: | |
673 | Likewise. | |
674 | * testsuite/27_io/filesystem/path/query/has_root_name.cc: | |
675 | Likewise. | |
676 | * testsuite/27_io/filesystem/path/query/has_root_path.cc: | |
677 | Likewise. | |
678 | * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. | |
679 | * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. | |
680 | * testsuite/experimental/filesystem/operations/absolute.cc: | |
681 | Likewise. | |
682 | * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. | |
683 | * testsuite/experimental/filesystem/path/compare/path.cc: | |
684 | Likewise. | |
685 | * testsuite/experimental/filesystem/path/construct/copy.cc: | |
686 | Likewise. | |
687 | * testsuite/experimental/filesystem/path/decompose/extension.cc: | |
688 | Likewise. | |
689 | * testsuite/experimental/filesystem/path/decompose/filename.cc: | |
690 | Likewise. | |
691 | * testsuite/experimental/filesystem/path/decompose/parent_path.cc: | |
692 | Likewise. | |
693 | * testsuite/experimental/filesystem/path/decompose/relative_path.cc: | |
694 | Likewise. | |
695 | * testsuite/experimental/filesystem/path/decompose/root_directory.cc: | |
696 | Likewise. | |
697 | * testsuite/experimental/filesystem/path/decompose/root_path.cc: | |
698 | Likewise. | |
699 | * testsuite/experimental/filesystem/path/itr/traversal.cc: | |
700 | Likewise. | |
701 | * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: | |
702 | Likewise. | |
703 | * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: | |
704 | Likewise. | |
705 | * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: | |
706 | Likewise. | |
707 | * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: | |
708 | Likewise. | |
709 | * testsuite/experimental/filesystem/path/query/has_extension.cc: | |
710 | Likewise. | |
711 | * testsuite/experimental/filesystem/path/query/has_filename.cc: | |
712 | Likewise. | |
713 | * testsuite/experimental/filesystem/path/query/has_parent_path.cc: | |
714 | Likewise. | |
715 | * testsuite/experimental/filesystem/path/query/has_relative_path.cc: | |
716 | Likewise. | |
717 | * testsuite/experimental/filesystem/path/query/has_root_directory.cc: | |
718 | Likewise. | |
719 | * testsuite/experimental/filesystem/path/query/has_root_name.cc: | |
720 | Likewise. | |
721 | * testsuite/experimental/filesystem/path/query/has_root_path.cc: | |
722 | Likewise. | |
723 | * testsuite/experimental/filesystem/path/query/has_stem.cc: | |
724 | Likewise. | |
725 | * testsuite/experimental/filesystem/path/query/is_relative.cc: | |
726 | Likewise. | |
727 | ||
728 | 2020-11-27 Jonathan Wakely <jwakely@redhat.com> | |
729 | ||
730 | * src/c++98/locale.cc (locale::facet::_S_get_c_locale()): | |
731 | Revert change to use __is_single_threaded. | |
732 | * src/c++98/locale_init.cc (locale::_S_initialize()): | |
733 | Likewise. | |
734 | ||
735 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
736 | ||
737 | * include/bits/atomic_wait.h (_GLIBCXX_HAVE_ATOMIC_WAIT): | |
738 | Define. | |
739 | * include/bits/atomic_base.h: Check _GLIBCXX_HAVE_ATOMIC_WAIT. | |
740 | * include/bits/atomic_timed_wait.h: Likewise. | |
741 | * include/bits/semaphore_base.h: Likewise. | |
742 | * include/std/atomic: Likewise. | |
743 | * include/std/latch: Likewise. | |
744 | * include/std/semaphore: Likewise. | |
745 | ||
746 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
747 | ||
748 | * include/std/latch: Depend on _GLIBCXX_HAS_GTHREADS and | |
749 | _GLIBCXX_HAVE_LINUX_FUTEX. | |
750 | * include/std/version (__cpp_lib_latch): Define conditionally. | |
751 | ||
752 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
753 | ||
754 | * testsuite/lib/libstdc++.exp (check_effective_target_gthreads): | |
755 | Call check_v3_target_gthreads not check_v3_target_gthreads_timed. | |
756 | ||
757 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
758 | ||
759 | * testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc: | |
760 | Add dg-timeout-factor directive. | |
761 | * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc: | |
762 | Likewise. | |
763 | * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: | |
764 | Likewise. | |
765 | * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc: | |
766 | Likewise. | |
767 | * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc: | |
768 | Likewise. | |
769 | * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc: | |
770 | Likewise. | |
771 | * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: | |
772 | Likewise. | |
773 | * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc: | |
774 | Likewise. | |
775 | * testsuite/28_regex/algorithms/regex_search/61720.cc: Likewise. | |
776 | * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: | |
777 | Likewise. | |
778 | * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: | |
779 | Likewise. | |
780 | * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise. | |
781 | ||
782 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
783 | ||
784 | * testsuite/lib/libstdc++.exp (libstdc++_init): Only set | |
785 | tool_timeout if it hasn't been set by the user already. | |
786 | ||
787 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
788 | ||
789 | PR libstdc++/97936 | |
790 | * testsuite/29_atomics/atomic/wait_notify/bool.cc: Fix missed | |
791 | notifications by making the new thread wait until the parent | |
792 | thread is waiting on the condition variable. | |
793 | * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. | |
794 | * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. | |
795 | * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise. | |
796 | ||
797 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
798 | ||
799 | * testsuite/18_support/96817.cc: Use new effective-target | |
800 | keywords to select supported targets more effectively. | |
801 | * testsuite/30_threads/call_once/66146.cc: Likewise. | |
802 | * testsuite/lib/libstdc++.exp (check_effective_target_futex): | |
803 | Define new proc. | |
804 | (check_effective_target_gthreads): Define new proc to replace | |
805 | dg-require-gthreads. | |
806 | ||
807 | 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
808 | ||
809 | * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Remove libposix4 | |
810 | references. | |
811 | <solaris*>: Don't use -lrt any longer. | |
812 | * configure: Regenerate. | |
813 | * doc/xml/manual/configure.xml (--enable-libstdcxx-time=OPTION): | |
814 | Remove libposix4 reference. | |
815 | ||
816 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
817 | ||
818 | PR libstdc++/98001 | |
819 | * testsuite/ext/stdio_filebuf/char/79820.cc: Do not pass invalid | |
820 | FILE* to constructor. | |
821 | ||
822 | 2020-11-26 Jonathan Wakely <jwakely@redhat.com> | |
823 | ||
824 | * include/precompiled/stdc++.h: Add new headers. | |
825 | * include/std/stop_token: Include <semaphore> unconditionally. | |
826 | ||
827 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
828 | ||
829 | * include/bits/atomic_timed_wait.h (__cond_wait_until): Do not | |
830 | perform redundant conversions to the same clock. | |
831 | ||
832 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
833 | ||
834 | * include/bits/atomic_timed_wait.h (__cond_wait_until_impl): | |
835 | Do not define when _GLIBCXX_HAVE_LINUX_FUTEX is defined. Use | |
836 | __condvar and mutex instead of __gthread_cond_t and | |
837 | unique_lock<mutex>. | |
838 | (__cond_wait_until): Likewise. Fix test for return value of | |
839 | __cond_wait_until_impl. | |
840 | (__timed_waiters::_M_do_wait_until): Use __condvar instead | |
841 | of __gthread_cond_t. | |
842 | * include/bits/atomic_wait.h: Remove <bits/unique_lock.h> | |
843 | include. Only include <bits/std_mutex.h> if not using futexes. | |
844 | (__platform_wait_max_value): Remove unused variable. | |
845 | (__waiters::lock_t): Use lock_guard instead of unique_lock. | |
846 | (__waiters::_M_cv): Use __condvar instead of __gthread_cond_t. | |
847 | (__waiters::_M_do_wait(__platform_wait_t)): Likewise. | |
848 | (__waiters::_M_notify()): Likewise. Use notify_one() if not | |
849 | asked to notify all. | |
850 | * include/bits/std_mutex.h (__condvar): New type. | |
851 | * include/std/condition_variable (condition_variable::_M_cond) | |
852 | (condition_variable::wait_until): Use __condvar instead of | |
853 | __gthread_cond_t. | |
854 | * src/c++11/condition_variable.cc (condition_variable): Define | |
855 | default constructor and destructor as defaulted. | |
856 | (condition_variable::wait, condition_variable::notify_one) | |
857 | (condition_variable::notify_all): Forward to corresponding | |
858 | member function of __condvar. | |
859 | ||
860 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
861 | ||
862 | PR libstdc++/97936 | |
863 | * testsuite/29_atomics/atomic/wait_notify/bool.cc: Re-eneable | |
864 | test. | |
865 | * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. | |
866 | * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. | |
867 | * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. | |
868 | * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. | |
869 | * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. | |
870 | * testsuite/util/atomic/wait_notify_util.h: Fix missed | |
871 | notifications by making the new thread wait until the parent | |
872 | thread is waiting on the condition variable. | |
873 | ||
874 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
875 | ||
876 | PR libstdc++/97935 | |
877 | * include/bits/iterator_concepts.h (__detail::__iter_without_category): | |
878 | New helper concept. | |
879 | (__iterator_traits::__cat): Use __detail::__iter_without_category. | |
880 | * testsuite/24_iterators/associated_types/iterator.traits.cc: New test. | |
881 | ||
882 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
883 | ||
884 | * testsuite/17_intro/names.cc: Do not test 'v' on AIX. | |
885 | ||
886 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
887 | ||
888 | PR libstdc++/97936 | |
889 | * include/bits/atomic_wait.h (__platform_wait): Check errno, | |
890 | not just the value of EAGAIN. | |
891 | (__waiters::__waiters()): Fix name of data member. | |
892 | ||
893 | 2020-11-25 Jonathan Wakely <jwakely@redhat.com> | |
894 | ||
895 | PR libstdc++/97936 | |
896 | * include/bits/atomic_wait.h (__platform_wait): Return if futex | |
897 | sets EAGAIN. | |
898 | * testsuite/30_threads/latch/3.cc: Re-enable test. | |
899 | * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. | |
900 | ||
901 | 2020-11-24 Jonathan Wakely <jwakely@redhat.com> | |
902 | ||
903 | PR libstdc++/97936 | |
904 | PR libstdc++/97944 | |
905 | * testsuite/29_atomics/atomic_integral/wait_notify.cc: Disable. | |
906 | Do not require pthreads, but add -pthread when appropriate. | |
907 | * testsuite/30_threads/jthread/95989.cc: Likewise. | |
908 | * testsuite/30_threads/latch/3.cc: Likewise. | |
909 | * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. | |
910 | ||
911 | 2020-11-24 Jonathan Wakely <jwakely@redhat.com> | |
912 | ||
913 | * testsuite/30_threads/jthread/95989.cc: Run all three test | |
914 | functions, not just the first one twice. | |
915 | ||
916 | 2020-11-24 Jonathan Wakely <jwakely@redhat.com> | |
917 | ||
918 | PR libstdc++/67791 | |
919 | * src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())): | |
920 | Check that gthreads is available before calling __gthread_create. | |
921 | ||
922 | 2020-11-24 Jonathan Wakely <jwakely@redhat.com> | |
923 | ||
924 | * src/c++98/locale.cc (locale::facet::_S_get_c_locale()) | |
925 | (locale::id::_M_id() const): Use __is_single_threaded. | |
926 | * src/c++98/locale_init.cc (locale::_S_initialize()): | |
927 | Likewise. | |
928 | ||
929 | 2020-11-23 Jonathan Wakely <jwakely@redhat.com> | |
930 | ||
931 | * include/bits/semaphore_base.h | |
932 | (__platform_semaphore::_M_try_acquire_until): Fix type of | |
933 | variable. | |
934 | ||
935 | 2020-11-23 Stephan Bergmann <sbergman@redhat.com> | |
936 | ||
937 | * include/bits/atomic_wait.h (__thread_relax, __thread_yield): | |
938 | Add 'inline'. | |
939 | ||
940 | 2020-11-23 Jonathan Wakely <jwakely@redhat.com> | |
941 | ||
942 | * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for | |
943 | * config.h.in: Regenerate. | |
944 | * configure: Regenerate. | |
945 | * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE): | |
946 | Check autoconf macro instead of defining it here. | |
947 | ||
948 | 2020-11-23 Jonathan Wakely <jwakely@redhat.com> | |
949 | ||
950 | * include/bits/atomic_wait.h: Do not define anything unless | |
951 | gthreads or futexes are available. | |
952 | * include/bits/atomic_timed_wait.h: Likewise. | |
953 | * include/bits/semaphore_base.h: Likewise. | |
954 | * include/std/semaphore: Likewise. | |
955 | * include/bits/atomic_base.h (atomic_flag::wait) | |
956 | (atomic_flag::notify_one, atomic_flag::notify_all) | |
957 | (__atomic_base<I>::wait, __atomic_base<I>::notify_one) | |
958 | (__atomic_base<I>::notify_all, __atomic_base<P*>::wait) | |
959 | (__atomic_base<P*>::notify_one, __atomic_base<P*>::notify_all) | |
960 | (__atomic_impl::wait, __atomic_impl::notify_one) | |
961 | (__atomic_impl::notify_all, __atomic_float::wait) | |
962 | (__atomic_float::notify_one, __atomic_float::notify_all) | |
963 | (__atomic_ref::wait, __atomic_ref::notify_one) | |
964 | (__atomic_ref::notify_all): Only define if gthreads or futexes | |
965 | are available. | |
966 | * include/std/atomic (atomic::wait, atomic::notify_one) | |
967 | (atomic::notify_all): Likewise. | |
968 | * include/std/version (__cpp_lib_semaphore): Define | |
969 | conditionally. | |
970 | ||
971 | 2020-11-23 Jonathan Wakely <jwakely@redhat.com> | |
972 | ||
973 | PR libstdc++/97948 | |
974 | * testsuite/29_atomics/atomic_float/wait_notify.cc: Add options | |
975 | for libatomic. | |
976 | * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. | |
977 | * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise. | |
978 | ||
979 | 2020-11-21 Jonathan Wakely <jwakely@redhat.com> | |
980 | ||
981 | * include/bits/atomic_base.h (atomic_flag::wait): Use correct | |
982 | type for __atomic_wait call. | |
983 | * include/bits/atomic_timed_wait.h (__atomic_wait_until): Check | |
984 | _GLIBCXX_HAVE_LINUX_FUTEX. | |
985 | * include/bits/atomic_wait.h (__atomic_notify): Likewise. | |
986 | * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE): | |
987 | Only define if SEM_VALUE_MAX or _POSIX_SEM_VALUE_MAX is defined. | |
988 | * testsuite/29_atomics/atomic/wait_notify/bool.cc: Disable on | |
989 | non-linux targes. | |
990 | * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. | |
991 | * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. | |
992 | * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. | |
993 | * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. | |
994 | ||
995 | 2020-11-20 Thomas Rodgers <trodgers@redhat.com> | |
996 | ||
997 | * include/Makefile.am (bits_headers): Add new header. | |
998 | * include/Makefile.in: Regenerate. | |
999 | * include/bits/atomic_base.h (__atomic_flag::wait): Define. | |
1000 | (__atomic_flag::notify_one): Likewise. | |
1001 | (__atomic_flag::notify_all): Likewise. | |
1002 | (__atomic_base<_Itp>::wait): Likewise. | |
1003 | (__atomic_base<_Itp>::notify_one): Likewise. | |
1004 | (__atomic_base<_Itp>::notify_all): Likewise. | |
1005 | (__atomic_base<_Ptp*>::wait): Likewise. | |
1006 | (__atomic_base<_Ptp*>::notify_one): Likewise. | |
1007 | (__atomic_base<_Ptp*>::notify_all): Likewise. | |
1008 | (__atomic_impl::wait): Likewise. | |
1009 | (__atomic_impl::notify_one): Likewise. | |
1010 | (__atomic_impl::notify_all): Likewise. | |
1011 | (__atomic_float<_Fp>::wait): Likewise. | |
1012 | (__atomic_float<_Fp>::notify_one): Likewise. | |
1013 | (__atomic_float<_Fp>::notify_all): Likewise. | |
1014 | (__atomic_ref<_Tp>::wait): Likewise. | |
1015 | (__atomic_ref<_Tp>::notify_one): Likewise. | |
1016 | (__atomic_ref<_Tp>::notify_all): Likewise. | |
1017 | (atomic_wait<_Tp>): Likewise. | |
1018 | (atomic_wait_explicit<_Tp>): Likewise. | |
1019 | (atomic_notify_one<_Tp>): Likewise. | |
1020 | (atomic_notify_all<_Tp>): Likewise. | |
1021 | * include/bits/atomic_wait.h: New file. | |
1022 | * include/bits/atomic_timed_wait.h: New file. | |
1023 | * include/bits/semaphore_base.h: New file. | |
1024 | * include/std/atomic (atomic<bool>::wait): Define. | |
1025 | (atomic<bool>::wait_one): Likewise. | |
1026 | (atomic<bool>::wait_all): Likewise. | |
1027 | (atomic<_Tp>::wait): Likewise. | |
1028 | (atomic<_Tp>::wait_one): Likewise. | |
1029 | (atomic<_Tp>::wait_all): Likewise. | |
1030 | (atomic<_Tp*>::wait): Likewise. | |
1031 | (atomic<_Tp*>::wait_one): Likewise. | |
1032 | (atomic<_Tp*>::wait_all): Likewise. | |
1033 | * include/std/latch: New file. | |
1034 | * include/std/semaphore: New file. | |
1035 | * include/std/version: Add __cpp_lib_semaphore and | |
1036 | __cpp_lib_latch defines. | |
1037 | * testsuite/29_atomics/atomic/wait_notify/bool.cc: New test. | |
1038 | * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. | |
1039 | * testsuite/29_atomics/atomic/wait_notify/generic.cc: Liekwise. | |
1040 | * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. | |
1041 | * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. | |
1042 | * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. | |
1043 | * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise. | |
1044 | * testsuite/30_threads/semaphore/1.cc: New test. | |
1045 | * testsuite/30_threads/semaphore/2.cc: Likewise. | |
1046 | * testsuite/30_threads/semaphore/least_max_value_neg.cc: Likewise. | |
1047 | * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. | |
1048 | * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise. | |
1049 | * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise. | |
1050 | * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. | |
1051 | * testsuite/30_threads/latch/1.cc: New test. | |
1052 | * testsuite/30_threads/latch/2.cc: New test. | |
1053 | * testsuite/30_threads/latch/3.cc: New test. | |
1054 | * testsuite/util/atomic/wait_notify_util.h: New File. | |
1055 | ||
1056 | 2020-11-20 François Dumont <fdumont@gcc.gnu.org> | |
1057 | ||
1058 | PR libstdc++/83938 | |
1059 | * include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len | |
1060 | computation in the loop to avoid truncation. | |
1061 | * include/bits/stl_algo.h: | |
1062 | (__inplace_merge): Take temporary buffer length from smallest range. | |
1063 | (__stable_sort): Limit temporary buffer length. | |
1064 | * testsuite/25_algorithms/inplace_merge/1.cc (test4): New. | |
1065 | * testsuite/performance/25_algorithms/stable_sort.cc: Test stable_sort | |
1066 | under different heap memory conditions. | |
1067 | * testsuite/performance/25_algorithms/inplace_merge.cc: New test. | |
1068 | ||
1069 | 2020-11-20 François Dumont <fdumont@gcc.gnu.org> | |
1070 | ||
1071 | * include/bits/move.h (_GLIBCXX_FWDREF): New. | |
1072 | * include/bits/stl_tree.h: Adapt to use latter. | |
1073 | (_Rb_tree<>::_M_clone_node): Add _MoveValue template parameter. | |
1074 | (_Rb_tree<>::_M_mbegin): New. | |
1075 | (_Rb_tree<>::_M_begin): Use latter. | |
1076 | (_Rb_tree<>::_M_copy): Add _MoveValues template parameter. | |
1077 | * testsuite/23_containers/map/allocator/move_cons.cc: New test. | |
1078 | * testsuite/23_containers/multimap/allocator/move_cons.cc: New test. | |
1079 | * testsuite/23_containers/multiset/allocator/move_cons.cc: New test. | |
1080 | * testsuite/23_containers/set/allocator/move_cons.cc: New test. | |
1081 | ||
1082 | 2020-11-20 Jonathan Wakely <jwakely@redhat.com> | |
1083 | ||
1084 | PR libstdc++/92546 | |
1085 | * include/std/regex (pmr::smatch, pmr::wsmatch): Declare using | |
1086 | underlying __normal_iterator type, not nested typedef | |
1087 | basic_string::const_iterator. | |
1088 | ||
1089 | 2020-11-19 Jonathan Wakely <jwakely@redhat.com> | |
1090 | ||
1091 | PR libstdc++/95989 | |
1092 | * config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID): | |
1093 | Define new macro to get reliable thread ID. | |
1094 | * include/bits/std_thread.h: (this_thread::get_id): Use new | |
1095 | macro if it's defined. | |
1096 | * testsuite/30_threads/jthread/95989.cc: New test. | |
1097 | * testsuite/30_threads/this_thread/95989.cc: New test. | |
1098 | ||
1099 | 2020-11-19 Jonathan Wakely <jwakely@redhat.com> | |
1100 | ||
1101 | * testsuite/30_threads/async/async.cc: Include <thread>. | |
1102 | * testsuite/30_threads/future/members/93456.cc: Likewise. | |
1103 | ||
1104 | 2020-11-19 Jonathan Wakely <jwakely@redhat.com> | |
1105 | ||
1106 | PR libstdc++/92546 | |
1107 | * include/Makefile.am: Add new <bits/std_thread.h> header. | |
1108 | * include/Makefile.in: Regenerate. | |
1109 | * include/std/future: Include new header instead of <thread>. | |
1110 | * include/std/stop_token: Include new header instead of | |
1111 | <bits/gthr.h>. | |
1112 | (stop_token::_S_yield()): Use this_thread::yield(). | |
1113 | (_Stop_state_t::_M_requester): Change type to std::thread::id. | |
1114 | (_Stop_state_t::_M_request_stop()): Use this_thread::get_id(). | |
1115 | (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Likewise. | |
1116 | Use __is_single_threaded() to decide whether to synchronize. | |
1117 | * include/std/thread (thread, operator==, this_thread::get_id) | |
1118 | (this_thread::yield): Move to new header. | |
1119 | (operator<=>, operator!=, operator<, operator<=, operator>) | |
1120 | (operator>=, hash<thread::id>, operator<<): Define even when | |
1121 | gthreads not available. | |
1122 | * src/c++11/thread.cc: Include <memory>. | |
1123 | * include/bits/std_thread.h: New file. | |
1124 | (thread, operator==, this_thread::get_id, this_thread::yield): | |
1125 | Define even when gthreads not available. | |
1126 | [!_GLIBCXX_HAS_GTHREADS] (thread::join, thread::detach) | |
1127 | (thread::hardware_concurrency): Define inline. | |
1128 | ||
1129 | 2020-11-19 Jonathan Wakely <jwakely@redhat.com> | |
1130 | ||
1131 | PR libstdc++/93421 | |
1132 | PR libstdc++/93456 | |
1133 | * src/c++11/futex.cc (syscall_time_t): New typedef for | |
1134 | the type of the syscall_timespec::tv_sec member. | |
1135 | (relative_timespec, _M_futex_wait_until) | |
1136 | (_M_futex_wait_until_steady): Use syscall_time_t in overflow | |
1137 | checks, not time_t. | |
1138 | ||
1139 | 2020-11-18 Patrick Palka <ppalka@redhat.com> | |
1140 | ||
1141 | * include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify | |
1142 | local variable inner. | |
1143 | (join_view::_Iterator::operator->): Use _Inner_iter instead of | |
1144 | _Outer_iter in the function signature as per LWG 3500. | |
1145 | * testsuite/std/ranges/adaptors/join.cc (test08): Test it. | |
1146 | ||
1147 | 2020-11-17 Jonathan Wakely <jwakely@redhat.com> | |
1148 | ||
1149 | PR libstdc++/93421 | |
1150 | * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Fail if struct | |
1151 | timespec isn't compatible with SYS_clock_gettime. | |
1152 | * configure: Regenerate. | |
1153 | * src/c++11/chrono.cc: Revert changes for time64 compatibility. | |
1154 | Add static_assert instead. | |
1155 | * src/c++11/futex.cc (_M_futex_wait_until_steady): Assume | |
1156 | SYS_clock_gettime can use struct timespec. | |
1157 | ||
1158 | 2020-11-17 Jonathan Wakely <jwakely@redhat.com> | |
1159 | ||
1160 | PR libstdc++/97869 | |
1161 | * include/precompiled/stdc++.h: Include <coroutine>. | |
1162 | * include/std/version (__cpp_lib_span): Check __cpp_lib_concepts | |
1163 | before defining. | |
1164 | ||
1165 | 2020-11-17 Patrick Palka <ppalka@redhat.com> | |
1166 | ||
1167 | PR libstdc++/97828 | |
1168 | * include/bits/ranges_algo.h (__search_n_fn::operator()): Check | |
1169 | random_access_iterator before using the backtracking | |
1170 | implementation. When the backwards scan fails prematurely, | |
1171 | reset __remainder appropriately. | |
1172 | * testsuite/25_algorithms/search_n/97828.cc: New test. | |
1173 | ||
1174 | 2020-11-16 Jonathan Wakely <jwakely@redhat.com> | |
1175 | ||
1176 | * src/Makefile.am (libstdc++-symbols.ver-sun): Remove -lrt from | |
1177 | arguments passed to make_sunver.pl script. | |
1178 | * src/Makefile.in: Regenerate. | |
1179 | ||
1180 | 2020-11-15 Jason Merrill <jason@redhat.com> | |
1181 | ||
1182 | * testsuite/20_util/result_of/sfinae_friendly_1.cc: Adjust. | |
1183 | ||
1184 | 2020-11-13 Jonathan Wakely <jwakely@redhat.com> | |
1185 | ||
1186 | PR libstdc++/93421 | |
1187 | * src/c++11/chrono.cc [_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL] | |
1188 | (syscall_timespec): Define a type suitable for SYS_clock_gettime | |
1189 | calls. | |
1190 | (system_clock::now(), steady_clock::now()): Use syscall_timespec | |
1191 | instead of timespec. | |
1192 | * src/c++11/futex.cc (syscall_timespec): Define a type suitable | |
1193 | for SYS_futex and SYS_clock_gettime calls. | |
1194 | (relative_timespec): Use syscall_timespec instead of timespec. | |
1195 | (__atomic_futex_unsigned_base::_M_futex_wait_until): Likewise. | |
1196 | (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): | |
1197 | Likewise. | |
1198 | ||
1199 | 2020-11-13 Jonathan Wakely <jwakely@redhat.com> | |
1200 | ||
1201 | PR libstdc++/93456 | |
1202 | * src/c++11/futex.cc (relative_timespec): Remove redundant check | |
1203 | negative values. | |
1204 | * testsuite/30_threads/future/members/wait_until_overflow.cc: Moved to... | |
1205 | * testsuite/30_threads/future/members/93456.cc: ...here. | |
1206 | ||
1207 | 2020-11-13 Jonathan Wakely <jwakely@redhat.com> | |
1208 | ||
1209 | * src/c++11/futex.cc (relative_timespec): Add [[unlikely]] | |
1210 | attributes. | |
1211 | (__atomic_futex_unsigned_base::_M_futex_wait_until) | |
1212 | (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): | |
1213 | Check for overflow. | |
1214 | * testsuite/30_threads/future/members/wait_until_overflow.cc: | |
1215 | New test. | |
1216 | ||
1217 | 2020-11-13 Jonathan Wakely <jwakely@redhat.com> | |
1218 | ||
1219 | * src/c++11/futex.cc (relative_timespec): New function to | |
1220 | create relative time from two absolute times. | |
1221 | (__atomic_futex_unsigned_base::_M_futex_wait_until) | |
1222 | (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): | |
1223 | Use relative_timespec. | |
1224 | ||
1225 | 2020-11-13 Jonathan Wakely <jwakely@redhat.com> | |
1226 | ||
1227 | * testsuite/30_threads/future/members/poll.cc: Require gthreads | |
1228 | and add -pthread for targets that require it. Relax required | |
1229 | ratio of wait_for calls before/after the future is ready. | |
1230 | ||
1231 | 2020-11-12 Jonathan Wakely <jwakely@redhat.com> | |
1232 | ||
1233 | * include/std/future (future::wait_for): Do not wait for | |
1234 | durations less than or equal to zero. | |
1235 | * src/c++11/futex.cc (_M_futex_wait_until) | |
1236 | (_M_futex_wait_until_steady): Do not wait for timeouts before | |
1237 | the epoch. | |
1238 | * testsuite/30_threads/future/members/poll.cc: New test. | |
1239 | ||
1240 | 2020-11-12 Jonathan Wakely <jwakely@redhat.com> | |
1241 | ||
1242 | * include/ext/numeric_traits.h (__numeric_traits): Change | |
1243 | primary template to always derive from __numeric_traits_integer. | |
1244 | (__numeric_traits<float>, __numeric_traits<double>) | |
1245 | (__numeric_traits<long double>): Add explicit specializations. | |
1246 | ||
1247 | 2020-11-12 Jonathan Wakely <jwakely@redhat.com> | |
1248 | ||
1249 | PR libstdc++/97798 | |
1250 | * include/ext/numeric_traits.h (__glibcxx_signed) | |
1251 | (__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove | |
1252 | macros. | |
1253 | (__is_integer_nonstrict::__width): Define new constant. | |
1254 | (__numeric_traits_integer): Define constants in terms of each | |
1255 | other and __is_integer_nonstrict::__width, rather than the | |
1256 | removed macros. | |
1257 | (_GLIBCXX_INT_N_TRAITS): Macro to define explicit | |
1258 | specializations for non-standard integer types. | |
1259 | ||
1260 | 2020-11-11 Jonathan Yong <10walls@gmail.com> | |
1261 | ||
1262 | * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Exclude | |
1263 | cygwin and mingw from relro linker test. | |
1264 | * configure: Regenerate. | |
1265 | ||
1266 | 2020-11-11 Paul Scharnofske <asynts@gmail.com> | |
1267 | ||
1268 | * include/std/thread (jthread::operator=(jthread&&)): Transfer | |
1269 | any existing state to a temporary that will request a stop and | |
1270 | then join. | |
1271 | * testsuite/30_threads/jthread/jthread.cc: Test move assignment. | |
1272 | ||
1273 | 2020-11-11 Jonathan Wakely <jwakely@redhat.com> | |
1274 | ||
1275 | * include/std/stop_token (_Stop_state_t::_M_requester): Define | |
1276 | new struct with members to store and check the thread ID. | |
1277 | (_Stop_state_t::_M_request_stop()): Use _M_requester._M_set(). | |
1278 | (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Use | |
1279 | _M_requester._M_is_current_thread(). | |
1280 | ||
1281 | 2020-11-11 Jonathan Wakely <jwakely@redhat.com> | |
1282 | ||
1283 | * include/std/ostream (__syncbuf_base): New class template. | |
1284 | (emit_on_flush, noemit_on_flush, flush_emit): New manipulators. | |
1285 | * include/std/syncstream (basic_syncbuf): Derive from | |
1286 | __syncbuf_base instead of basic_streambuf. | |
1287 | (basic_syncbuf::operator=): Remove self-assignment check. | |
1288 | (basic_syncbuf::swap): Remove self-swap check. | |
1289 | (basic_syncbuf::emit): Do not skip pubsync() call if sequence | |
1290 | is empty. | |
1291 | (basic_syncbuf::sync): Remove no-op pubsync on stringbuf. | |
1292 | (basic_syncbuf::overflow): Define override. | |
1293 | * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Test | |
1294 | basic_osyncstream::put(char_type). | |
1295 | * testsuite/27_io/basic_ostream/emit/1.cc: New test. | |
1296 | ||
1297 | 2020-11-10 Jonathan Wakely <jwakely@redhat.com> | |
1298 | ||
1299 | * config/locale/generic/c_locale.cc (__set_C_locale()): New function | |
1300 | to set the "C" locale and return the name of the previous locale. | |
1301 | (__convert_to_v<float>, __convert_to_v<double>) | |
1302 | (__convert_to_v<long double>): Use __set_C_locale and set failbit on | |
1303 | error. | |
1304 | ||
1305 | 2020-11-10 Jonathan Wakely <jwakely@redhat.com> | |
1306 | ||
1307 | * include/std/sstream (basic_stringbug, basic_istringstream) | |
1308 | (basic_ostringstream, basic_stringstream): Reorder C++20 | |
1309 | constructors to be declared next to other constructors. | |
1310 | ||
1311 | 2020-11-10 Jonathan Wakely <jwakely@redhat.com> | |
1312 | ||
1313 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns. | |
1314 | (GLIBCXX_3.4.29): Export new symbols. | |
1315 | * include/bits/alloc_traits.h (__allocator_like): New concept. | |
1316 | * include/std/sstream (basic_stringbuf::swap): Add exception | |
1317 | specification. | |
1318 | (basic_stringbuf::str() const): Add ref-qualifier. Use new | |
1319 | _M_high_mark function. | |
1320 | (basic_stringbuf::str(const SAlloc&) const): Define new function. | |
1321 | (basic_stringbuf::str() &&): Likewise. | |
1322 | (basic_stringbuf::str(const basic_string<C,T,SAlloc>&)): | |
1323 | Likewise. | |
1324 | (basic_stringbuf::str(basic_string<C,T,Alloc>&&)): Likewise. | |
1325 | (basic_stringbuf::view() const): Use _M_high_mark. | |
1326 | (basic_istringstream::str, basic_ostringstream::str) | |
1327 | (basic_stringstream::str): Define new overloads. | |
1328 | * src/c++20/sstream-inst.cc (basic_stringbuf::str) | |
1329 | (basic_istringstream::str, basic_ostringstream::str) | |
1330 | (basic_stringstream::str): Explicit instantiation definitions | |
1331 | for new overloads. | |
1332 | * testsuite/27_io/basic_istringstream/view/char/1.cc: Add more | |
1333 | checks. | |
1334 | * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: | |
1335 | Likewise. | |
1336 | * testsuite/27_io/basic_ostringstream/view/char/1.cc: | |
1337 | Likewise. | |
1338 | * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: | |
1339 | Likewise. | |
1340 | * testsuite/27_io/basic_stringstream/view/char/1.cc: | |
1341 | Likewise. | |
1342 | * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: | |
1343 | Likewise. | |
1344 | * testsuite/27_io/basic_istringstream/str/char/2.cc: New test. | |
1345 | * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: New test. | |
1346 | * testsuite/27_io/basic_ostringstream/str/char/3.cc: New test. | |
1347 | * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: New test. | |
1348 | * testsuite/27_io/basic_stringbuf/str/char/4.cc: New test. | |
1349 | * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: New test. | |
1350 | * testsuite/27_io/basic_stringstream/str/char/5.cc: New test. | |
1351 | * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: New test. | |
1352 | ||
1353 | 2020-11-10 Jonathan Wakely <jwakely@redhat.com> | |
1354 | ||
1355 | PR libstdc++/97415 | |
1356 | * include/std/sstream (basic_stringbuf::_M_update_egptr) | |
1357 | (basic_stringbuf::__xfer_bufptrs::__xfer_bufptrs): Check for | |
1358 | null before comparing pointers. | |
1359 | ||
1360 | 2020-11-09 François Dumont <fdumont@gcc.gnu.org> | |
1361 | ||
1362 | * include/debug/array: Remove. | |
1363 | * include/Makefile.am: Remove <debug/array>. | |
1364 | * include/Makefile.in: Regenerate. | |
1365 | * include/experimental/functional: Adapt. | |
1366 | * include/std/array: Move to _GLIBCXX_INLINE_VERSION namespace. | |
1367 | * include/std/functional: Adapt. | |
1368 | * include/std/span: Adapt. | |
1369 | * testsuite/23_containers/array/debug/back1_neg.cc: | |
1370 | Remove dg-require-debug-mode. Add -D_GLIBCXX_ASSERTIONS option. | |
1371 | * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. | |
1372 | * testsuite/23_containers/array/debug/front1_neg.cc: Likewise. | |
1373 | * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. | |
1374 | * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: | |
1375 | Likewise. | |
1376 | * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: | |
1377 | Likewise. | |
1378 | * testsuite/23_containers/array/element_access/60497.cc | |
1379 | * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: | |
1380 | Remove. | |
1381 | * testsuite/23_containers/array/tuple_interface/get_neg.cc | |
1382 | * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc | |
1383 | * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc | |
1384 | ||
1385 | 2020-11-09 François Dumont <fdumont@gcc.gnu.org> | |
1386 | ||
1387 | * include/debug/assertions.h (__glibcxx_requires_non_empty_range): | |
1388 | Remove __builtin_expect. | |
1389 | (__glibcxx_requires_subscript): Likewise. | |
1390 | (__glibcxx_requires_nonempty): Likewise. | |
1391 | * include/debug/formatter.h (__check_singular): Add C++11 constexpr | |
1392 | qualification. | |
1393 | * include/debug/helper_functions.h (__check_singular): Likewise. Skip | |
1394 | check if constant evaluated. | |
1395 | (__valid_range): Do not skip check if constant evaluated. | |
1396 | * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Add | |
1397 | __builtin_expect. | |
1398 | (_GLIBCXX_DEBUG_VERIFY_AT_F): Use __glibcxx_assert_1. | |
1399 | * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: | |
1400 | New test. | |
1401 | * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: New test. | |
1402 | * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: New test. | |
1403 | * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc: | |
1404 | New test. | |
1405 | * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: | |
1406 | New test. | |
1407 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: | |
1408 | New test. | |
1409 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: New test. | |
1410 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: New test. | |
1411 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: | |
1412 | New test. | |
1413 | * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: New test. | |
1414 | * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: New test. | |
1415 | * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: New test. | |
1416 | * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc: New test. | |
1417 | * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: New test. | |
1418 | * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: New test. | |
1419 | * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: New test. | |
1420 | * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: New test. | |
1421 | * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc: New test. | |
1422 | * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: New test. | |
1423 | ||
1424 | 2020-11-09 Jonathan Wakely <jwakely@redhat.com> | |
1425 | ||
1426 | * include/bits/uniform_int_dist.h (__detail::_Power_of_2): | |
1427 | Document that true result for zero is intentional. | |
1428 | ||
1429 | 2020-11-09 Jonathan Wakely <jwakely@redhat.com> | |
1430 | ||
1431 | * include/std/bit (__popcount): Remove redundant check for zero. | |
1432 | ||
1433 | 2020-11-09 Jonathan Wakely <jwakely@redhat.com> | |
1434 | ||
1435 | PR libstdc++/97729 | |
1436 | * libsupc++/exception_ptr.h (exception_ptr::exception_ptr()) | |
1437 | (exception_ptr::exception_ptr(const exception_ptr&)) | |
1438 | (exception_ptr::~exception_ptr()): Remove 'always_inline' | |
1439 | attributes. Use 'inline' unconditionally. | |
1440 | ||
1441 | 2020-11-09 Jonathan Wakely <jwakely@redhat.com> | |
1442 | ||
1443 | PR libstdc++/97758 | |
1444 | * include/bits/std_function.h [!__cpp_rtti]: Include <typeinfo>. | |
1445 | ||
1446 | 2020-11-07 Liu Hao <lh_mouse@126.com> | |
1447 | ||
1448 | * libsupc++/cxxabi.h: (__cxa_atexit): mark with _GLIBCXX_CDTOR_CALLABI | |
1449 | (__cxa_thread_atexit): ditto | |
1450 | * libsupc++/atexit_thread.cc: (__cxa_atexit): mark with | |
1451 | _GLIBCXX_CDTOR_CALLABI | |
1452 | (__cxa_thread_atexit): ditto | |
1453 | (elt): ditto | |
1454 | ||
1455 | 2020-11-06 Jonathan Wakely <jwakely@redhat.com> | |
1456 | ||
1457 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten up patterns | |
1458 | for basic_stringbuf that refer to __xfer_bufptrs. | |
1459 | ||
1460 | 2020-11-05 Marek Polacek <polacek@redhat.com> | |
1461 | ||
1462 | PR c++/25814 | |
1463 | * testsuite/20_util/reference_wrapper/lwg2993.cc: Add a dg-warning. | |
1464 | * testsuite/25_algorithms/generate_n/87982_neg.cc: Likewise. | |
1465 | ||
1466 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1467 | ||
1468 | PR libstdc++/96269 | |
1469 | * include/std/optional (operator==, operator!=, operator<) | |
1470 | (operator>, operator<=, operator>=): Fix types used in | |
1471 | SFINAE constraints. | |
1472 | * testsuite/20_util/optional/relops/96269.cc: New test. | |
1473 | ||
1474 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1475 | ||
1476 | PR libstdc++/97731 | |
1477 | * src/filesystem/dir.cc (recursive_directory_iterator): Call the | |
1478 | right overload of _Dir::advance. | |
1479 | * testsuite/experimental/filesystem/iterators/97731.cc: New test. | |
1480 | ||
1481 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1482 | ||
1483 | PR libstdc++/97729 | |
1484 | * include/std/future (__basic_future::_M_get_result): Use | |
1485 | nullptr for null pointer constant. | |
1486 | * libsupc++/eh_ptr.cc (operator==, operator!=): Remove | |
1487 | definitions. | |
1488 | * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Define | |
1489 | macro to conditionally add __attribute__((__used__)). | |
1490 | (operator==, operator!=, exception_ptr::exception_ptr()) | |
1491 | (exception_ptr::exception_ptr(const exception_ptr&)) | |
1492 | (exception_ptr::~exception_ptr()) | |
1493 | (exception_ptr::operator=(const exception_ptr&)) | |
1494 | (exception_ptr::swap(exception_ptr&)): Always define as | |
1495 | inline. Add macro to be conditionally "used". | |
1496 | ||
1497 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1498 | ||
1499 | PR libstdc++/97729 | |
1500 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add exports. | |
1501 | * src/c++20/sstream-inst.cc (basic_stringbuf): Instantiate | |
1502 | private constructor taking __xfer_bufptrs. | |
1503 | ||
1504 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1505 | ||
1506 | * include/std/sstream (basic_stringbuf(const allocator_type&): | |
1507 | Add explicit. | |
1508 | (basic_stringbuf(const basic_string<C,T,SA>&, openmode, const A&)): | |
1509 | Call _M_stringbuf_init. Construct _M_string from pointer and length | |
1510 | to avoid constraint checks for string view. | |
1511 | (basic_stringbuf::view()): Make __sv_type alias local to the | |
1512 | function. | |
1513 | (basic_istringstream(const basic_string<C,T,SA>&, openmode, const A&)): | |
1514 | Pass string to _M_streambuf instead of constructing a temporary | |
1515 | with the wrong allocator. | |
1516 | (basic_ostringstream(const basic_string<C,T,SA>&, openmode, const A&)): | |
1517 | Likewise. | |
1518 | (basic_stringstream(const basic_string<C,T,SA>&, openmode, const A&)): | |
1519 | Likewise. | |
1520 | * src/c++20/sstream-inst.cc: Use string_view and wstring_view | |
1521 | typedefs in explicit instantiations. | |
1522 | * testsuite/27_io/basic_istringstream/cons/char/1.cc: Add more | |
1523 | tests for constructors. | |
1524 | * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. | |
1525 | * testsuite/27_io/basic_stringbuf/cons/char/1.cc: Likewise. | |
1526 | * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise. | |
1527 | * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise. | |
1528 | * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise. | |
1529 | * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. | |
1530 | ||
1531 | 2020-11-05 Jonathan Wakely <jwakely@redhat.com> | |
1532 | ||
1533 | * include/std/sstream: Adjust whitespace. | |
1534 | ||
1535 | 2020-11-04 Jonathan Wakely <jwakely@redhat.com> | |
1536 | ||
1537 | PR libstdc++/97719 | |
1538 | * include/std/sstream (basic_stringstream(string_type&&, openmode)): | |
1539 | Fix default argument. | |
1540 | * testsuite/27_io/basic_stringstream/cons/char/97719.cc: New test. | |
1541 | ||
1542 | 2020-11-04 Jonathan Wakely <jwakely@redhat.com> | |
1543 | ||
1544 | * testsuite/18_support/96817.cc: Fail fast if the library is | |
1545 | configured to not use futexes. | |
1546 | ||
1547 | 2020-11-04 Jonathan Wakely <jwakely@redhat.com> | |
1548 | ||
1549 | PR libstdc++/94971 | |
1550 | * include/bits/stl_algo.h (search(FIter, FIter, const Searcher): | |
1551 | Adjust #if condition. | |
1552 | * include/parallel/algo.h (search(FIter, FIter, const Searcher&): | |
1553 | Define new overload for C++17. | |
1554 | ||
1555 | 2020-11-04 Jonathan Wakely <jwakely@redhat.com> | |
1556 | ||
1557 | PR libstdc++/92285 | |
1558 | * doc/xml/manual/evolution.xml: Document change to base class. | |
1559 | * doc/html/manual/api.html: Regenerate. | |
1560 | ||
1561 | 2020-11-04 Jonathan Wakely <jwakely@redhat.com> | |
1562 | ||
1563 | * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd): | |
1564 | Use qualified-id to refer to static member functions. | |
1565 | ||
1566 | 2020-11-03 Jonathan Wakely <jwakely@redhat.com> | |
1567 | ||
1568 | * include/std/syncstream: Include <bits/std_mutex.h> | |
1569 | unconditionally. | |
1570 | ||
1571 | 2020-11-03 François Dumont <fdumont@gcc.gnu.org> | |
1572 | ||
1573 | * config/abi/pre/gnu-versioned-namespace.ver: | |
1574 | Add __istream_extract and _Safe_local_iterator_base::_M_attach_single | |
1575 | symbols. | |
1576 | ||
1577 | 2020-11-03 Jonathan Wakely <jwakely@redhat.com> | |
1578 | ||
1579 | * src/c++11/mutex.cc [_GLIBCXX_HAVE_TLS] (__once_proxy): Define | |
1580 | separately for TLS targets. | |
1581 | [!_GLIBCXX_HAVE_TLS] (__get_once_functor_lock_ptr): Replace with ... | |
1582 | (set_lock_ptr): ... this. Set new value and return previous | |
1583 | value. | |
1584 | [!_GLIBCXX_HAVE_TLS] (__set_once_functor_lock_ptr): Adjust to | |
1585 | use set_lock_ptr. | |
1586 | [!_GLIBCXX_HAVE_TLS] (__once_proxy): Likewise. | |
1587 | ||
1588 | 2020-11-03 Jonathan Wakely <jwakely@redhat.com> | |
1589 | ||
1590 | PR libstdc++/55394 | |
1591 | PR libstdc++/66146 | |
1592 | PR libstdc++/84323 | |
1593 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add new symbols. | |
1594 | * include/std/mutex [!_GLIBCXX_HAS_GTHREADS] (once_flag): Define | |
1595 | even when gthreads is not supported. | |
1596 | (once_flag::_M_once) [_GLIBCXX_HAVE_LINUX_FUTEX]: Change type | |
1597 | from __gthread_once_t to int. | |
1598 | (once_flag::_M_passive(), once_flag::_M_activate()) | |
1599 | (once_flag::_M_finish(bool), once_flag::_Active_execution): | |
1600 | Define new members for futex and non-threaded implementation. | |
1601 | [_GLIBCXX_HAS_GTHREADS] (once_flag::_Prepare_execution): New | |
1602 | RAII helper type. | |
1603 | (call_once): Use new members of once_flag. | |
1604 | * src/c++11/mutex.cc (std::once_flag::_M_activate): Define. | |
1605 | (std::once_flag::_M_finish): Define. | |
1606 | * testsuite/30_threads/call_once/39909.cc: Do not require | |
1607 | gthreads. | |
1608 | * testsuite/30_threads/call_once/49668.cc: Likewise. | |
1609 | * testsuite/30_threads/call_once/60497.cc: Likewise. | |
1610 | * testsuite/30_threads/call_once/call_once1.cc: Likewise. | |
1611 | * testsuite/30_threads/call_once/dr2442.cc: Likewise. | |
1612 | * testsuite/30_threads/call_once/once_flag.cc: Add test for | |
1613 | constexpr constructor. | |
1614 | * testsuite/30_threads/call_once/66146.cc: New test. | |
1615 | * testsuite/30_threads/call_once/constexpr.cc: Removed. | |
1616 | * testsuite/30_threads/once_flag/cons/constexpr.cc: Removed. | |
1617 | ||
1618 | 2020-11-03 Jonathan Yong <10walls@gmail.com> | |
1619 | ||
1620 | * src/Makefile.am (libstdc___la_LINK): Add lt_host_flags. | |
1621 | * src/Makefile.in: Regenerate. | |
1622 | ||
1623 | 2020-11-02 Thomas Rodgers <trodgers@redhat.com> | |
1624 | ||
1625 | * doc/doxygen/user.cfg.in (INPUT): Add new header. | |
1626 | * include/Makefile.am (std_headers): Add new header. | |
1627 | * include/Makefile.in: Regenerate. | |
1628 | * include/precompiled/stdc++.h: Include new header. | |
1629 | * include/std/syncstream: New header. | |
1630 | * include/std/version: Add __cpp_lib_syncbuf. | |
1631 | * testsuite/27_io/basic_syncbuf/1.cc: New test. | |
1632 | * testsuite/27_io/basic_syncbuf/2.cc: Likewise. | |
1633 | * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: | |
1634 | Likewise. | |
1635 | * testsuite/27_io/basic_syncbuf/requirements/types.cc: | |
1636 | Likewise. | |
1637 | * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: | |
1638 | Likewise. | |
1639 | * testsuite/27_io/basic_syncstream/1.cc: Likewise. | |
1640 | * testsuite/27_io/basic_syncstream/2.cc: Likewise. | |
1641 | * testsuite/27_io/basic_syncstream/basic_ops/1.cc: | |
1642 | Likewise. | |
1643 | * testsuite/27_io/basic_syncstream/requirements/types.cc: | |
1644 | Likewise. | |
1645 | ||
1646 | 2020-11-01 Jonathan Wakely <jwakely@redhat.com> | |
1647 | ||
1648 | * include/std/type_traits (is_integral<wchar_t>) | |
1649 | (make_unsigned<wchar_t>, make_signed<wchar_t>): Define based | |
1650 | on #ifdef __WCHAR_TYPE__ instead of _GLIBCXX_USE_WCHAR_T. | |
1651 | * include/bits/cpp_type_traits.h (__is_integer<wchar_t>) | |
1652 | (__is_char<wchar_t>): Likewise. | |
1653 | ||
1654 | 2020-10-31 François Dumont <fdumont@gcc.gnu.org> | |
1655 | ||
1656 | * src/c++17/floating_from_chars.cc (_GLIBCXX_USE_CX11_ABI): Add define. | |
1657 | (buffering_string): New. | |
1658 | [!_GLIBCXX_USE_CXX11_ABI](reserve_string): New. | |
1659 | (from_chars): Adapt. | |
1660 | * src/c++20/sstream-inst.cc: Limit instantiations to | |
1661 | _GLIBCXX_USE_CXX11_ABI. | |
1662 | ||
1663 | 2020-10-31 Jonathan Wakely <jwakely@redhat.com> | |
1664 | ||
1665 | * include/bits/random.h (independent_bit_engine): Fix typo | |
1666 | in comment. | |
1667 | (shuffle_order_engine): Fix incorrect description in comment. | |
1668 | * include/bits/random.tcc (__representable_as_double | |
1669 | (__p1_representable_as_double): New helper functions. | |
1670 | (shuffle_order_engine::operator()): Use double for calculation | |
1671 | if (max() - min() + 1) is representable as double. | |
1672 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error | |
1673 | line number. | |
1674 | ||
1675 | 2020-10-31 Jonathan Wakely <jwakely@redhat.com> | |
1676 | ||
1677 | PR libstdc++/96958 | |
1678 | * include/bits/hashtable_policy.h (_Prime_rehash_policy) | |
1679 | (_Power2_rehash_policy): Use ceil and floor instead of ceill and | |
1680 | floorl. | |
1681 | * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy): Likewise. | |
1682 | Use double instead of long double. | |
1683 | ||
1684 | 2020-10-31 Patrick Palka <ppalka@redhat.com> | |
1685 | ||
1686 | PR libstdc++/97600 | |
1687 | * include/std/ranges (basic_istream_view::begin): Initialize | |
1688 | _Iterator from 'this' instead of '*this'. | |
1689 | (basic_istream_view::_Iterator::_Iterator): Adjust constructor | |
1690 | accordingly. | |
1691 | (filter_view::_Iterator::_Iterator): Take a filter_view* | |
1692 | argument instead of a filter_view& argument. | |
1693 | (filter_view::_Sentinel::_Sentinel): Likewise. | |
1694 | (filter_view::begin): Initialize _Iterator from 'this' instead | |
1695 | of '*this'. | |
1696 | (filter_view::end): Likewise. | |
1697 | (transform_view::_Iterator::_Iterator): Take a _Parent* instead | |
1698 | of a _Parent&. | |
1699 | (filter_view::_Iterator::operator+): Adjust accordingly. | |
1700 | (filter_view::_Iterator::operator-): Likewise. | |
1701 | (filter_view::begin): Initialize _Iterator from 'this' instead | |
1702 | of '*this'. | |
1703 | (filter_view::end): Likewise. | |
1704 | (join_view::_Iterator): Take a _Parent* instead of a _Parent&. | |
1705 | (join_view::_Sentinel): Likewise. | |
1706 | (join_view::begin): Initialize _Iterator from 'this' instead of | |
1707 | '*this'. | |
1708 | (join_view::end): Initialize _Sentinel from 'this' instead of | |
1709 | '*this'. | |
1710 | (split_view::_OuterIter): Take a _Parent& instead of a _Parent*. | |
1711 | (split_view::begin): Initialize _OuterIter from 'this' instead | |
1712 | of '*this'. | |
1713 | (split_view::end): Likewise. | |
1714 | * testsuite/std/ranges/97600.cc: New test. | |
1715 | ||
1716 | 2020-10-30 Jonathan Wakely <jwakely@redhat.com> | |
1717 | ||
1718 | * include/std/ranges (enable_borrowed_view<take_view<T>>) | |
1719 | (enable_borrowed_view<drop_view<T>>) | |
1720 | (enable_borrowed_view<drop_while_view<T>>) | |
1721 | (enable_borrowed_view<reverse_view<T>>) | |
1722 | (enable_borrowed_view<common_view<T>>) | |
1723 | (enable_borrowed_view<elements_view<T>>): Add partial | |
1724 | specializations as per P2017R1. | |
1725 | * testsuite/std/ranges/adaptors/conditionally_borrowed.cc: | |
1726 | New test. | |
1727 | ||
1728 | 2020-10-30 Jonathan Wakely <jwakely@redhat.com> | |
1729 | ||
1730 | PR libstdc++/96958 | |
1731 | * include/bits/hashtable_policy.h (_Prime_rehash_policy) | |
1732 | (_Power2_rehash_policy): Use double instead of long double. | |
1733 | ||
1734 | 2020-10-30 Jonathan Wakely <jwakely@redhat.com> | |
1735 | ||
1736 | * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: | |
1737 | Avoid -Wcatch-value warnings. | |
1738 | ||
1739 | 2020-10-30 Patrick Palka <ppalka@redhat.com> | |
1740 | ||
1741 | * include/std/ranges (__detail::__box): For the partial | |
1742 | specialization used by types that are already semiregular, | |
1743 | make the default constructor value-initialize the underlying | |
1744 | object instead of default-initializing it. Make its in place | |
1745 | constructor explicit. | |
1746 | * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: | |
1747 | Augment test. | |
1748 | ||
1749 | 2020-10-30 David Edelsohn <dje.gcc@gmail.com> | |
1750 | ||
1751 | * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: XFAIL on AIX. | |
1752 | ||
1753 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1754 | ||
1755 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns | |
1756 | for old <sstream> symbols some more. | |
1757 | ||
1758 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1759 | ||
1760 | * include/bits/ranges_util.h (subrange::subrange(R&&)): Use | |
1761 | direct-initialization instead of list-initialization, so a | |
1762 | potential narrowing conversion from ranges::size(r) to the | |
1763 | stored size isn't ill-formed. | |
1764 | ||
1765 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1766 | ||
1767 | * include/bits/parse_numbers.h (_Select_int_base): Avoid | |
1768 | narrowing conversion in constant expression. | |
1769 | * include/experimental/buffer (buffer_copy): Avoid narrowing | |
1770 | conversion. | |
1771 | * include/experimental/internet (hash<>::operator()): Do not | |
1772 | use deprecated 'argument_type' member. | |
1773 | * include/std/variant (variant::emplace): Use cast instead | |
1774 | of implicit conversion from size_t to narrower unsigned type. | |
1775 | ||
1776 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1777 | ||
1778 | * include/tr1/shared_ptr.h (__shared_count, __shared_ptr) | |
1779 | (shared_ptr): Add diagnostic pragmas around uses of auto_ptr. | |
1780 | * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: | |
1781 | Adust dg-error line numbers. | |
1782 | ||
1783 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1784 | ||
1785 | * testsuite/18_support/96817.cc: Avoid -Wunused warnings. | |
1786 | * testsuite/20_util/any/assign/2.cc: Likewise. | |
1787 | * testsuite/20_util/any/cons/2.cc: Likewise. | |
1788 | * testsuite/20_util/align/1.cc: Avoid -Wsign-compare warning. | |
1789 | * testsuite/20_util/function/65760.cc: Avoid -Wunused warning. | |
1790 | * testsuite/20_util/function/1.cc: Avoid -Wcatch-value warning. | |
1791 | * testsuite/20_util/function/cons/move_target.cc: Avoid -Wunused | |
1792 | warning. | |
1793 | * testsuite/20_util/headers/memory/synopsis.cc: Add exception | |
1794 | specification. | |
1795 | * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Avoid | |
1796 | -Wsign-compare warning. | |
1797 | * testsuite/20_util/tuple/cons/deduction.cc: Avoid -Wunused | |
1798 | warning. | |
1799 | * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc: | |
1800 | Avoid -Wdeprecated-copy warning. | |
1801 | * testsuite/21_strings/basic_string/56166.cc: Avoid | |
1802 | -Wcatch-value warning. | |
1803 | * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc: | |
1804 | Avoid -Wcatch-value warnings. | |
1805 | * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc: | |
1806 | Likewise. | |
1807 | * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc: | |
1808 | Likewise. | |
1809 | * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc: | |
1810 | Likewise. | |
1811 | * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc: | |
1812 | Likewise. | |
1813 | * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc: | |
1814 | Likewise. | |
1815 | * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc: | |
1816 | Likewise. | |
1817 | * testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc: | |
1818 | Likewise. | |
1819 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc: | |
1820 | Likewise. | |
1821 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc: | |
1822 | Likewise. | |
1823 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc: | |
1824 | Likewise. | |
1825 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc: | |
1826 | Likewise. | |
1827 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc: | |
1828 | Likewise. | |
1829 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc: | |
1830 | Likewise. | |
1831 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc: | |
1832 | Likewise. | |
1833 | * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc: | |
1834 | Likewise. | |
1835 | * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: | |
1836 | Prune additional diagnostics. | |
1837 | * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: | |
1838 | Likewise. | |
1839 | * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: | |
1840 | Likewise. | |
1841 | * testsuite/21_strings/headers/string/synopsis.cc: Add exception | |
1842 | specifications. | |
1843 | * testsuite/22_locale/locale/cons/12352.cc: Define sized | |
1844 | delete operators to avoid warnings. | |
1845 | * testsuite/23_containers/deque/modifiers/swap/1.cc: Add | |
1846 | exception specification. | |
1847 | * testsuite/23_containers/forward_list/cons/11.cc: Avoid | |
1848 | -Wdeprecated-copy warning. | |
1849 | * testsuite/23_containers/headers/bitset/synopsis.cc: Add | |
1850 | exception specification. | |
1851 | * testsuite/23_containers/headers/deque/synopsis.cc: Likewise. | |
1852 | * testsuite/23_containers/headers/forward_list/synopsis.cc: | |
1853 | Likewise. | |
1854 | * testsuite/23_containers/headers/list/synopsis.cc: Likewise. | |
1855 | * testsuite/23_containers/headers/map/synopsis.cc: Likewise. | |
1856 | * testsuite/23_containers/headers/queue/synopsis.cc: Likewise. | |
1857 | * testsuite/23_containers/headers/set/synopsis.cc: Likewise. | |
1858 | * testsuite/23_containers/headers/vector/synopsis.cc: Likewise. | |
1859 | * testsuite/23_containers/list/modifiers/swap/1.cc: Likewise. | |
1860 | * testsuite/23_containers/map/modifiers/swap/1.cc: Likewise. | |
1861 | * testsuite/23_containers/multimap/modifiers/swap/1.cc: | |
1862 | Likewise. | |
1863 | * testsuite/23_containers/multiset/modifiers/swap/1.cc: | |
1864 | Likewise. | |
1865 | * testsuite/23_containers/set/modifiers/swap/1.cc: Likewise. | |
1866 | * testsuite/23_containers/unordered_set/56267-2.cc: Avoid | |
1867 | -Wdeprecated-copy warning. | |
1868 | * testsuite/23_containers/vector/bool/23632.cc: Avoid | |
1869 | -Wempty-body warning. | |
1870 | * testsuite/23_containers/vector/modifiers/swap/1.cc: Add | |
1871 | exception specification. | |
1872 | * testsuite/25_algorithms/heap/moveable2.cc: Fix misplaced | |
1873 | parentheses around arguments. | |
1874 | * testsuite/25_algorithms/sample/1.cc: Use return value. | |
1875 | * testsuite/25_algorithms/search/searcher.cc: Avoid -Wunused | |
1876 | warnings. | |
1877 | * testsuite/27_io/basic_ostream/exceptions/char/9561.cc: | |
1878 | Likewise. | |
1879 | * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: | |
1880 | Likewise. | |
1881 | * testsuite/27_io/filesystem/operations/remove_all.cc: Avoid | |
1882 | -Wsign-compare warning. | |
1883 | * testsuite/experimental/any/assign/2.cc: Avoid -Wunused warnings. | |
1884 | * testsuite/experimental/any/cons/2.cc: Likewise. | |
1885 | * testsuite/experimental/filesystem/operations/remove_all.cc: | |
1886 | Avoid -Wign-compare warning. | |
1887 | * testsuite/experimental/memory/observer_ptr/cons/cons.cc: | |
1888 | Likewise. | |
1889 | * testsuite/experimental/memory_resource/null_memory_resource.cc: | |
1890 | Likewise. | |
1891 | * testsuite/experimental/source_location/1.cc: Avoid -Waddress | |
1892 | warning. | |
1893 | * testsuite/ext/pod_char_traits.cc: Avoid -Wunused warning. | |
1894 | * testsuite/ext/vstring/modifiers/clear/56166.cc: Avoid | |
1895 | -Wcatch-value. | |
1896 | * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: | |
1897 | Avoid -Wunused warning. | |
1898 | * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: | |
1899 | Likewise. | |
1900 | * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: | |
1901 | Prune additional warnings. | |
1902 | * testsuite/tr1/3_function_objects/function/1.cc: Avoid | |
1903 | -Wcatch-value warning. | |
1904 | * testsuite/util/replacement_memory_operators.h: Define sized | |
1905 | delete to avoid warnings. | |
1906 | * testsuite/util/testsuite_api.h (_NonDefaultConstructible): Add | |
1907 | user-declared assignment operator to stop -Wdeprecated-copy | |
1908 | warnings. | |
1909 | * testsuite/util/testsuite_containers.h: Avoid -Wunused warning. | |
1910 | * testsuite/util/testsuite_iterators.h: Avoid -Wsign-compare | |
1911 | warnings. | |
1912 | * testsuite/util/testsuite_new_operators.h: Define sized deleted. | |
1913 | ||
1914 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1915 | ||
1916 | * testsuite/25_algorithms/all_of/constexpr.cc: Check result of | |
1917 | the algorithm. | |
1918 | * testsuite/25_algorithms/any_of/constexpr.cc: Likewise. | |
1919 | * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. | |
1920 | * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise. | |
1921 | * testsuite/25_algorithms/count/constexpr.cc: Likewise. | |
1922 | * testsuite/25_algorithms/equal/constexpr.cc: Likewise. | |
1923 | * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise. | |
1924 | * testsuite/25_algorithms/fill/constexpr.cc: Likewise. | |
1925 | * testsuite/25_algorithms/find_end/constexpr.cc: Likewise. | |
1926 | * testsuite/25_algorithms/find_if/constexpr.cc: Likewise. | |
1927 | * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise. | |
1928 | * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise. | |
1929 | * testsuite/25_algorithms/is_sorted_until/constexpr.cc: | |
1930 | Likewise. | |
1931 | * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: | |
1932 | Likewise. | |
1933 | * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise. | |
1934 | * testsuite/25_algorithms/merge/constexpr.cc: Likewise. | |
1935 | * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. | |
1936 | * testsuite/25_algorithms/none_of/constexpr.cc: Likewise. | |
1937 | * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise. | |
1938 | * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise. | |
1939 | * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise. | |
1940 | * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise. | |
1941 | * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise. | |
1942 | * testsuite/25_algorithms/reverse/constexpr.cc: Likewise. | |
1943 | * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise. | |
1944 | * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise. | |
1945 | * testsuite/25_algorithms/search/constexpr.cc: Likewise. | |
1946 | * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. | |
1947 | * testsuite/25_algorithms/set_intersection/constexpr.cc: | |
1948 | Likewise. | |
1949 | * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: | |
1950 | Likewise. | |
1951 | * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. | |
1952 | * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. | |
1953 | * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. | |
1954 | ||
1955 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1956 | ||
1957 | * include/bits/uniform_int_dist.h (_Power_of_two): Add | |
1958 | constexpr. | |
1959 | (uniform_int_distribution::_S_nd): Add static_assert to ensure | |
1960 | the wider type is twice as wide as the result type. | |
1961 | (uniform_int_distribution::__generate_impl): Add static_assert | |
1962 | and declare variables as constexpr where appropriate. | |
1963 | (uniform_int_distribution:operator()): Likewise. Only consider | |
1964 | the uniform random bit generator's range of possible results | |
1965 | when deciding whether _S_nd can be used, not the __uctype type. | |
1966 | ||
1967 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1968 | ||
1969 | * include/ext/rope (_Refcount_Base::_M_ref_count): Remove | |
1970 | volatile qualifier. | |
1971 | (_Refcount_Base::_M_decr()): Likewise. | |
1972 | ||
1973 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1974 | ||
1975 | * include/bits/std_function.h (_Function_handler<void, void>): | |
1976 | Define explicit specialization used for invalid target types. | |
1977 | (_Base_manager::_M_manager) [!__cpp_rtti]: Return null. | |
1978 | (function::target_type()): Check for null pointer. | |
1979 | (function::target()): Define unconditionall. Fix bug with | |
1980 | const_cast of function pointer type. | |
1981 | (function::target() const): Define unconditionally, but | |
1982 | only use RTTI if enabled. | |
1983 | * testsuite/20_util/function/target_no_rtti.cc: New test. | |
1984 | ||
1985 | 2020-10-29 Patrick Palka <ppalka@redhat.com> | |
1986 | ||
1987 | * testsuite/25_algorithms/lexicographical_compare/constrained.cc: | |
1988 | (test03): Fix initializing the vector vy with the array y of size 4. | |
1989 | ||
1990 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
1991 | ||
1992 | * include/bits/hashtable_policy.h (_Local_iterator_base): Cast | |
1993 | value to avoid -Wsign-compare warnings. | |
1994 | * include/bits/regex.h (sub_match::_M_str): Avoid narrowing | |
1995 | conversion. | |
1996 | * include/bits/regex_compiler.tcc (_Compiler::_M_quantifier): | |
1997 | Initialize variable to avoid -Wmaybe-uninitialized warning. | |
1998 | * include/bits/shared_ptr_base.h (_Sp_counted_deleter::_Impl): | |
1999 | Reorder mem-initializer-list to avoid -Wreorder warning. | |
2000 | * include/bits/stl_tree.h (_Rb_tree_impl): Explicitly | |
2001 | initialize base class in copy constructor. | |
2002 | * include/debug/safe_iterator.h (_Safe_iterator): Likewise. | |
2003 | * include/ext/debug_allocator.h: Reorder mem-initializer-list | |
2004 | to avoid -Wreorder warning. | |
2005 | * include/ext/throw_allocator.h (throw_allocator_limit) | |
2006 | (throw_allocator_random): Add user-declared assignment operators | |
2007 | to avoid -Wdeprecated-copy warnings. | |
2008 | ||
2009 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
2010 | ||
2011 | * include/bits/uniform_int_dist.h (uniform_int_distribution): | |
2012 | Rename _UniformRandomNumberGenerator template parameters to | |
2013 | _UniformRandomBitGenerator, as per P0346R1. | |
2014 | ||
2015 | 2020-10-29 Jonathan Wakely <jwakely@redhat.com> | |
2016 | ||
2017 | * include/std/sstream (basic_stringbuf(__string_type&&, openmode)): | |
2018 | Call _M_init_syncbuf to set up get/put areas. Also qualify | |
2019 | std::move. | |
2020 | ||
2021 | 2020-10-28 Jonathan Wakely <jwakely@redhat.com> | |
2022 | ||
2023 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Remove duplicate | |
2024 | patterns. | |
2025 | (CXXABI_1.3.13): Restore missing piece. | |
2026 | ||
2027 | 2020-10-28 Thomas Rodgers <trodgers@redhat.com> | |
2028 | ||
2029 | * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++20. | |
2030 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): New symbols. | |
2031 | * configure: Regenerate. | |
2032 | * include/std/sstream: | |
2033 | (basic_stringbuf::basic_stringbuf(allocator const&)): New constructor. | |
2034 | (basic_stringbuf::basic_stringbuf(openmode, allocator const&)): Likewise. | |
2035 | (basic_stringbuf::basic_stringbuf(basic_string&&, openmode)): Likewise. | |
2036 | (basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&)): | |
2037 | Likewise. | |
2038 | (basic_stringbuf::get_allocator()): New method. | |
2039 | (basic_stringbuf::view()): Likewise. | |
2040 | (basic_istringstream::basic_istringstream(basic_string&&, openmode)): | |
2041 | New constructor. | |
2042 | (basic_istringstream::basic_istringstream(openmode, allocator const&)): | |
2043 | Likewise | |
2044 | (basic_istringstream::view()): New method. | |
2045 | (basic_ostringstream::basic_ostringstream(basic_string&&, openmode)): | |
2046 | New constructor. | |
2047 | (basic_ostringstream::basic_ostringstream(openmode, allocator const&)): | |
2048 | Likewise | |
2049 | (basic_ostringstream::view()): New method. | |
2050 | (basic_stringstream::basic_stringstream(basic_string&&, openmode)): | |
2051 | New constructor. | |
2052 | (basic_stringstream::basic_stringstream(openmode, allocator const&)): | |
2053 | Likewise | |
2054 | (basic_stringstream::view()): New method. | |
2055 | * src/Makefile.in: Add c++20 directory. | |
2056 | * src/Makefile.am: Regenerate. | |
2057 | * src/c++20/Makefile.am: Add makefile for new sub-directory. | |
2058 | * src/c++20/Makefile.in: Generate. | |
2059 | * src/c++20/sstream-inst.cc: New file defining explicit | |
2060 | instantiations for basic_stringbuf, basic_istringstream, | |
2061 | basic_ostringstream, and basic_stringstream member functions | |
2062 | added in C++20. | |
2063 | * testsuite/27_io/basic_stringbuf/cons/char/2.cc: New test. | |
2064 | * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise. | |
2065 | * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise. | |
2066 | * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise. | |
2067 | * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise. | |
2068 | * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: Likewise. | |
2069 | * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise. | |
2070 | * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: Likewise. | |
2071 | * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. | |
2072 | * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: Likewise. | |
2073 | * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise. | |
2074 | * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: Likewise. | |
2075 | * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. | |
2076 | * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: Likewise. | |
2077 | * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise. | |
2078 | * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: Likewise. | |
2079 | ||
2080 | 2020-10-28 Patrick Palka <ppalka@redhat.com> | |
2081 | ||
2082 | PR libstdc++/97613 | |
2083 | * include/std/chrono (year_month_weekday::operator sys_days): | |
2084 | Cast the result of index() to int so that the initializer for | |
2085 | days{} is sign-extended when it's converted to the underlying | |
2086 | type. | |
2087 | * testsuite/std/time/year_month_weekday/3.cc: New test. | |
2088 | ||
2089 | 2020-10-28 Jonathan Wakely <jwakely@redhat.com> | |
2090 | ||
2091 | * libsupc++/new_opnt.cc (new): Add comment about forced unwind | |
2092 | exceptions. | |
2093 | ||
2094 | 2020-10-28 Jonathan Wakely <jwakely@redhat.com> | |
2095 | ||
2096 | PR libstdc++/94268 | |
2097 | * config/os/mingw32-w64/os_defines.h (_GLIBCXX_BUFSIZ): | |
2098 | Define. | |
2099 | * config/os/mingw32/os_defines.h (_GLIBCXX_BUFSIZ): | |
2100 | Define. | |
2101 | * include/bits/fstream.tcc: Use _GLIBCXX_BUFSIZ instead | |
2102 | of BUFSIZ. | |
2103 | * include/ext/stdio_filebuf.h: Likewise. | |
2104 | * include/std/fstream (_GLIBCXX_BUFSIZ): Define. | |
2105 | ||
2106 | 2020-10-28 Jonathan Wakely <jwakely@redhat.com> | |
2107 | ||
2108 | PR libstdc++/95592 | |
2109 | * include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR) | |
2110 | (_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION): | |
2111 | Use elaborated-type-specifier and qualified-id to avoid | |
2112 | ambiguities with QNX system headers. | |
2113 | * testsuite/26_numerics/valarray/95592.cc: New test. | |
2114 | ||
2115 | 2020-10-28 Jonathan Wakely <jwakely@redhat.com> | |
2116 | ||
2117 | PR libstdc++/95609 | |
2118 | * include/std/span (span): Reorder data members to match common | |
2119 | implementations of struct iovec. | |
2120 | * testsuite/23_containers/span/layout_compat.cc: New test. | |
2121 | ||
2122 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2123 | ||
2124 | * include/std/functional (std::_Placeholder): Define for C++98 | |
2125 | as well as later standards. | |
2126 | * include/tr1/functional (std::placeholders::_1 etc): Declare | |
2127 | for C++98. | |
2128 | (tr1::_Placeholder): Replace with using-declaration for | |
2129 | std::_Placeholder. | |
2130 | (tr1::placeholders::_1 etc.): Replace with using-directive for | |
2131 | std::placeholders. | |
2132 | ||
2133 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2134 | ||
2135 | * include/tr1/ell_integral.tcc (__ellint_rf, __ellint_rd) | |
2136 | (__ellint_rc, __ellint_rj): Remove unused variables. | |
2137 | * include/tr1/modified_bessel_func.tcc (__airy): Likewise. | |
2138 | ||
2139 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2140 | ||
2141 | * include/bits/locale_conv.h (__str_codecvt_out_all): | |
2142 | Add cast to compare operands of the same signedness. | |
2143 | * include/bits/locale_facets_nonio.tcc | |
2144 | (time_get::_M_extract_wday_or_month): Likewise. | |
2145 | * include/bits/sstream.tcc (basic_stringbuf::overflow): | |
2146 | Likewise. | |
2147 | * include/tr1/legendre_function.tcc (__sph_legendre): Use | |
2148 | unsigned for loop variable. | |
2149 | ||
2150 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2151 | ||
2152 | * include/std/charconv (from_chars): Add noexcept to match | |
2153 | definitions in src/c++17/floating_from_chars.cc | |
2154 | ||
2155 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2156 | ||
2157 | * src/c++17/fs_dir.cc (fs::directory_iterator::operator*): | |
2158 | Add noexcept. Do not throw on precondition violation. | |
2159 | ||
2160 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2161 | ||
2162 | * include/bits/fs_path.h (path::_List::begin, path::_List::end): | |
2163 | Add noexcept to match definitions in src/c++17/fs_path.cc. | |
2164 | ||
2165 | 2020-10-27 Jonathan Wakely <jwakely@redhat.com> | |
2166 | ||
2167 | * testsuite/experimental/memory_resource/new_delete_resource.cc: | |
2168 | Add missing <cstdint> header. | |
2169 | * testsuite/experimental/memory_resource/resource_adaptor.cc: | |
2170 | Likewise. | |
2171 | ||
2172 | 2020-10-26 Jonathan Wakely <jwakely@redhat.com> | |
2173 | ||
2174 | * include/experimental/executor (strand::_State): Fix thinko. | |
2175 | ||
2176 | 2020-10-26 Ville Voutilainen <ville.voutilainen@gmail.com> | |
2177 | ||
2178 | * include/std/type_traits (__is_nt_constructible_impl): Remove. | |
2179 | (__is_nothrow_constructible_impl): Adjust. | |
2180 | (is_nothrow_default_constructible): Likewise. | |
2181 | (__is_nt_assignable_impl): Remove. | |
2182 | (__is_nothrow_assignable_impl): Adjust. | |
2183 | ||
2184 | 2020-10-26 Jonathan Wakely <jwakely@redhat.com> | |
2185 | ||
2186 | PR libstdc++/97570 | |
2187 | * libsupc++/new_opa.cc: Declare size_t in global namespace. | |
2188 | Remove unused header. | |
2189 | ||
2190 | 2020-10-26 Stephan Bergmann <sbergman@redhat.com> | |
2191 | ||
2192 | * include/bits/shared_ptr_base.h | |
2193 | (_Sp_counted_base::_M_add_ref_lock_nothrow(): Add noexcept to | |
2194 | definitions to match declaration. | |
2195 | (__shared_count(const __weak_count&, nothrow_t)): Add noexcept | |
2196 | to declaration to match definition. | |
2197 | ||
2198 | 2020-10-23 Patrick Palka <ppalka@redhat.com> | |
2199 | ||
2200 | * include/std/ranges (single_view::single_view): Mark the | |
2201 | in place constructor explicit as per LWG 3428. | |
2202 | (take_view): Remove the constraint on the deduction guide's | |
2203 | template parameter as per LWG 3447. | |
2204 | ||
2205 | 2020-10-23 Jonathan Wakely <jwakely@redhat.com> | |
2206 | ||
2207 | * include/experimental/memory_resource: Include <tuple>. | |
2208 | (polymorphic_allocator::construct): Qualify forward_as_tuple. | |
2209 | * include/std/memory_resource: Likewise. | |
2210 | ||
2211 | 2020-10-22 Jonathan Wakely <jwakely@redhat.com> | |
2212 | ||
2213 | * testsuite/30_threads/condition_variable/members/68519.cc: | |
2214 | Define recent_epoch_float_clock::duration to meet the Cpp17Clock | |
2215 | requirements. | |
2216 | ||
2217 | 2020-10-22 Jonathan Wakely <jwakely@redhat.com> | |
2218 | ||
2219 | * include/std/shared_mutex: Only include <condition_variable> | |
2220 | when pthread_rwlock_t and POSIX timers are not available. | |
2221 | (__cpp_lib_shared_mutex, __cpp_lib_shared_timed_mutex): Change | |
2222 | value to be type 'long'. | |
2223 | * include/std/version (__cpp_lib_shared_mutex) | |
2224 | (__cpp_lib_shared_timed_mutex): Likewise. | |
2225 | ||
2226 | 2020-10-22 Jonathan Wakely <jwakely@redhat.com> | |
2227 | ||
2228 | * include/Makefile.am: Add new header. | |
2229 | * include/Makefile.in: Regenerate. | |
2230 | * include/bits/shared_ptr.h: Include <iosfwd>. | |
2231 | * include/bits/shared_ptr_base.h: Include required headers here | |
2232 | directly, instead of in <memory>. | |
2233 | * include/bits/uses_allocator_args.h: New file. Move utility | |
2234 | functions for uses-allocator construction from <memory> to here. | |
2235 | Only define the utility functions when concepts are available. | |
2236 | (__cpp_lib_make_obj_using_allocator): Define non-standard | |
2237 | feature test macro. | |
2238 | * include/std/condition_variable: Remove unused headers. | |
2239 | * include/std/future: Likewise. | |
2240 | * include/std/memory: Remove headers that are not needed | |
2241 | directly, and are now inclkuded where they're needed. Include | |
2242 | new <bits/uses_allocator_args.h> header. | |
2243 | * include/std/memory_resource: Include only the necessary | |
2244 | headers. Use new feature test macro to detect support for the | |
2245 | utility functions. | |
2246 | * include/std/scoped_allocator: Likewise. | |
2247 | * include/std/version (__cpp_lib_make_obj_using_allocator): | |
2248 | Define. | |
2249 | ||
2250 | 2020-10-22 Olivier Hainque <hainque@adacore.com> | |
2251 | ||
2252 | * crossconfig.m4: Turn vxworks matcher into vxworks*. | |
2253 | * configure.host: Likewise. | |
2254 | * configure: Regenerate. | |
2255 | ||
2256 | 2020-10-21 Jonathan Wakely <jwakely@redhat.com> | |
2257 | ||
2258 | * include/bits/shared_ptr.h (shared_ptr(const weak_ptr&, nothrow_t)): | |
2259 | Add noexcept. | |
2260 | * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_add_ref_lock): | |
2261 | Remove specializations and just call _M_add_ref_lock_nothrow. | |
2262 | (__shared_count, __shared_ptr): Use nullptr for null pointer | |
2263 | constants. | |
2264 | (__shared_count(const __weak_count&)): Use _M_add_ref_lock_nothrow | |
2265 | instead of _M_add_ref_lock. | |
2266 | (__shared_count(const __weak_count&, nothrow_t)): Add noexcept. | |
2267 | (__shared_ptr::operator bool()): Add noexcept. | |
2268 | (__shared_ptr(const __weak_ptr&, nothrow_t)): Add noexcept. | |
2269 | ||
2270 | 2020-10-21 Jonathan Wakely <jwakely@redhat.com> | |
2271 | ||
2272 | PR libstdc++/97512 | |
2273 | * include/bits/ranges_util.h (tuple_size<subrange>) | |
2274 | (tuple_element<I, cv subrange>): Move here from ... | |
2275 | * include/std/ranges: ... here. | |
2276 | * testsuite/std/ranges/subrange/97512.cc: New test. | |
2277 | ||
2278 | 2020-10-21 Thomas Rodgers <trodgers@redhat.com> | |
2279 | ||
2280 | * include/pstl/algorithm_impl.h: Update file. | |
2281 | * include/pstl/execution_impl.h: Likewise. | |
2282 | * include/pstl/glue_algorithm_impl.h: Likewise. | |
2283 | * include/pstl/glue_memory_impl.h: Likewise. | |
2284 | * include/pstl/glue_numeric_impl.h: Likewise. | |
2285 | * include/pstl/memory_impl.h: Likewise. | |
2286 | * include/pstl/numeric_impl.h: Likewise. | |
2287 | * include/pstl/parallel_backend.h: Likewise. | |
2288 | * include/pstl/parallel_backend_serial.h: Likewise. | |
2289 | * include/pstl/parallel_backend_tbb.h: Likewise. | |
2290 | * include/pstl/parallel_backend_utils.h: Likewise. | |
2291 | * include/pstl/pstl_config.h: Likewise. | |
2292 | * include/pstl/unseq_backend_simd.h: Likewise. | |
2293 | ||
2294 | 2020-10-20 François Dumont <fdumont@gcc.gnu.org> | |
2295 | ||
2296 | * include/bits/hashtable_policy.h | |
2297 | (_Hash_node_value_base<>): Remove _Hash_node_base inheritance. | |
2298 | (_Hash_node_code_cache<bool _Cache_hash_code>): New. | |
2299 | (_Hash_node_value<typename _Value, bool _Cache_hash_code>): New. | |
2300 | (_Hash_node<>): Inherits _Hash_node_base<> and _Hash_node_value<>. | |
2301 | (_Map_base<>::__node_type): Remove. | |
2302 | (_Map_base<>::iterator): Remove. | |
2303 | (_Insert_base<>::__hash_cached): New. | |
2304 | (_Insert_base<>::__constant_iterators): New. | |
2305 | (_Insert_base<>::__hashtable_alloc): New. | |
2306 | (_Insert_base<>::__node_type): Remove. | |
2307 | (_Insert_base<>::__node_ptr): New. | |
2308 | (_Hash_code_base<>): Remove specializations. | |
2309 | (_Hash_code_base<>::__node_type): Remove. | |
2310 | (_Hash_code_base<>::_M_bucket_index(const __node_type*, size_t)): | |
2311 | Replace by... | |
2312 | (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)): | |
2313 | ...this. | |
2314 | (_Hash_code_base<>::_M_store_code(__node_type*, __hash_code)): | |
2315 | Replace by... | |
2316 | (_Hash_code_base<>::_M_store_code(_Hash_node_code_cache<>&, __hash_code)): | |
2317 | ...this. | |
2318 | (_Hash_code_base<>::_M_copy_code(__node_type*, const __node_type*)): | |
2319 | Replace by... | |
2320 | (_Hash_code_base<>::_M_copy_code(_Hash_node_code_cache<>&, | |
2321 | const _Hash_node_code_base<>&)): ...this. | |
2322 | (_Hashtable_base<>::__constant_iterators): Remove. | |
2323 | (_Hashtable_base<>::__unique_keys): Remove. | |
2324 | (_Hashtable_base<>::__node_type): Remove. | |
2325 | (_Hashtable_base<>::iterator): Remove. | |
2326 | (_Hashtable_base<>::const_iterator): Remove. | |
2327 | (_Hashtable_base<>::local_iterator): Remove. | |
2328 | (_Hashtable_base<>::const_local_iterator): Remove. | |
2329 | (_Hashtable_base<>::__ireturn_type): Remove. | |
2330 | (_Hashtable_base<>::_Equal_hash_code<>::_S_equals): Replace by... | |
2331 | (_Hashtable_base<>::_S_equals(__hash_code, const _Hash_node_code_hash<>&)): | |
2332 | ...this. | |
2333 | (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals): Replace by... | |
2334 | (_Hashtable_base<>::_S_node_equals(__hash_code, | |
2335 | const _Hash_node_code_hash<>&)): ...this. | |
2336 | (_Hashtable_base<>::_Equal_hash_code<>): Remove. | |
2337 | (_Hashtable_base<>::_M_equals): Adapt. | |
2338 | (_Hashtable_baxe<>::_M_node_equals): Adapt. | |
2339 | (_Equality<>::_M_equal): Adapt. | |
2340 | (_Hashtable_alloc<>::__node_ptr): New. | |
2341 | (_Hashtable_alloc<>::__bucket_type): Rename into... | |
2342 | (_Hashtable_alloc<>::__node_base_ptr): ...this. | |
2343 | (_Hashtable_alloc<>::__bucket_alloc_type): Rename into... | |
2344 | (_Hashtable_alloc<>::__buckets_alloc_type): ...this. | |
2345 | (_Hashtable_alloc<>::__bucket_alloc_traits): Rename into... | |
2346 | (_Hashtable_alloc<>::__buckets_alloc_traits): ...this. | |
2347 | (_Hashtable_alloc<>::__buckets_ptr): New. | |
2348 | (_Hashtable_alloc<>::_M_allocate_node): Adapt. | |
2349 | (_Hashtable_alloc<>::_M_deallocate_node): Adapt. | |
2350 | (_Hashtable_alloc<>::_M_deallocate_node_ptr): Adapt. | |
2351 | (_Hashtable_alloc<>::_M_deallocate_nodes): Adapt. | |
2352 | (_Hashtable_alloc<>::_M_allocate_buckets): Adapt. | |
2353 | (_Hashtable_alloc<>::_M_deallocate_buckets): Adapt. | |
2354 | * include/bits/hashtable.h (_Hashtable<>): Adapt. | |
2355 | ||
2356 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
2357 | ||
2358 | * testsuite/21_strings/basic_string/capacity/1.cc: Pass | |
2359 | -Wno-stringop-overflow to test. | |
2360 | ||
2361 | 2020-10-20 Jonathan Wakely <jwakely@redhat.com> | |
2362 | ||
2363 | PR libstdc++/95917 | |
2364 | * include/std/coroutine (__noop_coro_frame): Replace with | |
2365 | noop_coroutine_handle::__frame. | |
2366 | (__dummy_resume_destroy): Define inline in __frame. | |
2367 | (__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr | |
2368 | and define as inline. | |
2369 | * testsuite/18_support/coroutines/95917.cc: New test. | |
2370 | ||
2371 | 2020-10-20 Jonathan Wakely <jwakely@redhat.com> | |
2372 | ||
2373 | * include/std/coroutine (coroutine_handle<_Promise>): Remove | |
2374 | base class. Add constructors, conversions, accessors etc. as | |
2375 | proposed for LWG 3460. | |
2376 | (coroutine_handle<noop_coroutine_promise>): Likewise. | |
2377 | * testsuite/18_support/coroutines/lwg3460.cc: New test. | |
2378 | ||
2379 | 2020-10-19 Jonathan Wakely <jwakely@redhat.com> | |
2380 | ||
2381 | * include/bits/unique_ptr.h (make_unique_for_overwrite): Define | |
2382 | for C++20. | |
2383 | * testsuite/20_util/unique_ptr/creation/array_neg.cc: Remove | |
2384 | unused header. Adjust standard reference. | |
2385 | * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: New test. | |
2386 | * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: New test. | |
2387 | ||
2388 | 2020-10-19 Jonathan Wakely <jwakely@redhat.com> | |
2389 | ||
2390 | * include/std/tuple (_Head_base<Idx, Head, true>): Use reserved | |
2391 | form of __no_unique_address__ attribute because | |
2392 | no_unique_address is not reserved prior to C++20. | |
2393 | ||
2394 | 2020-10-19 Jonathan Wakely <jwakely@redhat.com> | |
2395 | ||
2396 | * include/bits/node_handle.h (_Node_handle_common): Replace | |
2397 | std::optional with custom type. | |
2398 | * testsuite/20_util/variant/exception_safety.cc: Add missing | |
2399 | header include. | |
2400 | ||
2401 | 2020-10-19 Jonathan Wakely <jwakely@redhat.com> | |
2402 | ||
2403 | * include/precompiled/expc++.h: Removed. | |
2404 | ||
2405 | 2020-10-17 Ville Voutilainen <ville.voutilainen@gmail.com> | |
2406 | ||
2407 | PR libstdc++/97449 | |
2408 | * include/std/variant | |
2409 | (__gen_vtable_impl<>::_S_apply_single_alt): | |
2410 | Diagnose visitor return type mismatches here.. | |
2411 | (__gen_vtable_impl</*base case*/>::_S_apply): | |
2412 | ..not here. | |
2413 | ||
2414 | 2020-10-15 Jonathan Wakely <jwakely@redhat.com> | |
2415 | ||
2416 | * include/std/concepts: Fix typos in copyright notice. | |
2417 | * include/std/ranges: Likewise. | |
2418 | ||
2419 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2420 | ||
2421 | PR libstdc++/97415 | |
2422 | * include/std/sstream (basic_stringbuf::str()): Check for | |
2423 | null egptr() before comparing to non-null pptr(). | |
2424 | ||
2425 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2426 | ||
2427 | * testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc: | |
2428 | Do not generate debug info. | |
2429 | * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc: | |
2430 | Likewise. | |
2431 | ||
2432 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2433 | ||
2434 | * include/bits/basic_string.h (basic_string(const Alloc&)) | |
2435 | (basic_string(const basic_string&) | |
2436 | (basic_string(const CharT*, size_type, const Alloc&)) | |
2437 | (basic_string(const CharT*, const Alloc&)) | |
2438 | (basic_string(size_type, CharT, const Alloc&)) | |
2439 | (basic_string(initializer_list<CharT>, const Alloc&)) | |
2440 | (basic_string(InputIterator, InputIterator, const Alloc&)): | |
2441 | Define inline in class body. | |
2442 | * include/bits/basic_string.tcc (basic_string(const Alloc&)) | |
2443 | (basic_string(const basic_string&) | |
2444 | (basic_string(const CharT*, size_type, const Alloc&)) | |
2445 | (basic_string(const CharT*, const Alloc&)) | |
2446 | (basic_string(size_type, CharT, const Alloc&)) | |
2447 | (basic_string(initializer_list<CharT>, const Alloc&)) | |
2448 | (basic_string(InputIterator, InputIterator, const Alloc&)): | |
2449 | Move definitions into class body. | |
2450 | ||
2451 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2452 | ||
2453 | * testsuite/lib/libstdc++.exp (check_effective_target_cxx11-abi): | |
2454 | Add comments about which test flags get used by the check. | |
2455 | ||
2456 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2457 | ||
2458 | * testsuite/21_strings/basic_string/allocator/char/copy.cc: Make | |
2459 | comment more precise about what isn't supported by COW strings. | |
2460 | * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: | |
2461 | Likewise. | |
2462 | * testsuite/21_strings/basic_string/allocator/char/move.cc: | |
2463 | Likewise. | |
2464 | * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: | |
2465 | Likewise. | |
2466 | * testsuite/21_strings/basic_string/allocator/char/noexcept.cc: | |
2467 | Likewise. | |
2468 | * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc: | |
2469 | Likewise. | |
2470 | * testsuite/21_strings/basic_string/allocator/char/swap.cc: | |
2471 | Likewise. | |
2472 | * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: | |
2473 | Likewise. | |
2474 | * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: | |
2475 | Likewise. | |
2476 | * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: | |
2477 | Likewise. | |
2478 | * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: | |
2479 | Likewise. | |
2480 | * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: | |
2481 | Likewise. | |
2482 | * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc: | |
2483 | Likewise. | |
2484 | * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: | |
2485 | Likewise. | |
2486 | ||
2487 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2488 | ||
2489 | * testsuite/21_strings/basic_string/allocator/char/minimal.cc: | |
2490 | Do not require cxx11-abi effective target. | |
2491 | * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: | |
2492 | Likewise. | |
2493 | * testsuite/27_io/basic_fstream/cons/base.cc: Likewise. | |
2494 | ||
2495 | 2020-10-14 Jonathan Wakely <jwakely@redhat.com> | |
2496 | ||
2497 | * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] | |
2498 | (basic_string(const _CharT*, const _Alloc&)): Constrain to | |
2499 | require an allocator-like type to fix CTAD ambiguity (LWG 3706). | |
2500 | * testsuite/21_strings/basic_string/cons/char/deduction.cc: | |
2501 | Remove dg-skip-if. | |
2502 | * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: | |
2503 | Likewise. | |
2504 | ||
2505 | 2020-10-13 Nuno Lopes <nuno.lopes@ist.utl.pt> | |
2506 | ||
2507 | * include/bits/stl_algo.h (any_of): Fix incorrect description | |
2508 | in comment. | |
2509 | ||
2510 | 2020-10-13 Jonathan Wakely <jwakely@redhat.com> | |
2511 | ||
2512 | * doc/xml/manual/evolution.xml: Document some API changes | |
2513 | and deprecations. | |
2514 | * doc/xml/manual/intro.xml: Document LWG 2499. | |
2515 | * doc/xml/manual/status_cxx2020.xml: Update status. | |
2516 | * doc/html/*: Regenerate. | |
2517 | ||
2518 | 2020-10-13 Jonathan Wakely <jwakely@redhat.com> | |
2519 | ||
2520 | * doc/xml/book.txml: Remove trailing whitespace. | |
2521 | * doc/xml/chapter.txml: Likewise. | |
2522 | * doc/xml/class.txml: Likewise. | |
2523 | * doc/xml/gnu/fdl-1.3.xml: Likewise. | |
2524 | * doc/xml/gnu/gpl-3.0.xml: Likewise. | |
2525 | * doc/xml/manual/abi.xml: Likewise. | |
2526 | * doc/xml/manual/algorithms.xml: Likewise. | |
2527 | * doc/xml/manual/allocator.xml: Likewise. | |
2528 | * doc/xml/manual/appendix_contributing.xml: Likewise. | |
2529 | * doc/xml/manual/appendix_free.xml: Likewise. | |
2530 | * doc/xml/manual/appendix_porting.xml: Likewise. | |
2531 | * doc/xml/manual/atomics.xml: Likewise. | |
2532 | * doc/xml/manual/auto_ptr.xml: Likewise. | |
2533 | * doc/xml/manual/backwards_compatibility.xml: Likewise. | |
2534 | * doc/xml/manual/bitmap_allocator.xml: Likewise. | |
2535 | * doc/xml/manual/build_hacking.xml: Likewise. | |
2536 | * doc/xml/manual/codecvt.xml: Likewise. | |
2537 | * doc/xml/manual/concurrency.xml: Likewise. | |
2538 | * doc/xml/manual/concurrency_extensions.xml: Likewise. | |
2539 | * doc/xml/manual/configure.xml: Likewise. | |
2540 | * doc/xml/manual/containers.xml: Likewise. | |
2541 | * doc/xml/manual/ctype.xml: Likewise. | |
2542 | * doc/xml/manual/debug.xml: Likewise. | |
2543 | * doc/xml/manual/debug_mode.xml: Likewise. | |
2544 | * doc/xml/manual/diagnostics.xml: Likewise. | |
2545 | * doc/xml/manual/documentation_hacking.xml: Likewise. | |
2546 | * doc/xml/manual/evolution.xml: Likewise. | |
2547 | * doc/xml/manual/internals.xml: Likewise. | |
2548 | * doc/xml/manual/intro.xml: Likewise. | |
2549 | * doc/xml/manual/io.xml: Likewise. | |
2550 | * doc/xml/manual/iterators.xml: Likewise. | |
2551 | * doc/xml/manual/locale.xml: Likewise. | |
2552 | * doc/xml/manual/localization.xml: Likewise. | |
2553 | * doc/xml/manual/messages.xml: Likewise. | |
2554 | * doc/xml/manual/mt_allocator.xml: Likewise. | |
2555 | * doc/xml/manual/numerics.xml: Likewise. | |
2556 | * doc/xml/manual/parallel_mode.xml: Likewise. | |
2557 | * doc/xml/manual/policy_data_structures.xml: Likewise. | |
2558 | * doc/xml/manual/prerequisites.xml: Likewise. | |
2559 | * doc/xml/manual/shared_ptr.xml: Likewise. | |
2560 | * doc/xml/manual/spine.xml: Likewise. | |
2561 | * doc/xml/manual/status_cxxtr1.xml: Likewise. | |
2562 | * doc/xml/manual/status_cxxtr24733.xml: Likewise. | |
2563 | * doc/xml/manual/strings.xml: Likewise. | |
2564 | * doc/xml/manual/support.xml: Likewise. | |
2565 | * doc/xml/manual/test.xml: Likewise. | |
2566 | * doc/xml/manual/test_policy_data_structures.xml: Likewise. | |
2567 | * doc/xml/manual/using.xml: Likewise. | |
2568 | * doc/xml/manual/using_exceptions.xml: Likewise. | |
2569 | * doc/xml/manual/utilities.xml: Likewise. | |
2570 | * doc/html/*: Regenerate. | |
2571 | ||
2572 | 2020-10-12 Patrick Palka <ppalka@redhat.com> | |
2573 | ||
2574 | * include/std/ranges (take_while_view::begin): Constrain the | |
2575 | const overload further as per LWG 3450. | |
2576 | (take_while_view::end): Likewise. | |
2577 | * testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG | |
2578 | 3450. | |
2579 | ||
2580 | 2020-10-12 Patrick Palka <ppalka@redhat.com> | |
2581 | ||
2582 | PR libstdc++/95322 | |
2583 | * include/std/ranges (take_view::_CI): Define this alias | |
2584 | template as per LWG 3449 and remove ... | |
2585 | (take_view::_Sentinel::_CI): ... this type alias. | |
2586 | (take_view::_Sentinel::operator==): Adjust use of _CI | |
2587 | accordingly. Define a second overload that accepts an iterator | |
2588 | of the opposite constness as per LWG 3449. | |
2589 | (take_while_view::_Sentinel::operator==): Likewise. | |
2590 | * testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449. | |
2591 | ||
2592 | 2020-10-12 Jonathan Wakely <jwakely@redhat.com> | |
2593 | ||
2594 | * doc/doxygen/user.cfg.in: Update to Doxygen 1.8.20 format. | |
2595 | ||
2596 | 2020-10-12 Jonathan Wakely <jwakely@redhat.com> | |
2597 | ||
2598 | * doc/doxygen/user.cfg.in (PREDEFINED): Use __cplusplus=201703L | |
2599 | so that C++17 features are documented. | |
2600 | ||
2601 | 2020-10-12 Jonathan Wakely <jwakely@redhat.com> | |
2602 | ||
2603 | * include/bits/stl_algobase.h (copy, move, copy_backward) | |
2604 | (move_backward): Fix documentation for returned iterator. | |
2605 | ||
2606 | 2020-10-12 Martin Sebor <msebor@redhat.com> | |
2607 | ||
2608 | PR c++/97201 | |
2609 | * libsupc++/new (operator new): Add attribute alloc_size and malloc. | |
2610 | ||
2611 | 2020-10-11 Clement Chigot <clement.chigot@atos.net> | |
2612 | ||
2613 | * config/os/aix/t-aix: Add complementary mode object file to | |
2614 | libstdc++fs.a | |
2615 | ||
2616 | 2020-10-10 Jonathan Wakely <jwakely@redhat.com> | |
2617 | ||
2618 | PR libstdc++/97362 | |
2619 | * doc/html/manual/source_code_style.html: Regenerate. | |
2620 | * doc/xml/manual/appendix_contributing.xml: Add __deref to | |
2621 | BADNAMES. | |
2622 | * include/debug/functions.h (_Irreflexive_checker::__deref): | |
2623 | Rename to __ref. | |
2624 | * testsuite/17_intro/badnames.cc: Check __deref. | |
2625 | ||
2626 | 2020-10-10 Ville Voutilainen <ville.voutilainen@gmail.com> | |
2627 | ||
2628 | * include/std/variant (__check_visitor_result): | |
2629 | Use size_t for indexes. | |
2630 | (__check_visitor_results): Likewise. | |
2631 | ||
2632 | 2020-10-09 Ville Voutilainen <ville.voutilainen@gmail.com> | |
2633 | ||
2634 | PR libstdc++/95904 | |
2635 | * include/std/variant (__deduce_visit_result): Add a nested ::type. | |
2636 | (__gen_vtable_impl</*base case*/>::_S_apply): | |
2637 | Check the visitor return type. | |
2638 | (__same_types): New. | |
2639 | (__check_visitor_result): Likewise. | |
2640 | (__check_visitor_results): Likewise. | |
2641 | (visit(_Visitor&&, _Variants&&...)): Use __check_visitor_results | |
2642 | in case we're visiting just one variant. | |
2643 | * testsuite/20_util/variant/visit_neg.cc: Adjust. | |
2644 | ||
2645 | 2020-10-09 Jonathan Wakely <jwakely@redhat.com> | |
2646 | ||
2647 | PR libstdc++/97311 | |
2648 | * include/bits/random.tcc (seed_seq::generate): Use uint32_t for | |
2649 | calculations. Also split the first loop into three loops to | |
2650 | avoid branching on k on every iteration, resolving PR 94823. | |
2651 | * testsuite/26_numerics/random/seed_seq/97311.cc: New test. | |
2652 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-erro | |
2653 | line number. | |
2654 | ||
2655 | 2020-10-09 Daniel Lemire <lemire@gmail.com> | |
2656 | ||
2657 | * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd): | |
2658 | New member function implementing Lemire's "nearly divisionless" | |
2659 | algorithm. | |
2660 | (uniform_int_distribution::operator()): Use _S_nd when the range | |
2661 | of the URBG is the full width of the result type. | |
2662 | ||
2663 | 2020-10-09 Jonathan Wakely <jwakely@redhat.com> | |
2664 | ||
2665 | * testsuite/Makefile.am: Set and export variable separately. | |
2666 | * testsuite/Makefile.in: Regenerate. | |
2667 | ||
2668 | 2020-10-09 Jonathan Wakely <jwakely@redhat.com> | |
2669 | ||
2670 | * scripts/check_performance: Use gnu++11 instead of gnu++0x. | |
2671 | * testsuite/Makefile.am (check-performance): Export CXXFLAGS to | |
2672 | child process. | |
2673 | * testsuite/Makefile.in: Regenerate. | |
2674 | ||
2675 | 2020-10-09 Jonathan Wakely <jwakely@redhat.com> | |
2676 | ||
2677 | * testsuite/performance/26_numerics/random_dist.cc: New test. | |
2678 | ||
2679 | 2020-10-09 Jonathan Wakely <jwakely@redhat.com> | |
2680 | ||
2681 | * testsuite/util/testsuite_performance.h (report_header): Remove | |
2682 | unused variable. | |
2683 | ||
2684 | 2020-10-08 Patrick Palka <ppalka@redhat.com> | |
2685 | ||
2686 | PR libstdc++/95788 | |
2687 | * include/bits/ranges_uninitialized.h: | |
2688 | (__construct_at_fn::operator()): Rewrite in terms of | |
2689 | std::construct_at. Declare it conditionally noexcept. Qualify | |
2690 | calls to declval in its requires-clause. | |
2691 | * testsuite/20_util/specialized_algorithms/construct_at/95788.cc: | |
2692 | New test. | |
2693 | ||
2694 | 2020-10-08 Jonathan Wakely <jwakely@redhat.com> | |
2695 | ||
2696 | PR libstdc++/82584 | |
2697 | * include/bits/random.tcc | |
2698 | (discrete_distribution::param_type::_M_initialize) | |
2699 | (piecewise_constant_distribution::param_type::_M_initialize) | |
2700 | (piecewise_linear_distribution::param_type::_M_initialize): | |
2701 | Add assertions for positive sums.. | |
2702 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error | |
2703 | line. | |
2704 | ||
2705 | 2020-10-08 Jonathan Wakely <jwakely@redhat.com> | |
2706 | ||
2707 | * include/bits/ios_base.h (ios_base::failure): Add constructors | |
2708 | takeing error_code argument. Add code() member function. | |
2709 | * testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to | |
2710 | run for the old ABI but do not check for derivation from | |
2711 | std::system_error. | |
2712 | * testsuite/27_io/ios_base/failure/error_code.cc: New test. | |
2713 | ||
2714 | 2020-10-08 Jonathan Wakely <jwakely@redhat.com> | |
2715 | ||
2716 | * include/bits/random.h (__detail::_Mod): Revert last change. | |
2717 | (__detail::__mod): Do not use _Mod for a==0 case. | |
2718 | * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc: | |
2719 | Check other cases with a==0. Also check runtime results. | |
2720 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error | |
2721 | line. | |
2722 | ||
2723 | 2020-10-07 Jonathan Wakely <jwakely@redhat.com> | |
2724 | ||
2725 | * include/bits/random.h (__detail::_Mod): Avoid divide by zero. | |
2726 | * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc: | |
2727 | New test. | |
2728 | ||
2729 | 2020-10-07 Jonathan Wakely <jwakely@redhat.com> | |
2730 | ||
2731 | * include/bits/random.h (seed_seq(initializer_list<T>)): Rename | |
2732 | parameter to use reserved name. | |
2733 | * include/bits/ranges_algo.h (shift_left, shift_right): Rename | |
2734 | template parameters to use reserved name. | |
2735 | * libsupc++/exception_ptr.h (exception_ptr): Likewise for | |
2736 | parameters and local variables. | |
2737 | * testsuite/17_intro/names.cc: Check "il". Do not check "d" and | |
2738 | "y" in C++20 mode. | |
2739 | ||
2740 | 2020-10-06 Jonathan Wakely <jwakely@redhat.com> | |
2741 | ||
2742 | PR libstdc++/90295 | |
2743 | * config/abi/pre/gnu.ver (CXXABI_1.3.13): New symbol version. | |
2744 | (exception_ptr::_M_addref(), exception_ptr::_M_release()): | |
2745 | Export symbols. | |
2746 | * libsupc++/eh_ptr.cc (exception_ptr::exception_ptr()): | |
2747 | Remove out-of-line definition. | |
2748 | (exception_ptr::exception_ptr(const exception_ptr&)): | |
2749 | Likewise. | |
2750 | (exception_ptr::~exception_ptr()): Likewise. | |
2751 | (exception_ptr::operator=(const exception_ptr&)): | |
2752 | Likewise. | |
2753 | (exception_ptr::swap(exception_ptr&)): Likewise. | |
2754 | (exception_ptr::_M_addref()): Add branch prediction. | |
2755 | * libsupc++/exception_ptr.h (exception_ptr::operator bool): | |
2756 | Add noexcept. | |
2757 | [!_GLIBCXX_EH_PTR_COMPAT] (operator==, operator!=): Define | |
2758 | inline as hidden friends. Remove declarations at namespace | |
2759 | scope. | |
2760 | (exception_ptr::exception_ptr()): Define inline. | |
2761 | (exception_ptr::exception_ptr(const exception_ptr&)): | |
2762 | Likewise. | |
2763 | (exception_ptr::~exception_ptr()): Likewise. | |
2764 | (exception_ptr::operator=(const exception_ptr&)): | |
2765 | Likewise. | |
2766 | (exception_ptr::swap(exception_ptr&)): Likewise. | |
2767 | * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.13. | |
2768 | * testsuite/18_support/exception_ptr/90295.cc: New test. | |
2769 | ||
2770 | 2020-10-06 Jonathan Wakely <jwakely@redhat.com> | |
2771 | ||
2772 | * include/std/ranges (join_view): Remove deduction guide. | |
2773 | (views::join): Add explicit template argument list to prevent | |
2774 | deducing the wrong type. | |
2775 | * testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474 | |
2776 | here, from ... | |
2777 | * testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed. | |
2778 | ||
2779 | 2020-10-05 Jonathan Wakely <jwakely@redhat.com> | |
2780 | ||
2781 | * include/bits/regex.h: Use __int_traits<int> instead of | |
2782 | std::numeric_limits<int>. | |
2783 | * include/bits/uniform_int_dist.h: Use __int_traits<T>::__max | |
2784 | instead of std::numeric_limits<T>::max(). | |
2785 | * include/bits/hashtable_policy.h: Use size_t(-1) instead of | |
2786 | std::numeric_limits<size_t>::max(). | |
2787 | * include/std/regex: Include <ext/numeric_traits.h>. | |
2788 | * include/std/string_view: Use typedef for __int_traits<int>. | |
2789 | * src/c++11/hashtable_c++0x.cc: Use size_t(-1) instead of | |
2790 | std::numeric_limits<size_t>::max(). | |
2791 | * testsuite/std/ranges/iota/96042.cc: Include <limits>. | |
2792 | * testsuite/std/ranges/iota/difference_type.cc: Likewise. | |
2793 | * testsuite/std/ranges/subrange/96042.cc: Likewise. | |
2794 | ||
2795 | 2020-10-05 Jonathan Wakely <jwakely@redhat.com> | |
2796 | ||
2797 | * include/std/numeric: Move all #include directives to the top | |
2798 | of the header. | |
2799 | * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line | |
2800 | numbers. | |
2801 | * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. | |
2802 | ||
2803 | 2020-10-05 Jonathan Wakely <jwakely@redhat.com> | |
2804 | ||
2805 | * config/abi/pre/gnu.ver: Add new symbol. | |
2806 | * include/bits/functexcept.h (__throw_bad_array_new_length): | |
2807 | Declare new function. | |
2808 | * include/ext/malloc_allocator.h (malloc_allocator::allocate): | |
2809 | Throw bad_array_new_length for impossible sizes (LWG 3190). | |
2810 | * include/ext/new_allocator.h (new_allocator::allocate): | |
2811 | Likewise. | |
2812 | * include/std/memory_resource (polymorphic_allocator::allocate) | |
2813 | (polymorphic_allocator::allocate_object): Use new function, | |
2814 | __throw_bad_array_new_length. | |
2815 | * src/c++11/functexcept.cc (__throw_bad_array_new_length): | |
2816 | Define. | |
2817 | * testsuite/20_util/allocator/lwg3190.cc: New test. | |
2818 | ||
2819 | 2020-10-05 Mike Crowe <mac@mcrowe.com> | |
2820 | ||
2821 | PR libstdc++/91486 | |
2822 | * include/bits/atomic_futex.h: | |
2823 | (__atomic_futex_unsigned::_M_load_when_equal_until): Use target | |
2824 | clock duration type when rounding. | |
2825 | * testsuite/30_threads/async/async.cc (test_pr91486_wait_for): | |
2826 | Rename from test_pr91486. | |
2827 | (float_steady_clock): New class for test. | |
2828 | (test_pr91486_wait_until): New test. | |
2829 | ||
2830 | 2020-10-05 Mike Crowe <mac@mcrowe.com> | |
2831 | ||
2832 | * testsuite/20_util/duration_cast/rounding_c++11.cc: Copy | |
2833 | rounding.cc and alter to support compilation for C++11 and to | |
2834 | test std::chrono::__detail::ceil. | |
2835 | ||
2836 | 2020-10-02 Jonathan Wakely <jwakely@redhat.com> | |
2837 | ||
2838 | * testsuite/29_atomics/atomic_float/value_init.cc: Use float | |
2839 | instead of double so that __atomic_load_8 isn't needed. | |
2840 | ||
2841 | 2020-10-02 Jonathan Wakely <jwakely@redhat.com> | |
2842 | ||
2843 | * testsuite/18_support/96817.cc: Use terminate handler that | |
2844 | calls _Exit(0). | |
2845 | ||
2846 | 2020-10-02 Patrick Palka <ppalka@redhat.com> | |
2847 | ||
2848 | * include/bits/stl_iterator.h (reverse_iterator::iter_move): | |
2849 | Define for C++20 as per P0896. | |
2850 | (reverse_iterator::iter_swap): Likewise. | |
2851 | (move_iterator::operator*): Apply P0896 changes for C++20. | |
2852 | (move_iterator::operator[]): Likewise. | |
2853 | * testsuite/24_iterators/reverse_iterator/cust.cc: New test. | |
2854 | ||
2855 | 2020-10-01 Jonathan Wakely <jwakely@redhat.com> | |
2856 | ||
2857 | * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE): | |
2858 | Do not try to dereference return value of __atomic_load_n. | |
2859 | ||
2860 | 2020-09-30 Jonathan Wakely <jwakely@redhat.com> | |
2861 | ||
2862 | * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE): | |
2863 | (_GLIBCXX_GUARD_SET_AND_RELEASE): Define for EABI. | |
2864 | ||
2865 | 2020-09-30 Jonathan Wakely <jwakely@redhat.com> | |
2866 | ||
2867 | * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME): | |
2868 | Define for GCC 11 or when !__is_identifier(__is_same). | |
2869 | (_GLIBCXX_BUILTIN_IS_SAME_AS): Remove. | |
2870 | * include/std/type_traits (is_same, is_same_v): Replace uses | |
2871 | of _GLIBCXX_BUILTIN_IS_SAME_AS. | |
2872 | ||
2873 | 2020-09-28 Patrick Palka <ppalka@redhat.com> | |
2874 | ||
2875 | * include/std/ranges (filter_view): Declare the data member | |
2876 | _M_base last instead of first, and adjust constructors' member | |
2877 | initializer lists accordingly. | |
2878 | (transform_view): Likewise. | |
2879 | (take_view): Likewise. | |
2880 | (take_while_view): Likewise. | |
2881 | (drop_view): Likewise. | |
2882 | (drop_while_view): Likewise. | |
2883 | (join_view): Likewise. | |
2884 | (split_view): Likewise (and tweak nearby formatting). | |
2885 | (reverse_view): Likewise. | |
2886 | * testsuite/std/ranges/adaptors/sizeof.cc: Update expected | |
2887 | sizes. | |
2888 | ||
2889 | 2020-09-28 Patrick Palka <ppalka@redhat.com> | |
2890 | ||
2891 | * testsuite/std/ranges/adaptors/sizeof.cc: New test. | |
2892 | ||
2893 | 2020-09-28 Patrick Palka <ppalka@redhat.com> | |
2894 | ||
2895 | * include/bits/ranges_util.h (subrange::_M_end): Give it | |
2896 | [[no_unique_address]]. | |
2897 | * testsuite/std/ranges/subrange/sizeof.cc: New test. | |
2898 | ||
2899 | 2020-09-28 Patrick Palka <ppalka@redhat.com> | |
2900 | ||
2901 | * include/std/ranges (iota_view::_M_bound): Give it | |
2902 | [[no_unique_address]]. | |
2903 | * testsuite/std/ranges/iota/iota_view.cc: Check that an | |
2904 | unbounded iota_view has minimal size. | |
2905 | ||
2906 | 2020-09-27 Clement Chigot <clement.chigot@atos.net> | |
2907 | ||
2908 | * config/os/aix/t-aix: Use $(AR) without -X32_64. | |
2909 | ||
2910 | 2020-09-26 Jonathan Wakely <jwakely@redhat.com> | |
2911 | ||
2912 | PR libstdc++/96817 | |
2913 | * include/ext/atomicity.h (__gnu_cxx::__is_single_threaded()): | |
2914 | New function wrapping __libc_single_threaded if available. | |
2915 | (__exchange_and_add_dispatch, __atomic_add_dispatch): Use it. | |
2916 | * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_abort) | |
2917 | (__cxa_guard_release): Likewise. | |
2918 | * testsuite/18_support/96817.cc: New test. | |
2919 | ||
2920 | 2020-09-25 Jonathan Wakely <jwakely@redhat.com> | |
2921 | ||
2922 | * libsupc++/Makefile.am: Remove redundant -std=gnu++1z flags. | |
2923 | * libsupc++/Makefile.in: Regenerate. | |
2924 | ||
2925 | 2020-09-24 Antony Polukhin <antoshkka@gmail.com> | |
2926 | ||
2927 | PR libstdc++/71579 | |
2928 | * include/std/type_traits (invoke_result, is_invocable) | |
2929 | (is_invocable_r, is_nothrow_invocable, is_nothrow_invocable_r): | |
2930 | Add static_asserts to make sure that the arguments of the type | |
2931 | traits are not misused with incomplete types. | |
2932 | * testsuite/20_util/invoke_result/incomplete_args_neg.cc: New test. | |
2933 | * testsuite/20_util/is_invocable/incomplete_args_neg.cc: New test. | |
2934 | * testsuite/20_util/is_invocable/incomplete_neg.cc: New test. | |
2935 | * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc: | |
2936 | New test. | |
2937 | * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: Check | |
2938 | for error on incomplete type usage in trait. | |
2939 | ||
2940 | 2020-09-24 Patrick Palka <ppalka@redhat.com> | |
2941 | ||
2942 | * include/std/ranges (__detail::__boxable): Split out the | |
2943 | associated constraints of __box into here. | |
2944 | (__detail::__box): Use the __boxable concept. Define a leaner | |
2945 | partial specialization for semiregular types. | |
2946 | (single_view::_M_value): Give it [[no_unique_address]]. | |
2947 | (filter_view::_M_pred): Likewise. | |
2948 | (transform_view::_M_fun): Likewise. | |
2949 | (take_while_view::_M_pred): Likewise. | |
2950 | (drop_while_view::_M_pred):: Likewise. | |
2951 | * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: New | |
2952 | test. | |
2953 | ||
2954 | 2020-09-24 Jonathan Wakely <jwakely@redhat.com> | |
2955 | ||
2956 | * doc/xml/manual/configure.xml: Correct name of option. | |
2957 | * doc/html/*: Regenerate. | |
2958 | ||
2959 | 2020-09-22 Jonathan Wakely <jwakely@redhat.com> | |
2960 | ||
2961 | PR libstdc++/97167 | |
2962 | * src/c++17/fs_path.cc (path::_Parser::root_path()): Check | |
2963 | for empty string before inspecting the first character. | |
2964 | * testsuite/27_io/filesystem/path/append/source.cc: Append | |
2965 | empty string_view to path. | |
2966 | ||
2967 | 2020-09-22 Glen Joseph Fernandes <glenjofe@gmail.com> | |
2968 | ||
2969 | * include/bits/align.h (align): Fix overflow handling. | |
2970 | * testsuite/20_util/align/3.cc: New test. | |
2971 | ||
2972 | 2020-09-22 Jonathan Wakely <jwakely@redhat.com> | |
2973 | ||
2974 | * include/Makefile.am: Add new headers and adjust for renamed | |
2975 | header. | |
2976 | * include/Makefile.in: Regenerate. | |
2977 | * include/bits/iterator_concepts.h: Adjust for renamed header. | |
2978 | * include/bits/range_access.h (ranges::*): Move to new | |
2979 | <bits/ranges_base.h> header. | |
2980 | * include/bits/ranges_algobase.h: Include new <bits/ranges_base.h> | |
2981 | header instead of <ranges>. | |
2982 | * include/bits/ranges_algo.h: Include new <bits/ranges_util.h> | |
2983 | header. | |
2984 | * include/bits/range_cmp.h: Moved to... | |
2985 | * include/bits/ranges_cmp.h: ...here. | |
2986 | * include/bits/ranges_base.h: New header. | |
2987 | * include/bits/ranges_util.h: New header. | |
2988 | * include/experimental/string_view: Include new | |
2989 | <bits/ranges_base.h> header. | |
2990 | * include/std/functional: Adjust for renamed header. | |
2991 | * include/std/ranges (ranges::view_base, ranges::enable_view) | |
2992 | (ranges::dangling, ranges::borrowed_iterator_t): Move to new | |
2993 | <bits/ranges_base.h> header. | |
2994 | (ranges::view_interface, ranges::subrange) | |
2995 | (ranges::borrowed_subrange_t): Move to new <bits/ranges_util.h> | |
2996 | header. | |
2997 | * include/std/span: Include new <bits/ranges_base.h> header. | |
2998 | * include/std/string_view: Likewise. | |
2999 | * testsuite/24_iterators/back_insert_iterator/pr93884.cc: Add | |
3000 | missing <ranges> header. | |
3001 | * testsuite/24_iterators/front_insert_iterator/pr93884.cc: | |
3002 | Likewise. | |
3003 | ||
3004 | 2020-09-22 Jonathan Wakely <jwakely@redhat.com> | |
3005 | ||
3006 | PR libstdc++/96803 | |
3007 | * include/std/tuple | |
3008 | (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)): | |
3009 | Use correct value category in __use_alloc call. | |
3010 | * testsuite/20_util/tuple/cons/96803.cc: Check with constructors | |
3011 | that require correct value category to be used. | |
3012 | ||
3013 | 2020-09-22 Patrick Palka <ppalka@redhat.com> | |
3014 | ||
3015 | * include/std/span (span::front): Remove static_assert. | |
3016 | (span::back): Likewise. | |
3017 | (span::operator[]): Likewise. | |
3018 | * testsuite/23_containers/span/back_neg.cc: Rewrite to verify | |
3019 | that we check the preconditions of back() only when it's called. | |
3020 | * testsuite/23_containers/span/front_neg.cc: Likewise for | |
3021 | front(). | |
3022 | * testsuite/23_containers/span/index_op_neg.cc: Likewise for | |
3023 | operator[]. | |
3024 | ||
3025 | 2020-09-22 Patrick Palka <ppalka@redhat.com> | |
3026 | ||
3027 | * include/bits/stl_algo.h (__sample): Exit early when the | |
3028 | input range is empty. | |
3029 | * testsuite/25_algorithms/sample/3.cc: New test. | |
3030 | ||
3031 | 2020-09-22 Patrick Palka <ppalka@redhat.com> | |
3032 | ||
3033 | * include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20. | |
3034 | (search): Likewise for the overload that takes a searcher. | |
3035 | * testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr | |
3036 | std::for_each_n. | |
3037 | * testsuite/25_algorithms/search/constexpr.cc: Test constexpr | |
3038 | std::search overload that takes a searcher. | |
3039 | ||
3040 | 2020-09-21 Jonathan Wakely <jwakely@redhat.com> | |
3041 | ||
3042 | * include/bits/c++config (__replacement_assert): Add noreturn | |
3043 | attribute. | |
3044 | (__glibcxx_assert_impl): Use __builtin_expect to hint that the | |
3045 | assertion is expected to pass. | |
3046 | ||
3047 | 2020-09-21 Jonathan Wakely <jwakely@redhat.com> | |
3048 | ||
3049 | * include/std/ranges (drop_view::begin()): Adjust constraints | |
3050 | to match the correct condition for O(1) ranges::next (LWG 3482). | |
3051 | * testsuite/std/ranges/adaptors/drop.cc: Check that iterator is | |
3052 | cached for non-sized_range. | |
3053 | ||
3054 | 2020-09-21 Jonathan Wakely <jwakely@redhat.com> | |
3055 | ||
3056 | * include/std/ranges (transform_view, elements_view): Relax | |
3057 | constraints on operator- for iterators, as per LWG 3483. | |
3058 | * testsuite/std/ranges/adaptors/elements.cc: Check that we | |
3059 | can take the difference of two iterators from a non-random | |
3060 | access range. | |
3061 | * testsuite/std/ranges/adaptors/transform.cc: Likewise. | |
3062 | ||
3063 | 2020-09-21 Jonathan Wakely <jwakely@redhat.com> | |
3064 | ||
3065 | PR libstdc++/97132 | |
3066 | * include/bits/align.h (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: | |
3067 | Remove unused code. | |
3068 | (assume_aligned): Do not use __builtin_assume_aligned during | |
3069 | constant evaluation. | |
3070 | * testsuite/20_util/assume_aligned/1.cc: Improve test. | |
3071 | * testsuite/20_util/assume_aligned/97132.cc: New test. | |
3072 | ||
3073 | 2020-09-20 Jonathan Wakely <jwakely@redhat.com> | |
3074 | ||
3075 | PR libstdc++/97101 | |
3076 | * include/std/functional (bind_front): Fix order of parameters | |
3077 | in is_nothrow_constructible_v specialization. | |
3078 | * testsuite/20_util/function_objects/bind_front/97101.cc: New test. | |
3079 | ||
3080 | 2020-09-11 Thomas Rodgers <trodgers@redhat.com> | |
3081 | ||
3082 | * include/std/memory: Move #include <bits/align.h> inside C++11 | |
3083 | conditional includes. | |
3084 | ||
3085 | 2020-09-11 Thomas Rodgers <trodgers@redhat.com> | |
3086 | ||
3087 | * include/Makefile.am (bits_headers): Add new header. | |
3088 | * include/Makefile.in: Regenerate. | |
3089 | * include/bits/align.h: New file. | |
3090 | * include/std/memory (align): Move definition to bits/align.h. | |
3091 | (assume_aligned): Likewise. | |
3092 | ||
3093 | 2020-09-11 Jonathan Wakely <jwakely@redhat.com> | |
3094 | ||
3095 | * include/std/chrono [C++17] (chrono::__detail::ceil): Add | |
3096 | using declaration to make chrono::ceil available for internal | |
3097 | use with a consistent name. | |
3098 | (chrono::__detail::__ceil_impl): New function template. | |
3099 | (chrono::__detail::ceil): Use __ceil_impl to compare and | |
3100 | increment the value. Remove SFINAE constraint. | |
3101 | ||
3102 | 2020-09-11 Jonathan Wakely <jwakely@redhat.com> | |
3103 | ||
3104 | * include/bits/regex_error.h (__throw_regex_error): Fix | |
3105 | parameter declaration and use reserved attribute names. | |
3106 | ||
3107 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3108 | ||
3109 | * include/std/condition_variable (condition_variable::wait_until): | |
3110 | Convert delta to steady_clock duration before adding to current | |
3111 | steady_clock time to avoid rounding errors described in PR68519. | |
3112 | (condition_variable::wait_for): Simplify calculation of absolute | |
3113 | time by using chrono::__detail::ceil in both overloads. | |
3114 | * testsuite/30_threads/condition_variable/members/68519.cc: | |
3115 | (test_wait_for): Renamed from test01. Replace unassigned val | |
3116 | variable with constant false. Reduce scope of mx and cv | |
3117 | variables to just test_wait_for function. | |
3118 | (test_wait_until): Add new test case. | |
3119 | ||
3120 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3121 | ||
3122 | PR libstdc++/91486 | |
3123 | * include/bits/atomic_futex.h | |
3124 | (__atomic_futex_unsigned::_M_load_when_equal_for) | |
3125 | (__atomic_futex_unsigned::_M_load_when_equal_until): Use | |
3126 | __detail::ceil to convert delta to the reference clock | |
3127 | duration type to avoid resolution problems. | |
3128 | * include/std/chrono (__detail::ceil): Move implementation | |
3129 | of std::chrono::ceil into private namespace so that it's | |
3130 | available to pre-C++17 code. | |
3131 | * testsuite/30_threads/async/async.cc (test_pr91486): | |
3132 | Test __atomic_futex_unsigned::_M_load_when_equal_for. | |
3133 | ||
3134 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3135 | ||
3136 | * include/bits/atomic_futex.h | |
3137 | (__atomic_futex_unsigned::_M_load_when_equal_until): Add | |
3138 | loop on generic _Clock to check the timeout against _Clock | |
3139 | again after _M_load_when_equal_until returns indicating a | |
3140 | timeout. | |
3141 | * testsuite/30_threads/async/async.cc: Invent slow_clock | |
3142 | that runs at an eleventh of steady_clock's speed. Use it | |
3143 | to test the user-supplied-clock variant of | |
3144 | __atomic_futex_unsigned::_M_load_when_equal_until works | |
3145 | generally with test03 and loops correctly when the timeout | |
3146 | time hasn't been reached in test04. | |
3147 | ||
3148 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3149 | ||
3150 | PR libstdc++/93542 | |
3151 | * include/bits/atomic_futex.h (__atomic_futex_unsigned): Change | |
3152 | __clock_t typedef to use steady_clock so that unknown clocks are | |
3153 | synced to it rather than system_clock. Change existing __clock_t | |
3154 | overloads of _M_load_and_text_until_impl and | |
3155 | _M_load_when_equal_until to use system_clock explicitly. Remove | |
3156 | comment about DR 887 since these changes address that problem as | |
3157 | best as we currently able. | |
3158 | ||
3159 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3160 | ||
3161 | PR libstdc++/93542 | |
3162 | * config/abi/pre/gnu.ver: Update for addition of | |
3163 | __atomic_futex_unsigned_base::_M_futex_wait_until_steady. | |
3164 | * include/bits/atomic_futex.h (__atomic_futex_unsigned_base): | |
3165 | Add comments to clarify that _M_futex_wait_until and | |
3166 | _M_load_and_test_until use CLOCK_REALTIME. | |
3167 | (__atomic_futex_unsigned_base::_M_futex_wait_until_steady) | |
3168 | (__atomic_futex_unsigned_base::_M_load_and_text_until_steady): | |
3169 | New member functions that use CLOCK_MONOTONIC. | |
3170 | (__atomic_futex_unsigned_base::_M_load_and_test_until_impl) | |
3171 | (__atomic_futex_unsigned_base::_M_load_when_equal_until): Add | |
3172 | overloads that accept a steady_clock time_point and use the | |
3173 | new member functions. | |
3174 | * src/c++11/futex.cc: Include headers required for | |
3175 | clock_gettime. | |
3176 | (futex_clock_monotonic_flag): New constant to tell futex to | |
3177 | use CLOCK_MONOTONIC to match existing futex_clock_realtime_flag. | |
3178 | (futex_clock_monotonic_unavailable): New global to store the | |
3179 | result of trying to use CLOCK_MONOTONIC. | |
3180 | (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): Add | |
3181 | new variant of _M_futex_wait_until that uses CLOCK_MONOTONIC to | |
3182 | support waiting using steady_clock. | |
3183 | ||
3184 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3185 | ||
3186 | * src/c++11/futex.cc: Add new constants for required futex | |
3187 | flags. Add futex_clock_realtime_unavailable flag to store | |
3188 | result of trying to use FUTEX_CLOCK_REALTIME. | |
3189 | (__atomic_futex_unsigned_base::_M_futex_wait_until): Try to | |
3190 | use FUTEX_WAIT_BITSET with FUTEX_CLOCK_REALTIME and only | |
3191 | fall back to using gettimeofday and FUTEX_WAIT if that's not | |
3192 | supported. | |
3193 | ||
3194 | 2020-09-11 Mike Crowe <mac@mcrowe.com> | |
3195 | ||
3196 | * testsuite/30_threads/async/async.cc (test02): Test steady_clock | |
3197 | with std::future::wait_until. | |
3198 | (test03): Add new test templated on clock type waiting for future | |
3199 | associated with async to resolve. | |
3200 | (main): Call test03 to test both system_clock and steady_clock. | |
3201 | ||
3202 | 2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com> | |
3203 | Christophe Lyon <christophe.lyon@linaro.org> | |
3204 | ||
3205 | * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions. | |
3206 | ||
3207 | 2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com> | |
3208 | Christophe Lyon <christophe.lyon@linaro.org> | |
3209 | ||
3210 | * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions. | |
3211 | ||
3212 | 2020-09-11 Christophe Lyon <christophe.lyon@linaro.org> | |
3213 | ||
3214 | * include/bits/regex_error.h: Avoid warning with -fno-exceptions. | |
3215 | ||
3216 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3217 | ||
3218 | * include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all): | |
3219 | Add casts to compare types of the same signedness. | |
3220 | ||
3221 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3222 | ||
3223 | * include/bits/ranges_algobase.h (__equal_fn): Remove unused | |
3224 | typedef. | |
3225 | ||
3226 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3227 | ||
3228 | * include/std/version (__cpp_lib_array_constexpr): | |
3229 | (__cpp_lib_constexpr_char_traits): Only define C++17 value when | |
3230 | compiling C++17. | |
3231 | ||
3232 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3233 | ||
3234 | * include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&)) | |
3235 | (operator=(auto_ptr&&)): Add diagnostic pragmas to suppress | |
3236 | warnings for uses of std::auto_ptr. | |
3237 | * include/experimental/type_traits (is_literal_type_v): | |
3238 | Likewise, for use of std::is_literal_type. | |
3239 | * include/std/condition_variable (condition_variable_any::_Unlock): | |
3240 | Likewise, for use of std::uncaught_exception. | |
3241 | ||
3242 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3243 | ||
3244 | * include/bits/fs_path.h (path::_List::type()): Avoid narrowing | |
3245 | conversion. | |
3246 | * include/std/chrono (operator+(const year&, const years&)): | |
3247 | Likewise. | |
3248 | ||
3249 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3250 | ||
3251 | * include/bits/codecvt.h (codecvt_byname): Remove names of | |
3252 | unused parameters. | |
3253 | ||
3254 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3255 | ||
3256 | * include/bits/locale_facets_nonio.tcc: Adjust whitespace. | |
3257 | ||
3258 | 2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com> | |
3259 | ||
3260 | * include/c_global/cmath (__lerp): Avoid -Wparentheses warnings. | |
3261 | ||
3262 | 2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com> | |
3263 | ||
3264 | * include/bits/atomic_base.h: Fix -Wunused-variable | |
3265 | warnings. | |
3266 | * include/ext/new_allocator.h: Fix -Wunused-parameter | |
3267 | warnings. | |
3268 | ||
3269 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3270 | ||
3271 | * include/bits/stl_iterator.h (counted_iterator): Add assertions | |
3272 | to check preconditions added by LWG 3472. | |
3273 | ||
3274 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3275 | ||
3276 | PR libstdc++/94160 | |
3277 | * src/c++17/memory_resource.cc (munge_options): Round | |
3278 | max_blocks_per_chunk to a multiple of four. | |
3279 | (__pool_resource::_M_alloc_pools()): Simplify slightly. | |
3280 | * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: | |
3281 | Check that valid pointers are returned when small values are | |
3282 | used for max_blocks_per_chunk. | |
3283 | ||
3284 | 2020-09-10 Jonathan Wakely <jwakely@redhat.com> | |
3285 | ||
3286 | PR libstdc++/96942 | |
3287 | * include/std/memory_resource (monotonic_buffer_resource::do_allocate): | |
3288 | Use __builtin_expect when checking if a new buffer needs to be | |
3289 | allocated from the upstream resource, and for checks for edge | |
3290 | cases like zero sized buffers and allocations. | |
3291 | * src/c++17/memory_resource.cc (aligned_size): New class template. | |
3292 | (aligned_ceil): New helper function to round up to a given | |
3293 | alignment. | |
3294 | (monotonic_buffer_resource::chunk): Replace _M_size and _M_align | |
3295 | with an aligned_size member. Remove _M_canary member. Change _M_next | |
3296 | to pointer instead of unaligned buffer. | |
3297 | (monotonic_buffer_resource::chunk::allocate): Round up to multiple | |
3298 | of 64 instead of to power of two. Check for size overflow. Remove | |
3299 | redundant check for minimum required alignment. | |
3300 | (monotonic_buffer_resource::chunk::release): Adjust for changes | |
3301 | to data members. | |
3302 | (monotonic_buffer_resource::_M_new_buffer): Use aligned_ceil. | |
3303 | (big_block): Replace _M_size and _M_align with aligned_size | |
3304 | member. | |
3305 | (big_block::big_block): Check for size overflow. | |
3306 | (big_block::size, big_block::align): Adjust to use aligned_size. | |
3307 | (big_block::alloc_size): Use aligned_ceil. | |
3308 | (munge_options): Use aligned_ceil. | |
3309 | (__pool_resource::allocate): Use big_block::align for alignment. | |
3310 | * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Check | |
3311 | upstream resource gets expected values for impossible sizes. | |
3312 | * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: | |
3313 | Likewise. Adjust checks for expected alignment in existing test. | |
3314 | ||
3315 | 2020-09-07 Jonathan Wakely <jwakely@redhat.com> | |
3316 | ||
3317 | * include/std/chrono (duration::_S_gcd): Use invariant that | |
3318 | neither value is zero initially. | |
3319 | ||
3320 | 2020-09-07 Jonathan Wakely <jwakely@redhat.com> | |
3321 | ||
3322 | * include/std/ranges (__box): Simplify constraints as per LWG 3477. | |
3323 | ||
3324 | 2020-09-03 Jonathan Wakely <jwakely@redhat.com> | |
3325 | ||
3326 | PR libstdc++/96592 | |
3327 | * include/std/tuple (_TupleConstraints<true, T...>): Use | |
3328 | alternative is_constructible instead of std::is_constructible. | |
3329 | * testsuite/20_util/tuple/cons/96592.cc: New test. | |
3330 | ||
3331 | 2020-09-03 Jonathan Wakely <jwakely@redhat.com> | |
3332 | ||
3333 | * include/std/chrono (duration::_S_gcd): Use iterative algorithm | |
3334 | for C++14 and later. | |
3335 | * include/std/numeric (__detail::__gcd): Replace recursive | |
3336 | Euclidean algorithm with iterative version of binary GCD algorithm. | |
3337 | * testsuite/26_numerics/gcd/1.cc: Test additional inputs. | |
3338 | * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines. | |
3339 | * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. | |
3340 | * testsuite/experimental/numeric/gcd.cc: Test additional inputs. | |
3341 | * testsuite/26_numerics/gcd/2.cc: New test. | |
3342 | ||
3343 | 2020-09-02 Jonathan Wakely <jwakely@redhat.com> | |
3344 | ||
3345 | PR libstdc++/92978 | |
3346 | * testsuite/experimental/numeric/92978.cc: Use experimental::lcm | |
3347 | not std::lcm. | |
3348 | ||
3349 | 2020-09-02 Jonathan Wakely <jwakely@redhat.com> | |
3350 | ||
3351 | PR libstdc++/96851 | |
3352 | * include/bits/cpp_type_traits.h (__is_memcmp_ordered): | |
3353 | New trait that says if memcmp can be used for ordering. | |
3354 | (__is_memcmp_ordered_with): Likewise, for two types. | |
3355 | * include/bits/deque.tcc (__lex_cmp_dit): Use new traits | |
3356 | instead of __is_byte and __numeric_traits. | |
3357 | (__lexicographical_compare_aux1): Likewise. | |
3358 | * include/bits/ranges_algo.h (__lexicographical_compare_fn): | |
3359 | Likewise. | |
3360 | * include/bits/stl_algobase.h (__lexicographical_compare_aux1) | |
3361 | (__is_byte_iter): Likewise. | |
3362 | * include/std/array (operator<=>): Likewise. Only use memcmp | |
3363 | when std::is_constant_evaluated() is false. | |
3364 | * testsuite/23_containers/array/comparison_operators/96851.cc: | |
3365 | New test. | |
3366 | * testsuite/23_containers/array/tuple_interface/get_neg.cc: | |
3367 | Adjust dg-error line numbers. | |
3368 | ||
3369 | 2020-09-02 Jonathan Wakely <jwakely@redhat.com> | |
3370 | ||
3371 | * include/bits/stl_iterator.h: Include <bits/exception_defines.h> | |
3372 | for definitions of __try, __catch and __throw_exception_again. | |
3373 | (counted_iterator::operator++(int)): Use __throw_exception_again | |
3374 | instead of throw. | |
3375 | * libsupc++/new: Include <bits/exception.h> not <exception>. | |
3376 | * libsupc++/new_opvnt.cc: Include <bits/exception_defines.h>. | |
3377 | * testsuite/18_support/destroying_delete.cc: Include | |
3378 | <type_traits> for std::is_same_v definition. | |
3379 | * testsuite/20_util/variant/index_type.cc: Qualify size_t. | |
3380 | ||
3381 | 2020-09-01 Jonathan Wakely <jwakely@redhat.com> | |
3382 | ||
3383 | PR libstdc++/71960 | |
3384 | * include/bits/c++config (__glibcxx_assert_impl): Remove | |
3385 | do-while so that uses of the macro need to add it. | |
3386 | (__glibcxx_assert): Rename macro for runtime assertions | |
3387 | to __glibcxx_assert_2. | |
3388 | (__glibcxx_assert_1): Define macro for constexpr assertions. | |
3389 | (__glibcxx_assert): Define macro for constexpr and runtime | |
3390 | assertions. | |
3391 | * include/bits/range_access.h (ranges::advance): Remove | |
3392 | redundant precondition checks during constant evaluation. | |
3393 | * include/parallel/base.h (_GLIBCXX_PARALLEL_ASSERT): Always | |
3394 | use do-while in macro expansion. | |
3395 | * include/std/ranges (iota_view::iota_view(W, B)): Remove | |
3396 | redundant braces. | |
3397 | ||
3398 | 2020-09-01 Jonathan Wakely <jwakely@redhat.com> | |
3399 | ||
3400 | * include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)): | |
3401 | New helper function for finding GCD of two positive intmax_t | |
3402 | values. | |
3403 | (duration::__divide): New helper alias for dividing one period | |
3404 | by another. | |
3405 | (duration::__is_harmonic): Use __divide not ratio_divide. | |
3406 | (duration(const duration<R2, P2>&)): Require the duration rep | |
3407 | types to be convertible. | |
3408 | * testsuite/20_util/duration/cons/dr2094.cc: New test. | |
3409 | * testsuite/20_util/duration/requirements/reduced_period.cc: | |
3410 | Fix definition of unused member functions in test type. | |
3411 | * testsuite/20_util/duration/requirements/typedefs_neg2.cc: | |
3412 | Adjust expected errors. | |
3413 | ||
3414 | 2020-08-29 Jonathan Wakely <jwakely@redhat.com> | |
3415 | ||
3416 | * include/std/numeric (__detail::__absu(bool)): Make deleted | |
3417 | function a function template, so it will be chosen for calls | |
3418 | with an explicit template argument list. | |
3419 | * testsuite/26_numerics/gcd/gcd_neg.cc: Add dg-prune-output. | |
3420 | * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. | |
3421 | ||
3422 | 2020-08-28 Jonathan Wakely <jwakely@redhat.com> | |
3423 | ||
3424 | * include/std/chrono (common_type): Fix partial specializations | |
3425 | for a single duration type to use the common_type of the rep. | |
3426 | (duration::operator+, duration::operator-): Fix return types | |
3427 | to also use the common_type of the rep. | |
3428 | * testsuite/20_util/duration/requirements/reduced_period.cc: | |
3429 | Check duration using a rep that has common_type specialized. | |
3430 | ||
3431 | 2020-08-28 Jonathan Wakely <jwakely@redhat.com> | |
3432 | ||
3433 | PR libstdc++/92978 | |
3434 | * include/std/numeric (__abs_integral): Replace with ... | |
3435 | (__detail::__absu): New function template that returns an | |
3436 | unsigned type, guaranteeing it can represent the most | |
3437 | negative signed value. | |
3438 | (__detail::__gcd, __detail::__lcm): Require arguments to | |
3439 | be unsigned and therefore already non-negative. | |
3440 | (gcd, lcm): Convert arguments to absolute value as unsigned | |
3441 | type before calling __detail::__gcd or __detail::__lcm. | |
3442 | * include/experimental/numeric (gcd, lcm): Likewise. | |
3443 | * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected | |
3444 | errors. | |
3445 | * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. | |
3446 | * testsuite/26_numerics/gcd/92978.cc: New test. | |
3447 | * testsuite/26_numerics/lcm/92978.cc: New test. | |
3448 | * testsuite/experimental/numeric/92978.cc: New test. | |
3449 | ||
3450 | 2020-08-27 Jonathan Wakely <jwakely@redhat.com> | |
3451 | ||
3452 | * include/std/chrono (__duration_common_type): Ensure the | |
3453 | reduced ratio is used. Remove unused partial specialization | |
3454 | using __failure_type. | |
3455 | (common_type): Pass reduced ratios to __duration_common_type. | |
3456 | Add partial specializations for simple cases involving a single | |
3457 | duration or time_point type. | |
3458 | (duration::period): Use reduced ratio. | |
3459 | (duration::operator+(), duration::operator-()): Return duration | |
3460 | type using the reduced ratio. | |
3461 | * testsuite/20_util/duration/requirements/typedefs_neg2.cc: | |
3462 | Adjust expected errors. | |
3463 | * testsuite/20_util/duration/requirements/reduced_period.cc: New test. | |
3464 | ||
3465 | 2020-08-27 Patrick Palka <ppalka@redhat.com> | |
3466 | ||
3467 | * include/std/chrono (year_month::operator+): Properly handle a | |
3468 | month value of 0 by casting the month value to int before | |
3469 | subtracting 1 from it so that the difference is sign-extended in | |
3470 | the subsequent addition. | |
3471 | * testsuite/std/time/year_month/1.cc: Test adding months to a | |
3472 | year_month whose month component is below or above the | |
3473 | normalized range of [1,12]. | |
3474 | ||
3475 | 2020-08-27 Patrick Palka <ppalka@redhat.com> | |
3476 | ||
3477 | * include/std/chrono | |
3478 | (__detail::__months_years_conversion_disambiguator): Define. | |
3479 | (year_month::operator+=): Templatize the 'months'-based overload | |
3480 | so that the 'years'-based overload is selected in case of | |
3481 | equally-ranked implicit conversion sequences to both 'months' | |
3482 | and 'years' from the supplied argument. | |
3483 | (year_month::operator-=): Likewise. | |
3484 | (year_month::operator+): Likewise. | |
3485 | (year_month::operator-): Likewise. | |
3486 | (year_month_day::operator+=): Likewise. | |
3487 | (year_month_day::operator-=): Likewise. | |
3488 | (year_month_day::operator+): Likewise. | |
3489 | (year_month_day::operator-): Likewise. | |
3490 | (year_month_day_last::operator+=): Likewise. | |
3491 | (year_month_day_last::operator-=): Likewise. | |
3492 | (year_month_day_last::operator+): Likewise | |
3493 | (year_month_day_last::operator-): Likewise. | |
3494 | (year_month_day_weekday::operator+=): Likewise | |
3495 | (year_month_day_weekday::operator-=): Likewise. | |
3496 | (year_month_day_weekday::operator+): Likewise. | |
3497 | (year_month_day_weekday::operator-): Likewise. | |
3498 | (year_month_day_weekday_last::operator+=): Likewise | |
3499 | (year_month_day_weekday_last::operator-=): Likewise. | |
3500 | (year_month_day_weekday_last::operator+): Likewise. | |
3501 | (year_month_day_weekday_last::operator-): Likewise. | |
3502 | (testsuite/std/time/year_month/2.cc): New test. | |
3503 | (testsuite/std/time/year_month_day/2.cc): New test. | |
3504 | (testsuite/std/time/year_month_day_last/2.cc): New test. | |
3505 | (testsuite/std/time/year_month_weekday/2.cc): New test. | |
3506 | (testsuite/std/time/year_month_weekday_last/2.cc): New test. | |
3507 | * testsuite/std/time/year_month/2.cc: New file. | |
3508 | * testsuite/std/time/year_month_day/2.cc: New file. | |
3509 | * testsuite/std/time/year_month_day_last/2.cc: New file. | |
3510 | * testsuite/std/time/year_month_weekday/2.cc: New file. | |
3511 | * testsuite/std/time/year_month_weekday_last/2.cc: New file. | |
3512 | ||
3513 | 2020-08-27 Patrick Palka <ppalka@redhat.com> | |
3514 | ||
3515 | PR libstdc++/95322 | |
3516 | * include/std/ranges (transform_view::sentinel::__distance_from): | |
3517 | Give this a deduced return type. | |
3518 | (transform_view::sentinel::operator-): Adjust the return type so | |
3519 | that it's based on the constness of the iterator rather than | |
3520 | that of the sentinel. | |
3521 | * testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488. | |
3522 | ||
3523 | 2020-08-27 Patrick Palka <ppalka@redhat.com> | |
3524 | ||
3525 | * include/std/ranges (elements_view::begin): Adjust constraints. | |
3526 | (elements_view::end): Likewise. | |
3527 | (elements_view::_Sentinel::operator==): Templatize to take both | |
3528 | _Iterator<true> and _Iterator<false>. | |
3529 | (elements_view::_Sentinel::operator-): Likewise. | |
3530 | * testsuite/std/ranges/adaptors/elements.cc: Add testcase for | |
3531 | the example from P1994R1. | |
3532 | * testsuite/std/ranges/adaptors/lwg3406.cc: New test. | |
3533 | ||
3534 | 2020-08-27 Patrick Palka <ppalka@redhat.com> | |
3535 | ||
3536 | * include/std/ranges (elements_view::end): Replace these two | |
3537 | overloads with four new overloads. | |
3538 | (elements_view::_Iterator::operator==): Remove. | |
3539 | (elements_view::_Iterator::operator-): Likewise. | |
3540 | (elements_view::_Sentinel): Define. | |
3541 | ||
3542 | 2020-08-26 Jonathan Wakely <jwakely@redhat.com> | |
3543 | ||
3544 | * include/std/tuple (_Tuple_impl): Whitespaces changes for | |
3545 | consistent indentation. Also use __enable_if_t alias template. | |
3546 | ||
3547 | 2020-08-26 Jonathan Wakely <jwakely@redhat.com> | |
3548 | ||
3549 | PR libstdc++/96803 | |
3550 | * include/std/tuple | |
3551 | (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)): | |
3552 | Replace parameter pack with a type parameter and a pack and pass | |
3553 | the first type to __use_alloc. | |
3554 | * testsuite/20_util/tuple/cons/96803.cc: New test. | |
3555 | ||
3556 | 2020-08-26 Patrick Palka <ppalka@redhat.com> | |
3557 | ||
3558 | * include/std/chrono (year_month_weekday::operator==): Compare | |
3559 | weekday_indexed instead of weekday. | |
3560 | * testsuite/std/time/year_month_weekday/1.cc: Augment testcase. | |
3561 | ||
3562 | 2020-08-26 Jonathan Wakely <jwakely@redhat.com> | |
3563 | ||
3564 | * include/bits/hashtable_policy.h (_Hash_code_base): Change | |
3565 | index of _Hashtable_ebo_helper base class. | |
3566 | * testsuite/23_containers/unordered_map/dup_types.cc: New test. | |
3567 | ||
3568 | 2020-08-26 Jonathan Wakely <jwakely@redhat.com> | |
3569 | ||
3570 | PR libstdc++/71960 | |
3571 | * include/experimental/string_view (basic_string_view): | |
3572 | Enable debug assertions. | |
3573 | * include/std/string_view (basic_string_view): | |
3574 | Likewise. | |
3575 | ||
3576 | 2020-08-26 François Dumont <fdumont@gcc.gnu.org> | |
3577 | ||
3578 | * include/bits/hashtable_policy.h (_Hashtable<>): Rename _H1 into _Hash | |
3579 | _H2 into _RangeHash and _Hash into _Unused. | |
3580 | (_Hastable_base<>): Likewise. | |
3581 | (_Map_base<>): Likewise. | |
3582 | (_Insert_base<>): Likewise. | |
3583 | (_Insert<>): Likewise. | |
3584 | (_Rehash_base<>): Likewise. | |
3585 | (_Local_iterator_base<>): Likewise. | |
3586 | (_Hash_code_base<>): Likewise. | |
3587 | (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>): | |
3588 | Remove. | |
3589 | (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, true>): | |
3590 | Remove. | |
3591 | (_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHas, _Unused, | |
3592 | bool>): Remove _Hashtable_ebo_helper<2, _RangeHash> base type.. | |
3593 | (_Hash_code_base<>::_M_bucket_index(const _Key&, __hash_code, size_t)): | |
3594 | Replace by... | |
3595 | (_Hash_code_base<>::_M_bucket_index(__hash_code, size_t)): ...this. | |
3596 | (_Local_iterator<>): Remove _H1 and _H2 template parameters. | |
3597 | (_Local_const_iterator<>): Likewise. | |
3598 | (_Equality<>): Likewise. | |
3599 | (_Map_base<>::operator[](const key_type&): Adapt. | |
3600 | (_Map_base<>::operator[](key_type&&): Adapt. | |
3601 | (_Identity::operator()): Add noexcept. | |
3602 | (_Select1st::operator()): Likewise. | |
3603 | (_Hash_code_base<>): Remove _Hashtable_ebo_helper<0, _ExtractKey> base | |
3604 | type. | |
3605 | (_Hash_code_base::_M_extract): Remove. | |
3606 | * include/bits/hashtable.h (_Hashtable<>): Remove _H1 and _H2 template | |
3607 | parameters. Remove _ExtractKey from constructors. | |
3608 | (_Hashtable<>::_M_insert_unique_node(const key_type&, size_t, | |
3609 | __hash_code, __node_type*, size_t)): Replace by... | |
3610 | (_Hashtable<>::_M_insert_unique_node(size_t, __hash_code, | |
3611 | __node_type*, size_t)): ...this. | |
3612 | (_Hashtable<>::_M_insert_muti_node(__node_type*, const key_type&, | |
3613 | __hash_code, __node_type*)): Replace by... | |
3614 | (_Hashtable<>::_M_insert_multi_node(__node_type*, __hash_code, | |
3615 | __node_type*)): ...this. | |
3616 | (_Hashtable<>::__key_extract): Remove. | |
3617 | * include/bits/node_handle.h: Adapt. | |
3618 | ||
3619 | 2020-08-25 Jonathan Wakely <jwakely@redhat.com> | |
3620 | ||
3621 | * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Removed. | |
3622 | * testsuite/21_strings/debug/self_move_assign_neg.cc: Removed. | |
3623 | * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc: Removed. | |
3624 | * testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Removed. | |
3625 | * testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc: Removed. | |
3626 | * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc: Removed. | |
3627 | * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc: Removed. | |
3628 | * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Removed. | |
3629 | * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc: Removed. | |
3630 | * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Removed. | |
3631 | * testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc: Removed. | |
3632 | * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Removed. | |
3633 | * testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc: Removed. | |
3634 | * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Removed. | |
3635 | * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc: Removed. | |
3636 | * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Removed. | |
3637 | * testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc: Removed. | |
3638 | * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc: Removed. | |
3639 | * testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc: | |
3640 | Removed. | |
3641 | * testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc: Removed. | |
3642 | * testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc: | |
3643 | Removed. | |
3644 | * testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc: Removed. | |
3645 | * testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc: Removed. | |
3646 | * testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc: Removed. | |
3647 | * testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc: Removed. | |
3648 | * testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Removed. | |
3649 | ||
3650 | 2020-08-25 Patrick Palka <ppalka@redhat.com> | |
3651 | ||
3652 | * include/std/chrono (year_month_weekday::ok): Fix assert. | |
3653 | ||
3654 | 2020-08-25 Jonathan Wakely <jwakely@redhat.com> | |
3655 | ||
3656 | * include/std/future (future, shared_future. promise): Add | |
3657 | is_destructible assertion (LWG 3466). Adjust string-literal for | |
3658 | !is_array and !is_function assertions. | |
3659 | * testsuite/30_threads/future/requirements/lwg3458.cc: Check | |
3660 | types with no accessible destructor. Adjust expected errors. | |
3661 | * testsuite/30_threads/promise/requirements/lwg3466.cc: | |
3662 | Likewise. | |
3663 | * testsuite/30_threads/shared_future/requirements/lwg3458.cc: | |
3664 | Likewise. | |
3665 | ||
3666 | 2020-08-25 Patrick Palka <ppalka@redhat.com> | |
3667 | Ed Smith-Rowland <3dw4rd@verizon.net> | |
3668 | Jonathan Wakely <jwakely@redhat.com> | |
3669 | ||
3670 | * include/std/chrono (time_point::operator++) | |
3671 | (time_point::operator--): Define. | |
3672 | (utc_clock, tai_clock, gps_clock): Forward declare. | |
3673 | (utc_time, utc_seconds, tai_time, tai_seconds, gps_time) | |
3674 | (gps_seconds): Define. | |
3675 | (is_clock<utc_clock>, is_clock<tai_clock>, is_clock<gps_clock>) | |
3676 | (is_clock_v<utc_clock>, is_clock_v<tai_clock>) | |
3677 | (is_clock_v<gps_clock>): Define these specializations. | |
3678 | (leap_second_info): Define. | |
3679 | (day, month, year, weekday, weekday_indexed) | |
3680 | (weekday_last, month_day, month_day_last, month_weekday) | |
3681 | (month_weekday_last, year_month, year_month_day) | |
3682 | (year_month_day_last, year_month_weekday, year_month_weekday_last): | |
3683 | Declare and later define. | |
3684 | (last_spec, last, __detail::__days_per_month) | |
3685 | (__detail::__days_per_month, __detail::__last_day): Define. | |
3686 | (January, February, March, April, May, June, July, August) | |
3687 | (September, October, November, December, Sunday, Monday, Tuesday) | |
3688 | (Wednesday, Thursday, Friday, Saturday): Define. | |
3689 | (weekday::operator[]): Define out-of-line. | |
3690 | (year_month_day::_S_from_days, year_month_day::M_days_since_epoch): | |
3691 | Likewise. | |
3692 | (year_month_day::year_month_day, year_month_day::ok): Likewise. | |
3693 | (__detail::__pow10, hh_mm_ss): Define. | |
3694 | (literals::chrono_literals::operator""d) | |
3695 | (literals::chrono_literals::operator""y): Define. | |
3696 | (is_am, is_pm, make12, make24): Define. | |
3697 | * testsuite/20_util/time_point/4.cc: New test. | |
3698 | * testsuite/std/time/day/1.cc: New test. | |
3699 | * testsuite/std/time/hh_mm_ss/1.cc: New test. | |
3700 | * testsuite/std/time/is_am/1.cc: New test. | |
3701 | * testsuite/std/time/is_pm/1.cc: New test. | |
3702 | * testsuite/std/time/make12/1.cc: New test. | |
3703 | * testsuite/std/time/make24/1.cc: New test. | |
3704 | * testsuite/std/time/month/1.cc: New test. | |
3705 | * testsuite/std/time/month_day/1.cc: New test. | |
3706 | * testsuite/std/time/month_day_last/1.cc: New test. | |
3707 | * testsuite/std/time/month_weekday/1.cc: New test. | |
3708 | * testsuite/std/time/month_weekday_last/1.cc: New test. | |
3709 | * testsuite/std/time/weekday/1.cc: New test. | |
3710 | * testsuite/std/time/weekday_indexed/1.cc: New test. | |
3711 | * testsuite/std/time/weekday_last/1.cc: New test. | |
3712 | * testsuite/std/time/year/1.cc: New test. | |
3713 | * testsuite/std/time/year_month/1.cc: New test. | |
3714 | * testsuite/std/time/year_month_day/1.cc: New test. | |
3715 | * testsuite/std/time/year_month_day_last/1.cc: New test. | |
3716 | * testsuite/std/time/year_month_weekday/1.cc: New test. | |
3717 | * testsuite/std/time/year_month_weekday_last/1.cc: New test. | |
3718 | ||
3719 | 2020-08-24 Jonathan Wakely <jwakely@redhat.com> | |
3720 | ||
3721 | * include/std/ranges (join_view): Add deduction guide (LWG 3474). | |
3722 | * testsuite/std/ranges/adaptors/join_lwg3474.cc: New test. | |
3723 | ||
3724 | 2020-08-24 Jonathan Wakely <jwakely@redhat.com> | |
3725 | ||
3726 | * include/bits/iterator_concepts.h (indirectly_readable): Add | |
3727 | partial specializations to resolve ambiguities (LWG 3446). | |
3728 | * testsuite/24_iterators/associated_types/readable.traits.cc: | |
3729 | Check types with both value_type and element_type. | |
3730 | ||
3731 | 2020-08-24 Jonathan Wakely <jwakely@redhat.com> | |
3732 | ||
3733 | * include/std/ranges (ranges::iota_view::size()): Perform all | |
3734 | calculations in the right unsigned types. | |
3735 | * testsuite/std/ranges/iota/size.cc: New test. | |
3736 | ||
3737 | 2020-08-24 Jonathan Wakely <jwakely@redhat.com> | |
3738 | ||
3739 | PR libstdc++/96766 | |
3740 | * include/std/variant (_Variant_storage): Replace implicit | |
3741 | conversions from size_t to __index_type with explicit casts. | |
3742 | ||
3743 | 2020-08-24 Jonathan Wakely <jwakely@redhat.com> | |
3744 | ||
3745 | * testsuite/30_threads/packaged_task/cons/alloc.cc: Run for | |
3746 | C++11 and skip for C++17 or later. | |
3747 | ||
3748 | 2020-08-24 Corentin Gay <gay@adacore.com> | |
3749 | ||
3750 | * testsuite/20_util/shared_ptr/atomic/3.cc: Do not require POSIX | |
3751 | threads and add -pthread only on targets supporting them. | |
3752 | * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: | |
3753 | Likewise. | |
3754 | * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: | |
3755 | Likewise. | |
3756 | * testsuite/30_threads/async/42819.cc: Likewise. | |
3757 | * testsuite/30_threads/async/49668.cc: Likewise. | |
3758 | * testsuite/30_threads/async/54297.cc: Likewise. | |
3759 | * testsuite/30_threads/async/any.cc: Likewise. | |
3760 | * testsuite/30_threads/async/async.cc: Likewise. | |
3761 | * testsuite/30_threads/async/except.cc: Likewise. | |
3762 | * testsuite/30_threads/async/launch.cc: Likewise. | |
3763 | * testsuite/30_threads/async/lwg2021.cc: Likewise. | |
3764 | * testsuite/30_threads/async/sync.cc: Likewise. : Likewise. | |
3765 | * testsuite/30_threads/call_once/39909.cc: Likewise. | |
3766 | * testsuite/30_threads/call_once/49668.cc: Likewise. | |
3767 | * testsuite/30_threads/call_once/60497.cc: Likewise. | |
3768 | * testsuite/30_threads/call_once/call_once1.cc: Likewise. | |
3769 | * testsuite/30_threads/call_once/dr2442.cc: Likewise. | |
3770 | * testsuite/30_threads/condition_variable/54185.cc: Likewise. | |
3771 | * testsuite/30_threads/condition_variable/cons/1.cc: Likewise. | |
3772 | * testsuite/30_threads/condition_variable/members/1.cc: Likewise. | |
3773 | * testsuite/30_threads/condition_variable/members/2.cc: Likewise. | |
3774 | * testsuite/30_threads/condition_variable/members/3.cc: Likewise. | |
3775 | * testsuite/30_threads/condition_variable/members/53841.cc: Likewise. | |
3776 | * testsuite/30_threads/condition_variable/members/68519.cc: Likewise. | |
3777 | * testsuite/30_threads/condition_variable/native_handle/typesizes.cc: | |
3778 | Likewise. | |
3779 | * testsuite/30_threads/condition_variable_any/50862.cc: Likewise. | |
3780 | * testsuite/30_threads/condition_variable_any/53830.cc: Likewise. | |
3781 | * testsuite/30_threads/condition_variable_any/cond.cc: Likewise. | |
3782 | * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise. | |
3783 | * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise. | |
3784 | * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise. | |
3785 | * testsuite/30_threads/future/cons/move.cc: Likewise. | |
3786 | * testsuite/30_threads/future/members/45133.cc: Likewise. | |
3787 | * testsuite/30_threads/future/members/get.cc: Likewise. | |
3788 | * testsuite/30_threads/future/members/get2.cc: Likewise. | |
3789 | * testsuite/30_threads/future/members/share.cc: Likewise. | |
3790 | * testsuite/30_threads/future/members/valid.cc: Likewise. | |
3791 | * testsuite/30_threads/future/members/wait.cc: Likewise. | |
3792 | * testsuite/30_threads/future/members/wait_for.cc: Likewise. | |
3793 | * testsuite/30_threads/future/members/wait_until.cc: Likewise. | |
3794 | * testsuite/30_threads/lock/1.cc: Likewise. | |
3795 | * testsuite/30_threads/lock/2.cc: Likewise. | |
3796 | * testsuite/30_threads/lock/3.cc: Likewise. | |
3797 | * testsuite/30_threads/lock/4.cc: Likewise. | |
3798 | * testsuite/30_threads/mutex/cons/1.cc: Likewise. | |
3799 | * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise. | |
3800 | * testsuite/30_threads/mutex/lock/1.cc: Likewise. | |
3801 | * testsuite/30_threads/mutex/native_handle/1.cc: Likewise. | |
3802 | * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise. | |
3803 | * testsuite/30_threads/mutex/try_lock/1.cc: Likewise. | |
3804 | * testsuite/30_threads/mutex/try_lock/2.cc: Likewise. | |
3805 | * testsuite/30_threads/mutex/unlock/1.cc: Likewise. | |
3806 | * testsuite/30_threads/mutex/unlock/2.cc: Likewise. | |
3807 | * testsuite/30_threads/packaged_task/49668.cc: Likewise. | |
3808 | * testsuite/30_threads/packaged_task/60564.cc: Likewise. | |
3809 | * testsuite/30_threads/packaged_task/cons/1.cc: Likewise. | |
3810 | * testsuite/30_threads/packaged_task/cons/2.cc: Likewise. | |
3811 | * testsuite/30_threads/packaged_task/cons/3.cc: Likewise. | |
3812 | * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise. | |
3813 | * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise. | |
3814 | * testsuite/30_threads/packaged_task/cons/move.cc: Likewise. | |
3815 | * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise. | |
3816 | * testsuite/30_threads/packaged_task/members/at_thread_exit.cc: | |
3817 | Likewise. | |
3818 | * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise. | |
3819 | * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise. | |
3820 | * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise. | |
3821 | * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise. | |
3822 | * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise. | |
3823 | * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise. | |
3824 | * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise. | |
3825 | * testsuite/30_threads/packaged_task/members/reset.cc: Likewise. | |
3826 | * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise. | |
3827 | * testsuite/30_threads/packaged_task/members/swap.cc: Likewise. | |
3828 | * testsuite/30_threads/packaged_task/members/valid.cc: Likewise. | |
3829 | * testsuite/30_threads/promise/60966.cc: Likewise. | |
3830 | * testsuite/30_threads/promise/cons/1.cc: Likewise. | |
3831 | * testsuite/30_threads/promise/cons/alloc.cc: Likewise. | |
3832 | * testsuite/30_threads/promise/cons/move.cc: Likewise. | |
3833 | * testsuite/30_threads/promise/cons/move_assign.cc: Likewise. | |
3834 | * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise. | |
3835 | * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise. | |
3836 | * testsuite/30_threads/promise/members/get_future.cc: Likewise. | |
3837 | * testsuite/30_threads/promise/members/get_future2.cc: Likewise. | |
3838 | * testsuite/30_threads/promise/members/set_exception.cc: Likewise. | |
3839 | * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. | |
3840 | * testsuite/30_threads/promise/members/set_value.cc: Likewise. | |
3841 | * testsuite/30_threads/promise/members/set_value2.cc: Likewise. | |
3842 | * testsuite/30_threads/promise/members/set_value3.cc: Likewise. | |
3843 | * testsuite/30_threads/promise/members/swap.cc: Likewise. | |
3844 | * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise. | |
3845 | * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc: | |
3846 | Likewise. | |
3847 | * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise. | |
3848 | * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise. | |
3849 | * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc: | |
3850 | Likewise. | |
3851 | * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise. | |
3852 | * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise. | |
3853 | * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise. | |
3854 | * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise. | |
3855 | * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise. | |
3856 | * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc: | |
3857 | Likewise. | |
3858 | * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise. | |
3859 | * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise. | |
3860 | * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc: | |
3861 | Likewise. | |
3862 | * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc: | |
3863 | Likewise. | |
3864 | * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise. | |
3865 | * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise. | |
3866 | * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc: | |
3867 | Likewise. | |
3868 | * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc: | |
3869 | Likewise. | |
3870 | * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc: | |
3871 | Likewise. | |
3872 | * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc: | |
3873 | Likewise. | |
3874 | * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc: | |
3875 | Likewise. | |
3876 | * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise. | |
3877 | * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise. | |
3878 | * testsuite/30_threads/shared_future/cons/move.cc: Likewise. | |
3879 | * testsuite/30_threads/shared_future/members/45133.cc: Likewise. | |
3880 | * testsuite/30_threads/shared_future/members/get.cc: Likewise. | |
3881 | * testsuite/30_threads/shared_future/members/get2.cc: Likewise. | |
3882 | * testsuite/30_threads/shared_future/members/valid.cc: Likewise. | |
3883 | * testsuite/30_threads/shared_future/members/wait.cc: Likewise. | |
3884 | * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise. | |
3885 | * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise. | |
3886 | * testsuite/30_threads/shared_lock/cons/1.cc: Likewise. | |
3887 | * testsuite/30_threads/shared_lock/cons/2.cc: Likewise. | |
3888 | * testsuite/30_threads/shared_lock/cons/3.cc: Likewise. | |
3889 | * testsuite/30_threads/shared_lock/cons/4.cc: Likewise. | |
3890 | * testsuite/30_threads/shared_lock/cons/5.cc: Likewise. | |
3891 | * testsuite/30_threads/shared_lock/cons/6.cc: Likewise. | |
3892 | * testsuite/30_threads/shared_lock/locking/1.cc: Likewise. | |
3893 | * testsuite/30_threads/shared_lock/locking/2.cc: Likewise. | |
3894 | * testsuite/30_threads/shared_lock/locking/3.cc: Likewise. | |
3895 | * testsuite/30_threads/shared_lock/locking/4.cc: Likewise. | |
3896 | * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise. | |
3897 | * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. | |
3898 | * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. | |
3899 | * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. | |
3900 | * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. | |
3901 | * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise. | |
3902 | * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise. | |
3903 | * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise. | |
3904 | * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise. | |
3905 | * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise. | |
3906 | * testsuite/30_threads/this_thread/1.cc: Likewise. | |
3907 | * testsuite/30_threads/this_thread/sleep_for-mt.cc: Likewise. | |
3908 | * testsuite/30_threads/this_thread/sleep_until-mt.cc: Likewise. | |
3909 | * testsuite/30_threads/thread/cons/1.cc: Likewise. | |
3910 | * testsuite/30_threads/thread/cons/2.cc: Likewise. | |
3911 | * testsuite/30_threads/thread/cons/3.cc: Likewise. | |
3912 | * testsuite/30_threads/thread/cons/4.cc: Likewise. | |
3913 | * testsuite/30_threads/thread/cons/49668.cc: Likewise. | |
3914 | * testsuite/30_threads/thread/cons/5.cc: Likewise. | |
3915 | * testsuite/30_threads/thread/cons/6.cc: Likewise. | |
3916 | * testsuite/30_threads/thread/cons/7.cc: Likewise. | |
3917 | * testsuite/30_threads/thread/cons/8.cc: Likewise. | |
3918 | * testsuite/30_threads/thread/cons/9.cc: Likewise. | |
3919 | * testsuite/30_threads/thread/cons/moveable.cc: Likewise. | |
3920 | * testsuite/30_threads/thread/cons/terminate.cc: Likewise. | |
3921 | * testsuite/30_threads/thread/members/1.cc: Likewise. | |
3922 | * testsuite/30_threads/thread/members/2.cc: Likewise. | |
3923 | * testsuite/30_threads/thread/members/3.cc: Likewise. | |
3924 | * testsuite/30_threads/thread/members/4.cc: Likewise. | |
3925 | * testsuite/30_threads/thread/members/5.cc: Likewise. | |
3926 | * testsuite/30_threads/thread/members/hardware_concurrency.cc: | |
3927 | Likewise. | |
3928 | * testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise. | |
3929 | * testsuite/30_threads/thread/swap/1.cc: Likewise. | |
3930 | * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise. | |
3931 | * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: | |
3932 | Likewise. | |
3933 | * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise. | |
3934 | * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise. | |
3935 | * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: | |
3936 | Likewise. | |
3937 | * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise. | |
3938 | * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise. | |
3939 | * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise. | |
3940 | * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise. | |
3941 | * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise. | |
3942 | * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise. | |
3943 | * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise. | |
3944 | * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise. | |
3945 | * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. | |
3946 | * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise. | |
3947 | * testsuite/30_threads/try_lock/1.cc: Likewise. | |
3948 | * testsuite/30_threads/try_lock/2.cc: Likewise. | |
3949 | * testsuite/30_threads/try_lock/3.cc: Likewise. | |
3950 | * testsuite/30_threads/try_lock/4.cc: Likewise. | |
3951 | * testsuite/30_threads/unique_lock/cons/1.cc: Likewise. | |
3952 | * testsuite/30_threads/unique_lock/cons/2.cc: Likewise. | |
3953 | * testsuite/30_threads/unique_lock/cons/3.cc: Likewise. | |
3954 | * testsuite/30_threads/unique_lock/cons/4.cc: Likewise. | |
3955 | * testsuite/30_threads/unique_lock/cons/5.cc: Likewise. | |
3956 | * testsuite/30_threads/unique_lock/cons/6.cc: Likewise. | |
3957 | * testsuite/30_threads/unique_lock/locking/1.cc: Likewise. | |
3958 | * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. | |
3959 | * testsuite/30_threads/unique_lock/locking/3.cc: Likewise. | |
3960 | * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. | |
3961 | * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise. | |
3962 | ||
3963 | 2020-08-21 Jonathan Wakely <jwakely@redhat.com> | |
3964 | ||
3965 | PR libstdc++/96736 | |
3966 | * testsuite/17_intro/headers/c++1998/all_attributes.cc: Do not | |
3967 | test "cold" on darwin. | |
3968 | * testsuite/17_intro/headers/c++2011/all_attributes.cc: | |
3969 | Likewise. | |
3970 | * testsuite/17_intro/headers/c++2014/all_attributes.cc: | |
3971 | Likewise. | |
3972 | * testsuite/17_intro/headers/c++2017/all_attributes.cc: | |
3973 | Likewise. | |
3974 | * testsuite/17_intro/headers/c++2020/all_attributes.cc: | |
3975 | Likewise. | |
3976 | ||
3977 | 2020-08-21 Jonathan Wakely <jwakely@redhat.com> | |
3978 | ||
3979 | PR libstdc++/96718 | |
3980 | * testsuite/25_algorithms/pstl/feature_test-2.cc: Require | |
3981 | tbb-backend effective target. | |
3982 | * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise. | |
3983 | * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise. | |
3984 | * testsuite/25_algorithms/pstl/feature_test.cc: Likewise. | |
3985 | ||
3986 | 2020-08-20 Jonathan Wakely <jwakely@redhat.com> | |
3987 | ||
3988 | * include/bits/iterator_concepts.h [__STRICT_ANSI__] | |
3989 | (incrementable_traits<__int128>): Define specialization. | |
3990 | (incrementable_traits<unsigned __int128>): Likewise. | |
3991 | * testsuite/std/ranges/iota/96042.cc: Test iota_view with | |
3992 | __int128. | |
3993 | ||
3994 | 2020-08-19 Jonathan Wakely <jwakely@redhat.com> | |
3995 | Patrick Palka <ppalka@redhat.com> | |
3996 | ||
3997 | PR libstdc++/96042 | |
3998 | * include/bits/range_access.h (__detail::__to_unsigned_like): | |
3999 | Do not use make_unsigned_t<T> in the return type, as it can | |
4000 | result in an error before the integral<T> constraint is checked. | |
4001 | [__STRICT_ANSI__]: Add overloads for 128-bit integer types. | |
4002 | (__detail::__make_unsigned_like_t): Define as the return type | |
4003 | of __to_unsigned_like. | |
4004 | * testsuite/std/ranges/subrange/96042.cc: New test. | |
4005 | ||
4006 | 2020-08-19 Jonathan Wakely <jwakely@redhat.com> | |
4007 | ||
4008 | * include/bits/stl_tree.h (operator!=, operator>, operator<=) | |
4009 | (operator>=): Remove deprecated functions. | |
4010 | ||
4011 | 2020-08-19 Jonathan Wakely <jwakely@redhat.com> | |
4012 | ||
4013 | PR libstdc++/96042 | |
4014 | * include/ext/numeric_traits.h (__is_integer_nonstrict): New | |
4015 | trait which is true for 128-bit integers even in strict modes. | |
4016 | (__numeric_traits_integer, __numeric_traits): Use | |
4017 | __is_integer_nonstrict instead of __is_integer. | |
4018 | * include/std/limits [__STRICT_ANSI__ && __SIZEOF_INT128__] | |
4019 | (numeric_limits<__int128>, (numeric_limits<unsigned __int128>): | |
4020 | Define. | |
4021 | * testsuite/std/ranges/iota/96042.cc: New test. | |
4022 | ||
4023 | 2020-08-19 Jonathan Wakely <jwakely@redhat.com> | |
4024 | ||
4025 | * include/bits/c++config (_GLIBCXX_DEPRECATED_SUGGEST) | |
4026 | (_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST) | |
4027 | (_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST): | |
4028 | Add new macros to comment. | |
4029 | ||
4030 | 2020-08-19 Patrick Palka <ppalka@redhat.com> | |
4031 | ||
4032 | * include/Makefile.am (bits_headers): Add new header | |
4033 | <bits/max_size_type.h>. | |
4034 | * include/Makefile.in: Regenerate. | |
4035 | * include/bits/iterator_concepts.h | |
4036 | (ranges::__detail::__max_diff_type): Remove definition, replace | |
4037 | with forward declaration of class __max_diff_type. | |
4038 | (__detail::__max_size_type): Remove definition, replace with | |
4039 | forward declaration of class __max_size_type. | |
4040 | (__detail::__is_unsigned_int128, __is_signed_int128) | |
4041 | (__is_int128): New concepts. | |
4042 | (__detail::__is_integer_like): Accept __int128 and unsigned | |
4043 | __int128. | |
4044 | (__detail::__is_signed_integer_like): Accept __int128. | |
4045 | * include/bits/max_size_type.h: New header. | |
4046 | * include/bits/range_access.h: Include <bits/max_size_type.h>. | |
4047 | (__detail::__to_unsigned_like): Two new overloads. | |
4048 | * testsuite/std/ranges/iota/difference_type.cc: New test. | |
4049 | * testsuite/std/ranges/iota/max_size_type.cc: New test. | |
4050 | ||
4051 | 2020-08-19 Jonathan Wakely <jwakely@redhat.com> | |
4052 | ||
4053 | * include/bits/c++config (_GLIBCXX_DEPRECATED): Define for all | |
4054 | standard modes. | |
4055 | (_GLIBCXX_DEPRECATED_SUGGEST): New macro for "use 'foo' instead" | |
4056 | message in deprecated warnings. | |
4057 | (_GLIBCXX11_DEPRECATED, _GLIBCXX11_DEPRECATED_SUGGEST): New | |
4058 | macros for marking features deprecated in C++11. | |
4059 | (_GLIBCXX17_DEPRECATED_SUGGEST, _GLIBCXX20_DEPRECATED_SUGGEST): | |
4060 | New macros. | |
4061 | * include/backward/auto_ptr.h (auto_ptr_ref, auto_ptr<void>): | |
4062 | Use _GLIBCXX11_DEPRECATED instead of _GLIBCXX_DEPRECATED. | |
4063 | (auto_ptr): Use _GLIBCXX11_DEPRECATED_SUGGEST. | |
4064 | * include/backward/binders.h (binder1st, binder2nd): Likewise. | |
4065 | * include/bits/ios_base.h (io_state, open_mode, seek_dir) | |
4066 | (streampos, streamoff): Use _GLIBCXX_DEPRECATED_SUGGEST. | |
4067 | * include/std/streambuf (stossc): Replace C++11 attribute | |
4068 | with _GLIBCXX_DEPRECATED_SUGGEST. | |
4069 | * include/std/type_traits (__is_nullptr_t): Use | |
4070 | _GLIBCXX_DEPRECATED_SUGGEST instead of _GLIBCXX_DEPRECATED. | |
4071 | * testsuite/27_io/types/1.cc: Check for deprecated warnings. | |
4072 | Also check for io_state, open_mode and seek_dir typedefs. | |
4073 | ||
4074 | 2020-08-19 Antony Polukhin <antoshkka@gmail.com> | |
4075 | ||
4076 | PR libstdc++/71579 | |
4077 | * include/std/type_traits (invoke_result, is_nothrow_invocable_r) | |
4078 | Add static_asserts to make sure that the argument of the type | |
4079 | trait is not misused with incomplete types. | |
4080 | (is_swappable_with, is_nothrow_swappable_with): Add static_asserts | |
4081 | to make sure that the first and second arguments of the type trait | |
4082 | are not misused with incomplete types. | |
4083 | * testsuite/20_util/invoke_result/incomplete_neg.cc: New test. | |
4084 | * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: New test. | |
4085 | * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc: New test. | |
4086 | * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc: New | |
4087 | test. | |
4088 | * testsuite/20_util/is_swappable_with/incomplete_neg.cc: New test. | |
4089 | ||
4090 | 2020-08-18 David Edelsohn <dje.gcc@gmail.com> | |
4091 | Clement Chigot <clement.chigot@atos.net> | |
4092 | ||
4093 | * config/os/aix/t-aix: Add complementary mode object files to | |
4094 | libsupc++.a | |
4095 | ||
4096 | 2020-08-18 Jonathan Wakely <jwakely@redhat.com> | |
4097 | ||
4098 | * testsuite/17_intro/headers/c++1998/all_attributes.cc: Check | |
4099 | "cold" isn't used in the library. Also check <cxxabi.h>. | |
4100 | * testsuite/17_intro/headers/c++2011/all_attributes.cc: | |
4101 | Likewise. | |
4102 | * testsuite/17_intro/headers/c++2014/all_attributes.cc: | |
4103 | Likewise. | |
4104 | * testsuite/17_intro/headers/c++2017/all_attributes.cc: | |
4105 | Likewise. | |
4106 | * testsuite/17_intro/headers/c++2020/all_attributes.cc: | |
4107 | Likewise. | |
4108 | ||
4109 | 2020-08-18 Jonathan Wakely <jwakely@redhat.com> | |
4110 | ||
4111 | PR libstdc++/69724 | |
4112 | * include/std/future (__future_base::_S_make_deferred_state) | |
4113 | (__future_base::_S_make_async_state): Remove. | |
4114 | (__future_base::_Deferred_state): Change constructor to accept a | |
4115 | parameter pack of arguments and forward them to the call | |
4116 | wrapper. | |
4117 | (__future_base::_Async_state_impl): Likewise. Replace lambda | |
4118 | expression with a named member function. | |
4119 | (async): Construct state object directly from the arguments, | |
4120 | instead of using thread::__make_invoker, _S_make_deferred_state | |
4121 | and _S_make_async_state. Move shared state into the returned | |
4122 | future. | |
4123 | * include/std/thread (thread::_Call_wrapper): New alias | |
4124 | template for use by constructor and std::async. | |
4125 | (thread::thread(Callable&&, Args&&...)): Create state object | |
4126 | directly instead of using _S_make_state. | |
4127 | (thread::__make_invoker, thread::__decayed_tuple) | |
4128 | (thread::_S_make_state): Remove. | |
4129 | * testsuite/30_threads/async/69724.cc: New test. | |
4130 | ||
4131 | 2020-08-17 Jonathan Wakely <jwakely@redhat.com> | |
4132 | ||
4133 | PR libstdc++/55713 | |
4134 | PR libstdc++/71096 | |
4135 | PR libstdc++/93147 | |
4136 | * include/std/tuple [__has_cpp_attribute(no_unique_address)] | |
4137 | (_Head_base<Idx, Head, true>): New definition of the partial | |
4138 | specialization, using [[no_unique_address]] instead of | |
4139 | inheritance. | |
4140 | * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected | |
4141 | output. | |
4142 | * testsuite/20_util/tuple/comparison_operators/93147.cc: New test. | |
4143 | * testsuite/20_util/tuple/creation_functions/55713.cc: New test. | |
4144 | * testsuite/20_util/tuple/element_access/71096.cc: New test. | |
4145 | ||
4146 | 2020-08-14 Lewis Hyatt <lhyatt@gmail.com> | |
4147 | ||
4148 | * testsuite/lib/libstdc++.exp: Use the new option | |
4149 | -fdiagnostics-plain-output. | |
4150 | ||
4151 | 2020-08-13 Jonathan Wakely <jwakely@redhat.com> | |
4152 | ||
4153 | * acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Warn if the c_std | |
4154 | option is used and fail unless --enable-cheaders-obsolete is | |
4155 | also used. | |
4156 | * configure: Regenerate. | |
4157 | ||
4158 | 2020-08-12 Jonathan Wakely <jwakely@redhat.com> | |
4159 | ||
4160 | PR libstdc++/85828 | |
4161 | * include/bits/basic_string.h (operator=(basic_string&&)): Check | |
4162 | for self-move before copying with char_traits::copy. | |
4163 | * include/bits/hashtable.h (operator=(_Hashtable&&)): Check for | |
4164 | self-move. | |
4165 | * include/bits/stl_deque.h (_M_move_assign1(deque&&, false_type)): | |
4166 | Check for equal allocators. | |
4167 | * include/bits/stl_list.h (_M_move_assign(list&&, true_type)): | |
4168 | Call clear() instead of _M_clear(). | |
4169 | * include/debug/formatter.h (__msg_self_move_assign): Change | |
4170 | comment. | |
4171 | * include/debug/macros.h (__glibcxx_check_self_move_assign): | |
4172 | (_GLIBCXX_DEBUG_VERIFY): Remove. | |
4173 | * include/debug/safe_container.h (operator=(_Safe_container&&)): | |
4174 | Remove assertion check for safe move and make it well-defined. | |
4175 | * include/debug/safe_iterator.h (operator=(_Safe_iterator&&)): | |
4176 | Remove assertion check for self-move. | |
4177 | * include/debug/safe_local_iterator.h | |
4178 | (operator=(_Safe_local_iterator&&)): Likewise. | |
4179 | * testsuite/21_strings/basic_string/cons/char/self_move.cc: New test. | |
4180 | * testsuite/23_containers/deque/cons/self_move.cc: New test. | |
4181 | * testsuite/23_containers/forward_list/cons/self_move.cc: New test. | |
4182 | * testsuite/23_containers/list/cons/self_move.cc: New test. | |
4183 | * testsuite/23_containers/set/cons/self_move.cc: New test. | |
4184 | * testsuite/23_containers/unordered_set/cons/self_move.cc: New test. | |
4185 | * testsuite/23_containers/vector/cons/self_move.cc: New test. | |
4186 | ||
4187 | 2020-08-11 François Dumont <fdumont@gcc.gnu.org> | |
4188 | ||
4189 | PR libstdc++/91620 | |
4190 | * include/bits/forward_list.tcc (forward_list<>::remove): Collect nodes | |
4191 | to destroy in an intermediate forward_list. | |
4192 | (forward_list<>::remove_if, forward_list<>::unique): Likewise. | |
4193 | * include/bits/list.tcc (list<>::remove, list<>::unique): Likewise. | |
4194 | (list<>::remove_if): Likewise. | |
4195 | * include/debug/forward_list (forward_list<>::_M_erase_after): Remove. | |
4196 | (forward_list<>::erase_after): Adapt. | |
4197 | (forward_list<>::remove, forward_list<>::remove_if): Collect nodes to | |
4198 | destroy in an intermediate forward_list. | |
4199 | (forward_list<>::unique): Likewise. | |
4200 | * include/debug/list (list<>::remove, list<>::unique): Likewise. | |
4201 | (list<>::remove_if): Likewise. | |
4202 | * testsuite/23_containers/forward_list/operations/91620.cc: New test. | |
4203 | * testsuite/23_containers/list/operations/91620.cc: New test. | |
4204 | ||
4205 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4206 | ||
4207 | * testsuite/30_threads/thread/cons/84535.cc: Use a custom | |
4208 | namespace. | |
4209 | * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise. | |
4210 | ||
4211 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4212 | ||
4213 | PR libstdc++/89760 | |
4214 | * include/experimental/executor [!_GLIBCXX_HAS_GTHREADS]: | |
4215 | (execution_context::mutex_type): Define dummy mutex type. | |
4216 | (system_context): Use execution_context::mutex_type. | |
4217 | (system_context) [!_GLIBCXX_HAS_GTHREADS]: Define dummy | |
4218 | thread and condition variable types. | |
4219 | [!_GLIBCXX_HAS_GTHREADS] (system_context::_M_run()): Do not | |
4220 | define. | |
4221 | (system_context::_M_post) [!_GLIBCXX_HAS_GTHREADS]: Throw | |
4222 | an exception when threads aren't available. | |
4223 | (strand::running_in_this_thread()): Defer to _M_state. | |
4224 | (strand::_State::running_in_this_thread()): New function. | |
4225 | (use_future_t): Do not depend on _GLIBCXX_USE_C99_STDINT_TR1. | |
4226 | * include/experimental/io_context (io_context): Use the | |
4227 | execution_context::mutex_type alias. Replace stack of thread | |
4228 | IDs with counter. | |
4229 | * testsuite/experimental/net/execution_context/use_service.cc: | |
4230 | Enable test for non-pthread targets. | |
4231 | ||
4232 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4233 | ||
4234 | * include/experimental/executor (system_context::a__tag): Make | |
4235 | default constructor explicit. | |
4236 | ||
4237 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4238 | ||
4239 | * include/experimental/executor (system_context::_M_run()): | |
4240 | Fix predicate. | |
4241 | * testsuite/experimental/net/system_context/1.cc: New test. | |
4242 | ||
4243 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4244 | ||
4245 | * include/std/stop_token: Check _GLIBCXX_HAS_GTHREADS using | |
4246 | #ifdef instead of #if. | |
4247 | (stop_token::_S_yield()): Check _GLIBCXX_HAS_GTHREADS before | |
4248 | using __gthread_yield. | |
4249 | ||
4250 | 2020-08-11 Jonathan Wakely <jwakely@redhat.com> | |
4251 | ||
4252 | * include/std/thread [!_GLIBCXX_HAS_GTHREADS] (this_thread::yield) | |
4253 | (this_thread::sleep_until): Define. | |
4254 | [!_GLIBCXX_HAS_GTHREADS] (this_thread::sleep_for): Define. Replace | |
4255 | use of __gthread_time_t typedef with timespec. | |
4256 | * src/c++11/thread.cc [!_GLIBCXX_HAS_GTHREADS] (__sleep_for): | |
4257 | Likewise. | |
4258 | * testsuite/30_threads/this_thread/2.cc: Moved to... | |
4259 | * testsuite/30_threads/this_thread/yield.cc: ...here. | |
4260 | * testsuite/30_threads/this_thread/3.cc: Moved to... | |
4261 | * testsuite/30_threads/this_thread/sleep_for-mt.cc: ...here. | |
4262 | * testsuite/30_threads/this_thread/4.cc: Moved to... | |
4263 | * testsuite/30_threads/this_thread/sleep_until-mt.cc: ...here. | |
4264 | * testsuite/30_threads/this_thread/58038.cc: Add | |
4265 | dg-require-sleep. | |
4266 | * testsuite/30_threads/this_thread/60421.cc: Likewise. | |
4267 | * testsuite/30_threads/this_thread/sleep_for.cc: New test. | |
4268 | * testsuite/30_threads/this_thread/sleep_until.cc: New test. | |
4269 | ||
4270 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4271 | ||
4272 | PR libstdc++/94681 | |
4273 | * src/c++17/fs_ops.cc (read_symlink): Use posix::lstat instead | |
4274 | of calling ::lstat directly. | |
4275 | * src/filesystem/ops.cc (read_symlink): Likewise. | |
4276 | ||
4277 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4278 | ||
4279 | * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): | |
4280 | Use gdb.Type.strip_typedefs(). | |
4281 | * testsuite/libstdc++-prettyprinters/compat.cc: Use a typedef in | |
4282 | the emulated old type. | |
4283 | ||
4284 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4285 | ||
4286 | PR libstdc++/94681 | |
4287 | * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Do not depend on | |
4288 | $enable_libstdcxx_filesystem_ts. | |
4289 | * configure: Regenerate. | |
4290 | ||
4291 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4292 | ||
4293 | PR libstdc++/93904 | |
4294 | * include/bits/stl_iterator.h (inserter): Do not deduce | |
4295 | iterator type (LWG 561). | |
4296 | * testsuite/24_iterators/insert_iterator/dr561.cc: New test. | |
4297 | ||
4298 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4299 | ||
4300 | * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI=0] | |
4301 | (basic_string::reserve()): Do nothing if exceptions are not | |
4302 | enabled. | |
4303 | ||
4304 | 2020-08-10 Jonathan Wakely <jwakely@redhat.com> | |
4305 | ||
4306 | PR libstdc++/95749 | |
4307 | * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS] | |
4308 | (stat_type): Change to __stat64. | |
4309 | (stat): Use _wstat64. | |
4310 | ||
4311 | 2020-08-07 Jonathan Wakely <jwakely@redhat.com> | |
4312 | ||
4313 | PR libstdc++/96303 | |
4314 | * include/debug/bitset (bitset::operator==): Call _M_base() on | |
4315 | right operand. | |
4316 | (bitset::operator!=): Likewise, but don't define it at all when | |
4317 | default comparisons are supported by the compiler. | |
4318 | * testsuite/23_containers/bitset/operations/96303.cc: New test. | |
4319 | ||
4320 | 2020-08-07 Jonathan Wakely <jwakely@redhat.com> | |
4321 | ||
4322 | * testsuite/18_support/comparisons/algorithms/partial_order.cc: | |
4323 | Replace VERIFY with static_assert where the compiler now | |
4324 | allows it. | |
4325 | * testsuite/18_support/comparisons/algorithms/weak_order.cc: | |
4326 | Likewise. | |
4327 | ||
4328 | 2020-08-07 Jonathan Wakely <jwakely@redhat.com> | |
4329 | ||
4330 | * config/abi/pre/gnu.ver: Fix wildcards for wstring symbols. | |
4331 | ||
4332 | 2020-08-06 Andrew Luo <andrewluotechnologies@outlook.com> | |
4333 | Jonathan Wakely <jwakely@redhat.com> | |
4334 | ||
4335 | * config/abi/pre/gnu.ver (GLIBCXX_3.4): Use less greedy | |
4336 | patterns for basic_string members. | |
4337 | (GLIBCXX_3.4.29): Export new basic_string::reserve symbols. | |
4338 | * doc/xml/manual/status_cxx2020.xml: Update P0966 status. | |
4339 | * include/bits/basic_string.h (shrink_to_fit()): Call reserve(). | |
4340 | (reserve(size_type)): Remove default argument. | |
4341 | (reserve()): Declare new overload. | |
4342 | [!_GLIBCXX_USE_CXX11_ABI] (shrink_to_fit, reserve): Likewise. | |
4343 | * include/bits/basic_string.tcc (reserve(size_type)): Remove | |
4344 | support for shrinking capacity. | |
4345 | (reserve()): Perform shrink-to-fit operation. | |
4346 | [!_GLIBCXX_USE_CXX11_ABI] (reserve): Likewise. | |
4347 | * testsuite/21_strings/basic_string/capacity/1.cc: Adjust to | |
4348 | reflect new behavior. | |
4349 | * testsuite/21_strings/basic_string/capacity/char/1.cc: | |
4350 | Likewise. | |
4351 | * testsuite/21_strings/basic_string/capacity/char/18654.cc: | |
4352 | Likewise. | |
4353 | * testsuite/21_strings/basic_string/capacity/char/2.cc: | |
4354 | Likewise. | |
4355 | * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: | |
4356 | Likewise. | |
4357 | * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: | |
4358 | Likewise. | |
4359 | * testsuite/21_strings/basic_string/capacity/wchar_t/2.cc: | |
4360 | Likewise. | |
4361 | ||
4362 | 2020-08-06 Jonathan Wakely <jwakely@redhat.com> | |
4363 | ||
4364 | * include/bits/basic_string.tcc | |
4365 | (operator>>(basic_istream&, basic_string&)): Do not set eofbit | |
4366 | if extraction stopped after in.width() characters. | |
4367 | * src/c++98/istream-string.cc (operator>>(istream&, string&)): | |
4368 | Likewise. | |
4369 | * include/bits/istream.tcc (__istream_extract): Do not set | |
4370 | eofbit if extraction stopped after n-1 characters. | |
4371 | * src/c++98/istream.cc (__istream_extract): Likewise. | |
4372 | * testsuite/21_strings/basic_string/inserters_extractors/char/13.cc: New test. | |
4373 | * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc: New test. | |
4374 | * testsuite/27_io/basic_istream/extractors_character/char/5.cc: New test. | |
4375 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc: New test. | |
4376 | ||
4377 | 2020-08-06 Jonathan Wakely <jwakely@redhat.com> | |
4378 | ||
4379 | PR libstdc++/96484 | |
4380 | * src/c++17/fs_ops.cc (fs::read_symlink): Return an error | |
4381 | immediately for non-symlinks. | |
4382 | * src/filesystem/ops.cc (fs::read_symlink): Likewise. | |
4383 | ||
4384 | 2020-08-06 Jonathan Wakely <jwakely@redhat.com> | |
4385 | ||
4386 | * include/std/istream (operator>>(istream&, char*)): Add | |
4387 | attributes to get warnings for pointers that are null or known | |
4388 | to point to the end of a buffer. Request upper bound from | |
4389 | __builtin_object_size check and handle zero-sized buffer case. | |
4390 | (operator>>(istream&, signed char)) | |
4391 | (operator>>(istream&, unsigned char*)): Add attributes. | |
4392 | * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc: | |
4393 | Check extracting into the middle of a buffer. | |
4394 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc: New test. | |
4395 | ||
4396 | 2020-08-05 Jonathan Wakely <jwakely@redhat.com> | |
4397 | ||
4398 | * include/std/atomic (atomic<T>::store): Reformat. | |
4399 | ||
4400 | 2020-08-05 Jonathan Wakely <jwakely@redhat.com> | |
4401 | ||
4402 | * doc/xml/manual/status_cxx2017.xml: Replace oneAPI DPC++ link | |
4403 | with LLVM repo for PSTL. | |
4404 | * doc/html/manual/status.html: Regenerate. | |
4405 | ||
4406 | 2020-08-05 Jonathan Wakely <jwakely@redhat.com> | |
4407 | ||
4408 | * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Export new symbols. | |
4409 | * include/bits/istream.tcc (__istream_extract): New function | |
4410 | template implementing both of operator>>(istream&, char*) and | |
4411 | operator>>(istream&, char(&)[N]). Add explicit instantiation | |
4412 | declaration for it. Remove explicit instantiation declarations | |
4413 | for old function templates. | |
4414 | * include/std/istream (__istream_extract): Declare. | |
4415 | (operator>>(basic_istream<C,T>&, C*)): Define inline and simply | |
4416 | call __istream_extract. | |
4417 | (operator>>(basic_istream<char,T>&, signed char*)): Likewise. | |
4418 | (operator>>(basic_istream<char,T>&, unsigned char*)): Likewise. | |
4419 | (operator>>(basic_istream<C,T>&, C(7)[N])): Define for LWG 2499. | |
4420 | (operator>>(basic_istream<char,T>&, signed char(&)[N])): | |
4421 | Likewise. | |
4422 | (operator>>(basic_istream<char,T>&, unsigned char(&)[N])): | |
4423 | Likewise. | |
4424 | * include/std/streambuf (basic_streambuf): Declare char overload | |
4425 | of __istream_extract as a friend. | |
4426 | * src/c++11/istream-inst.cc: Add explicit instantiation | |
4427 | definition for wchar_t overload of __istream_extract. Remove | |
4428 | explicit instantiation definitions of old operator>> overloads | |
4429 | for versioned-namespace build. | |
4430 | * src/c++98/istream.cc (operator>>(istream&, char*)): Replace | |
4431 | with __istream_extract(istream&, char*, streamsize). | |
4432 | * testsuite/27_io/basic_istream/extractors_character/char/3.cc: | |
4433 | Do not use variable-length array. | |
4434 | * testsuite/27_io/basic_istream/extractors_character/char/4.cc: | |
4435 | Do not run test for C++20. | |
4436 | * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: | |
4437 | Do not test writing to pointers for C++20. | |
4438 | * testsuite/27_io/basic_istream/extractors_character/char/9826.cc: | |
4439 | Use array instead of pointer. | |
4440 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc: | |
4441 | Do not use variable-length array. | |
4442 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: | |
4443 | Do not run test for C++20. | |
4444 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc: | |
4445 | Do not test writing to pointers for C++20. | |
4446 | * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc: | |
4447 | New test. | |
4448 | * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: | |
4449 | New test. | |
4450 | * testsuite/27_io/basic_istream/extractors_character/char/overflow.cc: | |
4451 | New test. | |
4452 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: | |
4453 | New test. | |
4454 | * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: | |
4455 | New test. | |
4456 | ||
4457 | 2020-08-01 Gerald Pfeifer <gerald@pfeifer.com> | |
4458 | ||
4459 | * doc/xml/manual/using_exceptions.xml: Move www.stroustrup.com to | |
4460 | https. | |
4461 | * doc/html/manual/using_exceptions.html: Regenerate. | |
4462 | ||
4463 | 2020-07-31 Gerald Pfeifer <gerald@pfeifer.com> | |
4464 | ||
4465 | * doc/xml/manual/status_cxx2017.xml: ParallelSTL is now part | |
4466 | of oneAPI DPC++ Library on Github. | |
4467 | * doc/html/manual/status.html: Regenerate. | |
4468 | ||
4469 | 2020-07-31 François Dumont <fdumont@gcc.gnu.org> | |
4470 | ||
4471 | * include/bits/stl_bvector.h | |
4472 | [_GLIBCXX_INLINE_VERSION](_Bvector_impl_data::_M_start): Define as | |
4473 | _Bit_type*. | |
4474 | (_Bvector_impl_data(const _Bvector_impl_data&)): Default. | |
4475 | (_Bvector_impl_data(_Bvector_impl_data&&)): Delegate to latter. | |
4476 | (_Bvector_impl_data::operator=(const _Bvector_impl_data&)): Default. | |
4477 | (_Bvector_impl_data::_M_move_data(_Bvector_impl_data&&)): Use latter. | |
4478 | (_Bvector_impl_data::_M_reset()): Likewise. | |
4479 | (_Bvector_impl_data::_M_swap_data): New. | |
4480 | (_Bvector_impl::_Bvector_impl(_Bvector_impl&&)): Implement explicitely. | |
4481 | (_Bvector_impl::_Bvector_impl(_Bit_alloc_type&&, _Bvector_impl&&)): New. | |
4482 | (_Bvector_base::_Bvector_base(_Bvector_base&&, const allocator_type&)): | |
4483 | New, use latter. | |
4484 | (vector::vector(vector&&, const allocator_type&, true_type)): New, use | |
4485 | latter. | |
4486 | (vector::vector(vector&&, const allocator_type&, false_type)): New. | |
4487 | (vector::vector(vector&&, const allocator_type&)): Use latters. | |
4488 | (vector::vector(const vector&, const allocator_type&)): Adapt. | |
4489 | [__cplusplus >= 201103](vector::vector(_InputIt, _InputIt, | |
4490 | const allocator_type&)): Use _M_initialize_range. | |
4491 | (vector::operator[](size_type)): Use iterator operator[]. | |
4492 | (vector::operator[](size_type) const): Use const_iterator operator[]. | |
4493 | (vector::swap(vector&)): Add assertions on allocators. Use _M_swap_data. | |
4494 | [__cplusplus >= 201103](vector::insert(const_iterator, _InputIt, | |
4495 | _InputIt)): Use _M_insert_range. | |
4496 | (vector::_M_initialize(size_type)): Adapt. | |
4497 | [__cplusplus >= 201103](vector::_M_initialize_dispatch): Remove. | |
4498 | [__cplusplus >= 201103](vector::_M_insert_dispatch): Remove. | |
4499 | * python/libstdcxx/v6/printers.py (StdVectorPrinter._iterator): Stop | |
4500 | using start _M_offset. | |
4501 | (StdVectorPrinter.to_string): Likewise. | |
4502 | * testsuite/23_containers/vector/bool/allocator/swap.cc: Adapt. | |
4503 | * testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc: | |
4504 | Add check. | |
4505 | ||
4506 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4507 | ||
4508 | * testsuite/27_io/basic_istream/ignore/char/94749.cc: Use 0 | |
4509 | instead of nullptr. | |
4510 | * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: | |
4511 | Likewise. | |
4512 | ||
4513 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4514 | ||
4515 | * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc: | |
4516 | Move struct to namespace scope. | |
4517 | ||
4518 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4519 | ||
4520 | * testsuite/26_numerics/numbers/float128.cc: Check | |
4521 | __STRICT_ANSI__ before using __float128. | |
4522 | * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: | |
4523 | Likewise. | |
4524 | ||
4525 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4526 | ||
4527 | * testsuite/18_support/set_terminate.cc: Require C++11 or | |
4528 | higher. | |
4529 | * testsuite/28_regex/simple_c++11.cc: Likewise. | |
4530 | * testsuite/tr1/headers/c++200x/complex.cc: Likewise. | |
4531 | * testsuite/24_iterators/headers/iterator/synopsis.cc: | |
4532 | Require C++14 or lower. | |
4533 | ||
4534 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4535 | ||
4536 | * testsuite/23_containers/span/back_assert_neg.cc: Split c++2a | |
4537 | effective-target from xfail selector. | |
4538 | * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise. | |
4539 | * testsuite/23_containers/span/first_assert_neg.cc: Likewise. | |
4540 | * testsuite/23_containers/span/front_assert_neg.cc: Likewise. | |
4541 | * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise. | |
4542 | * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise. | |
4543 | * testsuite/23_containers/span/last_assert_neg.cc: Likewise. | |
4544 | * testsuite/23_containers/span/subspan_2_assert_neg.cc: | |
4545 | Likewise. | |
4546 | * testsuite/23_containers/span/subspan_3_assert_neg.cc: | |
4547 | Likewise. | |
4548 | * testsuite/23_containers/span/subspan_4_assert_neg.cc: | |
4549 | Likewise. | |
4550 | * testsuite/23_containers/span/subspan_5_assert_neg.cc: | |
4551 | Likewise. | |
4552 | * testsuite/23_containers/span/subspan_6_assert_neg.cc: | |
4553 | Likewise. | |
4554 | * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise. | |
4555 | ||
4556 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4557 | ||
4558 | * testsuite/20_util/reference_wrapper/83427.cc: Adjust | |
4559 | effective-target to specific language mode only. | |
4560 | * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: | |
4561 | Likewise. | |
4562 | * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: | |
4563 | Likewise. | |
4564 | * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: | |
4565 | Likewise. | |
4566 | * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: | |
4567 | Likewise. | |
4568 | * testsuite/26_numerics/valarray/69116.cc: | |
4569 | Likewise. | |
4570 | * testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc: | |
4571 | Remove whitespace at end of file. | |
4572 | * testsuite/30_threads/headers/future/std_c++0x_neg.cc: | |
4573 | Likewise. | |
4574 | ||
4575 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4576 | ||
4577 | * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add | |
4578 | c++17 effective-target. | |
4579 | * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: | |
4580 | Likewise. | |
4581 | * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Likewise. | |
4582 | * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: | |
4583 | Likewise. | |
4584 | * testsuite/17_intro/headers/c++2017/operator_names.cc: | |
4585 | Likewise. | |
4586 | * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise. | |
4587 | * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: | |
4588 | Likewise. | |
4589 | * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: | |
4590 | Likewise. | |
4591 | * testsuite/19_diagnostics/error_code/is_error_code_v.cc: | |
4592 | Likewise. | |
4593 | * testsuite/20_util/any/assign/1.cc: Likewise. | |
4594 | * testsuite/20_util/any/assign/2.cc: Likewise. | |
4595 | * testsuite/20_util/any/assign/emplace.cc: Likewise. | |
4596 | * testsuite/20_util/any/assign/exception.cc: Likewise. | |
4597 | * testsuite/20_util/any/assign/self.cc: Likewise. | |
4598 | * testsuite/20_util/any/cons/1.cc: Likewise. | |
4599 | * testsuite/20_util/any/cons/2.cc: Likewise. | |
4600 | * testsuite/20_util/any/cons/aligned.cc: Likewise. | |
4601 | * testsuite/20_util/any/cons/explicit.cc: Likewise. | |
4602 | * testsuite/20_util/any/cons/in_place.cc: Likewise. | |
4603 | * testsuite/20_util/any/cons/nontrivial.cc: Likewise. | |
4604 | * testsuite/20_util/any/make_any.cc: Likewise. | |
4605 | * testsuite/20_util/any/misc/any_cast.cc: Likewise. | |
4606 | * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. | |
4607 | * testsuite/20_util/any/misc/swap.cc: Likewise. | |
4608 | * testsuite/20_util/any/modifiers/1.cc: Likewise. | |
4609 | * testsuite/20_util/any/observers/type.cc: Likewise. | |
4610 | * testsuite/20_util/any/requirements.cc: Likewise. | |
4611 | * testsuite/20_util/any/typedefs.cc: Likewise. | |
4612 | * testsuite/20_util/as_const/1.cc: Likewise. | |
4613 | * testsuite/20_util/as_const/rvalue_neg.cc: Likewise. | |
4614 | * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. | |
4615 | * testsuite/20_util/bool_constant/requirements.cc: Likewise. | |
4616 | * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc: | |
4617 | Likewise. | |
4618 | * testsuite/20_util/duration_cast/rounding.cc: Likewise. | |
4619 | * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: | |
4620 | Likewise. | |
4621 | * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. | |
4622 | * testsuite/20_util/function_objects/not_fn/1.cc: Likewise. | |
4623 | * testsuite/20_util/function_objects/searchers.cc: Likewise. | |
4624 | * testsuite/20_util/in_place/requirements.cc: Likewise. | |
4625 | * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc: | |
4626 | Likewise. | |
4627 | * testsuite/20_util/is_invocable/requirements/typedefs.cc: | |
4628 | Likewise. | |
4629 | * testsuite/20_util/is_invocable/value.cc: Likewise. | |
4630 | * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc: | |
4631 | Likewise. | |
4632 | * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: | |
4633 | Likewise. | |
4634 | * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: | |
4635 | Likewise. | |
4636 | * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: | |
4637 | Likewise. | |
4638 | * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. | |
4639 | * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: | |
4640 | Likewise. | |
4641 | * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: | |
4642 | Likewise. | |
4643 | * testsuite/20_util/is_nothrow_swappable_with/value.cc: | |
4644 | Likewise. | |
4645 | * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: | |
4646 | Likewise. | |
4647 | * testsuite/20_util/is_swappable/requirements/typedefs.cc: | |
4648 | Likewise. | |
4649 | * testsuite/20_util/is_swappable/value.cc: Likewise. | |
4650 | * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: | |
4651 | Likewise. | |
4652 | * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: | |
4653 | Likewise. | |
4654 | * testsuite/20_util/is_swappable_with/value.cc: Likewise. | |
4655 | * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: | |
4656 | Likewise. | |
4657 | * testsuite/20_util/logical_traits/requirements/typedefs.cc: | |
4658 | Likewise. | |
4659 | * testsuite/20_util/logical_traits/value.cc: Likewise. | |
4660 | * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise. | |
4661 | * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. | |
4662 | * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. | |
4663 | * testsuite/20_util/optional/hash.cc: Likewise. | |
4664 | * testsuite/20_util/pair/swap_cxx17.cc: Likewise. | |
4665 | * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise. | |
4666 | * testsuite/20_util/shared_ptr/requirements/weak_type.cc: | |
4667 | Likewise. | |
4668 | * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: | |
4669 | Likewise. | |
4670 | * testsuite/20_util/tuple/apply/1.cc: Likewise. | |
4671 | * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. | |
4672 | * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. | |
4673 | * testsuite/20_util/tuple/tuple_size_v.cc: Likewise. | |
4674 | * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: | |
4675 | Likewise. | |
4676 | * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: | |
4677 | Likewise. | |
4678 | * testsuite/20_util/variant/any.cc: Likewise. | |
4679 | * testsuite/20_util/variant/compile.cc: Likewise. | |
4680 | * testsuite/20_util/variant/hash.cc: Likewise. | |
4681 | * testsuite/20_util/variant/index_type.cc: Likewise. | |
4682 | * testsuite/20_util/variant/run.cc: Likewise. | |
4683 | * testsuite/20_util/void_t/1.cc: Likewise. | |
4684 | * testsuite/21_strings/basic_string/79162.cc: Likewise. | |
4685 | * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. | |
4686 | * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. | |
4687 | * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. | |
4688 | * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. | |
4689 | * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: | |
4690 | Likewise. | |
4691 | * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: | |
4692 | Likewise. | |
4693 | * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: | |
4694 | Likewise. | |
4695 | * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: | |
4696 | Likewise. | |
4697 | * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: | |
4698 | Likewise. | |
4699 | * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: | |
4700 | Likewise. | |
4701 | * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: | |
4702 | Likewise. | |
4703 | * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: | |
4704 | Likewise. | |
4705 | * testsuite/21_strings/basic_string/operations/compare/char/2.cc: | |
4706 | Likewise. | |
4707 | * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: | |
4708 | Likewise. | |
4709 | * testsuite/21_strings/basic_string/operations/data/char/2.cc: | |
4710 | Likewise. | |
4711 | * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: | |
4712 | Likewise. | |
4713 | * testsuite/21_strings/basic_string/operations/find/char/5.cc: | |
4714 | Likewise. | |
4715 | * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: | |
4716 | Likewise. | |
4717 | * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise. | |
4718 | * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: | |
4719 | Likewise. | |
4720 | * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise. | |
4721 | * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise. | |
4722 | * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise. | |
4723 | * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise. | |
4724 | * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: | |
4725 | Likewise. | |
4726 | * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: | |
4727 | Likewise. | |
4728 | * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: | |
4729 | Likewise. | |
4730 | * testsuite/21_strings/basic_string_view/element_access/char/1.cc: | |
4731 | Likewise. | |
4732 | * testsuite/21_strings/basic_string_view/element_access/char/2.cc: | |
4733 | Likewise. | |
4734 | * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: | |
4735 | Likewise. | |
4736 | * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc: | |
4737 | Likewise. | |
4738 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: | |
4739 | Likewise. | |
4740 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: | |
4741 | Likewise. | |
4742 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc: | |
4743 | Likewise. | |
4744 | * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc: | |
4745 | Likewise. | |
4746 | * testsuite/21_strings/basic_string_view/include.cc: Likewise. | |
4747 | * testsuite/21_strings/basic_string_view/inserters/char/1.cc: | |
4748 | Likewise. | |
4749 | * testsuite/21_strings/basic_string_view/inserters/char/2.cc: | |
4750 | Likewise. | |
4751 | * testsuite/21_strings/basic_string_view/inserters/char/3.cc: | |
4752 | Likewise. | |
4753 | * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc: | |
4754 | Likewise. | |
4755 | * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc: | |
4756 | Likewise. | |
4757 | * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: | |
4758 | Likewise. | |
4759 | * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc: | |
4760 | Likewise. | |
4761 | * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: | |
4762 | Likewise. | |
4763 | * testsuite/21_strings/basic_string_view/literals/types.cc: | |
4764 | Likewise. | |
4765 | * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: | |
4766 | Likewise. | |
4767 | * testsuite/21_strings/basic_string_view/literals/values.cc: | |
4768 | Likewise. | |
4769 | * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: | |
4770 | Likewise. | |
4771 | * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: | |
4772 | Likewise. | |
4773 | * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: | |
4774 | Likewise. | |
4775 | * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: | |
4776 | Likewise. | |
4777 | * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: | |
4778 | Likewise. | |
4779 | * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc: | |
4780 | Likewise. | |
4781 | * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc: | |
4782 | Likewise. | |
4783 | * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc: | |
4784 | Likewise. | |
4785 | * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: | |
4786 | Likewise. | |
4787 | * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: | |
4788 | Likewise. | |
4789 | * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: | |
4790 | Likewise. | |
4791 | * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: | |
4792 | Likewise. | |
4793 | * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: | |
4794 | Likewise. | |
4795 | * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: | |
4796 | Likewise. | |
4797 | * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: | |
4798 | Likewise. | |
4799 | * testsuite/21_strings/basic_string_view/operations/find/char/4.cc: | |
4800 | Likewise. | |
4801 | * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: | |
4802 | Likewise. | |
4803 | * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: | |
4804 | Likewise. | |
4805 | * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: | |
4806 | Likewise. | |
4807 | * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc: | |
4808 | Likewise. | |
4809 | * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc: | |
4810 | Likewise. | |
4811 | * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc: | |
4812 | Likewise. | |
4813 | * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc: | |
4814 | Likewise. | |
4815 | * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc: | |
4816 | Likewise. | |
4817 | * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc: | |
4818 | Likewise. | |
4819 | * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc: | |
4820 | Likewise. | |
4821 | * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc: | |
4822 | Likewise. | |
4823 | * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: | |
4824 | Likewise. | |
4825 | * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: | |
4826 | Likewise. | |
4827 | * testsuite/21_strings/basic_string_view/range_access/char/1.cc: | |
4828 | Likewise. | |
4829 | * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: | |
4830 | Likewise. | |
4831 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: | |
4832 | Likewise. | |
4833 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: | |
4834 | Likewise. | |
4835 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: | |
4836 | Likewise. | |
4837 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: | |
4838 | Likewise. | |
4839 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: | |
4840 | Likewise. | |
4841 | * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: | |
4842 | Likewise. | |
4843 | * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: | |
4844 | Likewise. | |
4845 | * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. | |
4846 | * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. | |
4847 | * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: | |
4848 | Likewise. | |
4849 | * testsuite/23_containers/map/modifiers/extract.cc: Likewise. | |
4850 | * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: | |
4851 | Likewise. | |
4852 | * testsuite/23_containers/map/modifiers/merge.cc: Likewise. | |
4853 | * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. | |
4854 | * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. | |
4855 | * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. | |
4856 | * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. | |
4857 | * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. | |
4858 | * testsuite/23_containers/set/modifiers/extract.cc: Likewise. | |
4859 | * testsuite/23_containers/set/modifiers/merge.cc: Likewise. | |
4860 | * testsuite/23_containers/unordered_map/modifiers/extract.cc: | |
4861 | Likewise. | |
4862 | * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: | |
4863 | Likewise. | |
4864 | * testsuite/23_containers/unordered_map/modifiers/merge.cc: | |
4865 | Likewise. | |
4866 | * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: | |
4867 | Likewise. | |
4868 | * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: | |
4869 | Likewise. | |
4870 | * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: | |
4871 | Likewise. | |
4872 | * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: | |
4873 | Likewise. | |
4874 | * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: | |
4875 | Likewise. | |
4876 | * testsuite/23_containers/unordered_set/modifiers/extract.cc: | |
4877 | Likewise. | |
4878 | * testsuite/23_containers/unordered_set/modifiers/merge.cc: | |
4879 | Likewise. | |
4880 | * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: | |
4881 | Likewise. | |
4882 | * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: | |
4883 | Likewise. | |
4884 | * testsuite/25_algorithms/clamp/1.cc: Likewise. | |
4885 | * testsuite/25_algorithms/clamp/2.cc: Likewise. | |
4886 | * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. | |
4887 | * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: | |
4888 | Likewise. | |
4889 | * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc: | |
4890 | Likewise. | |
4891 | * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: | |
4892 | Likewise. | |
4893 | * testsuite/26_numerics/headers/cmath/special_functions_global.cc: | |
4894 | Likewise. | |
4895 | * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: | |
4896 | Likewise. | |
4897 | * testsuite/29_atomics/atomic/is_always_lock_free.cc: Likewise. | |
4898 | * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: | |
4899 | Likewise. | |
4900 | * testsuite/30_threads/shared_lock/70766.cc: Likewise. | |
4901 | * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. | |
4902 | * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: | |
4903 | Likewise. | |
4904 | * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: | |
4905 | Likewise. | |
4906 | * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: | |
4907 | Likewise. | |
4908 | * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. | |
4909 | * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. | |
4910 | * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. | |
4911 | ||
4912 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4913 | ||
4914 | PR libstdc++/96382 | |
4915 | * include/bits/stl_iterator.h (reverse_iterator): Friend | |
4916 | declaration should not depend on __cplusplus. | |
4917 | ||
4918 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4919 | ||
4920 | * testsuite/experimental/filesystem/filesystem_error/cons.cc: | |
4921 | Remove -std=gnu++17 option. | |
4922 | ||
4923 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4924 | ||
4925 | * testsuite/20_util/is_aggregate/value.cc: Adjust for changes to | |
4926 | definition of aggregates in C++20. | |
4927 | * testsuite/20_util/optional/requirements.cc: Adjust for | |
4928 | defaulted comparisons in C++20. | |
4929 | ||
4930 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4931 | ||
4932 | * testsuite/20_util/tuple/78939.cc: Suppress warnings about | |
4933 | deprecation of volatile-qualified structured bindings in C++20. | |
4934 | * testsuite/20_util/variable_templates_for_traits.cc: Likewise | |
4935 | for deprecation of is_pod in C++20 | |
4936 | ||
4937 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4938 | ||
4939 | * testsuite/20_util/time_point_cast/rounding.cc: Remove | |
4940 | duplicate dg-do directive and add c++17 effective target. | |
4941 | ||
4942 | 2020-07-31 Jonathan Wakely <jwakely@redhat.com> | |
4943 | ||
4944 | * src/c++17/floating_from_chars.cc (from_chars_impl): Use | |
4945 | LC_ALL_MASK not LC_ALL. | |
4946 | ||
4947 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
4948 | ||
4949 | PR debug/96383 | |
4950 | * testsuite/20_util/assume_aligned/3.cc: Use -g0. | |
4951 | ||
4952 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4953 | ||
4954 | * include/bits/basic_string.h (size_type, difference_type): | |
4955 | Use allocator_traits to obtain the allocator's size_type and | |
4956 | difference_type. | |
4957 | ||
4958 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4959 | ||
4960 | PR libstdc++/96279 | |
4961 | * src/c++17/floating_from_chars.cc (from_chars_impl): Use | |
4962 | isinf unqualified. | |
4963 | [!_GLIBCXX_USE_C99_STDLIB]: Use strtod for float and long | |
4964 | double. | |
4965 | ||
4966 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4967 | ||
4968 | * testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc: | |
4969 | Use allocator with the correct value type. | |
4970 | * testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc: | |
4971 | Likewise. | |
4972 | ||
4973 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4974 | ||
4975 | * testsuite/20_util/from_chars/4.cc: Pass non-const iterator | |
4976 | to string::insert. | |
4977 | ||
4978 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4979 | ||
4980 | * include/bits/iterator_concepts.h (__detail::__cv_bool): New | |
4981 | helper concept. | |
4982 | (__detail::__integral_nonbool): Likewise. | |
4983 | (__detail::__is_integer_like): Use __integral_nonbool. | |
4984 | * testsuite/std/ranges/access/lwg3467.cc: New test. | |
4985 | ||
4986 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4987 | ||
4988 | * testsuite/20_util/from_chars/4.cc: Use dg-add-options ieee. | |
4989 | * testsuite/29_atomics/atomic_float/1.cc: Likewise. | |
4990 | ||
4991 | 2020-07-30 Jonathan Wakely <jwakely@redhat.com> | |
4992 | ||
4993 | * testsuite/23_containers/vector/bool/72847.cc: Use the | |
4994 | exceptions_enabled effective-target keyword instead of | |
4995 | checking for an explicit -fno-exceptions option. | |
4996 | * testsuite/util/testsuite_abi.cc (examine_symbol): Remove | |
4997 | redundant try-catch. | |
4998 | * testsuite/util/testsuite_allocator.h [!__cpp_exceptions]: | |
4999 | Do not define check_allocate_max_size and memory_resource. | |
5000 | * testsuite/util/testsuite_containers.h: Replace comment with | |
5001 | #error if wrong standard dialect used. | |
5002 | * testsuite/util/testsuite_shared.cc: Likewise. | |
5003 | ||
5004 | 2020-07-29 François Dumont <fdumont@gcc.gnu.org> | |
5005 | ||
5006 | * include/bits/hashtable_policy.h (_Node_iterator_base()): New. | |
5007 | (operator==(const _Node_iterator_base&, const _Node_iterator_base&)): | |
5008 | Make hidden friend. | |
5009 | (operator!=(const _Node_iterator_base&, const _Node_iterator_base&)): | |
5010 | Make hidden friend. | |
5011 | (_Local_iterator_base<>): Inherits _Node_iterator_base. | |
5012 | (_Local_iterator_base<>::_M_cur): Remove. | |
5013 | (_Local_iterator_base<>::_M_curr()): Remove. | |
5014 | (operator==(const _Local_iterator_base&, const _Local_iterator_base&)): | |
5015 | Remove. | |
5016 | (operator!=(const _Local_iterator_base&, const _Local_iterator_base&)): | |
5017 | Remove. | |
5018 | * include/debug/unordered_map (unordered_map<>::_M_invalidate): Adapt. | |
5019 | (unordered_multimap<>::_M_invalidate): Adapt. | |
5020 | * include/debug/unordered_set (unordered_set<>::_M_invalidate): Adapt. | |
5021 | (unordered_multiset<>::_M_invalidate): Adapt. | |
5022 | ||
5023 | 2020-07-29 David Edelsohn <dje.gcc@gmail.com> | |
5024 | Jonathan Wakely <jwakely@redhat.com> | |
5025 | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
5026 | ||
5027 | * testsuite/lib/dg-options.exp (add_options_for_libatomic): Add | |
5028 | target powerpc-ibm-aix* and powerpc*-*-darwin*. | |
5029 | * testsuite/29_atomics/atomic_float/value_init.cc: Add options | |
5030 | for libatomic. | |
5031 | ||
5032 | 2020-07-29 François Dumont <fdumont@gcc.gnu.org> | |
5033 | ||
5034 | * include/bits/hashtable.h | |
5035 | (_Hashtable(_Hashtable&& __ht, __node_alloc_type&& __a, true_type)): | |
5036 | Add noexcept qualification. | |
5037 | (_Hashtable(_Hashtable&&)): Fix noexcept qualification. | |
5038 | (_Hashtable(_Hashtable&&, const allocator_type&)): Add noexcept | |
5039 | qualification. | |
5040 | * include/bits/unordered_map.h | |
5041 | (unordered_map(unordered_map&&, const allocator_type&)): Add noexcept | |
5042 | qualification. | |
5043 | (unordered_multimap(unordered_multimap&&, const allocator_type&)): | |
5044 | Likewise. | |
5045 | * include/bits/unordered_set.h | |
5046 | (unordered_set(unordered_set&&, const allocator_type&)): Likewise. | |
5047 | (unordered_multiset(unordered_multiset&&, const allocator_type&)): | |
5048 | Likewise. | |
5049 | * include/debug/unordered_map | |
5050 | (unordered_map(unordered_map&&, const allocator_type&)): Likewise. | |
5051 | (unordered_multimap(unordered_multimap&&, const allocator_type&)): | |
5052 | Likewise. | |
5053 | * include/debug/unordered_set | |
5054 | (unordered_set(unordered_set&&, const allocator_type&)): Likewise. | |
5055 | (unordered_multiset(unordered_multiset&&, const allocator_type&)): | |
5056 | Likewise. | |
5057 | * testsuite/23_containers/unordered_map/allocator/default_init.cc: | |
5058 | New test. | |
5059 | * testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc: | |
5060 | New test. | |
5061 | * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc: | |
5062 | New test. | |
5063 | * testsuite/23_containers/unordered_map/modifiers/move_assign.cc: | |
5064 | New test. | |
5065 | * testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc: | |
5066 | New test. | |
5067 | * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc: | |
5068 | New test. | |
5069 | * testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc: | |
5070 | New test. | |
5071 | * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc: | |
5072 | New test. | |
5073 | * testsuite/23_containers/unordered_set/allocator/default_init.cc: | |
5074 | New test. | |
5075 | * testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc: | |
5076 | New test. | |
5077 | * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc: | |
5078 | New test. | |
5079 | ||
5080 | 2020-07-28 François Dumont <fdumont@gcc.gnu.org> | |
5081 | ||
5082 | * include/bits/hashtable.h | |
5083 | (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&, | |
5084 | const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, | |
5085 | const allocator_type&, true_type)): New. | |
5086 | (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&, | |
5087 | const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, | |
5088 | const allocator_type&, false_type)): New. | |
5089 | (_Hashtable<>(_InputIterator, _InputIterator, size_t, const _H1&, | |
5090 | const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, | |
5091 | const allocator_type&)): Delegate to latters. | |
5092 | (operator=(initializer_list<value_type>)): Rehash if too small. | |
5093 | (_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Remove | |
5094 | size_t len parameter. | |
5095 | * include/bits/hashtable_policy.h (_Insert_base<>::_M_insert_range): | |
5096 | Do not try to get input range distance. | |
5097 | * testsuite/23_containers/unordered_set/cons/bucket_hint.cc: New test. | |
5098 | * testsuite/23_containers/unordered_set/modifiers/insert.cc: New test. | |
5099 | ||
5100 | 2020-07-27 François Dumont <fdumont@gcc.gnu.org> | |
5101 | ||
5102 | * include/bits/hashtable_policy.h (_Map_base<>::at): Use | |
5103 | _Hashtable<>::find. | |
5104 | (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals):New. | |
5105 | (_Hashtable_base<>::_M_node_equals): New, use latter. | |
5106 | (_Equality<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1, _H2, _Hash, | |
5107 | _RehashPolicy, false>::_M_equal): Adapt to use latter. | |
5108 | * include/bits/hashtable.h (_Hashtable<>::_M_update_bbegin): New. | |
5109 | (_Hashtable<>::_M_assign): Use latter. | |
5110 | (_Hashtable<>::_M_move_assign): Likewise. | |
5111 | (_Hashtable<>(_Hashtable<>&&)): Likewise. | |
5112 | (_Hashtable<>(_Hashtable<>&&, const allocator_type&)): Likewise. | |
5113 | (_Hashtable<>::swap): Likewise. | |
5114 | (_Hashtable<>::find): Build iterator directly from _M_find_node result. | |
5115 | (_Hashtable<>::count): Use _Hashtable<>::find. | |
5116 | (_Hashtable<>::equal_range): Likewise. | |
5117 | (_Hashtable<>::_M_erase(false_type, const key_type&)): Use | |
5118 | _M_node_equals. | |
5119 | ||
5120 | 2020-07-27 Jonathan Wakely <jwakely@redhat.com> | |
5121 | ||
5122 | * src/c++17/floating_from_chars.cc (from_chars_impl): Ensure | |
5123 | that FE_NEAREST is used. | |
5124 | * testsuite/20_util/from_chars/4.cc: Do not use if constexpr in | |
5125 | a { target c++14 } test. | |
5126 | [!_GLIBCXX_HAVE_USELOCALE]: Disable all tests. | |
5127 | * testsuite/20_util/from_chars/5.cc [!_GLIBCXX_HAVE_USELOCALE]: | |
5128 | Likewise. | |
5129 | * testsuite/20_util/from_chars/6.cc: New test. | |
5130 | ||
5131 | 2020-07-22 Jonathan Wakely <jwakely@redhat.com> | |
5132 | ||
5133 | * include/std/future (future, shared_future, promise): Add | |
5134 | static assertions to the primary template to reject array and | |
5135 | function types. | |
5136 | * testsuite/30_threads/future/requirements/lwg3458.cc: New test. | |
5137 | * testsuite/30_threads/promise/requirements/lwg3466.cc: New test. | |
5138 | * testsuite/30_threads/shared_future/requirements/lwg3458.cc: New test. | |
5139 | ||
5140 | 2020-07-22 Jonathan Wakely <jwakely@redhat.com> | |
5141 | ||
5142 | * include/bits/stl_iterator.h (reverse_iterator): Constrain | |
5143 | converting constructor and converting assignment operator. | |
5144 | Access source iterator's data member directly instead of | |
5145 | calling base(). | |
5146 | (move_iterator): Likewise. | |
5147 | * testsuite/24_iterators/move_iterator/dr3435.cc: New test. | |
5148 | * testsuite/24_iterators/reverse_iterator/dr3435.cc: New test. | |
5149 | ||
5150 | 2020-07-20 Jonathan Wakely <jwakely@redhat.com> | |
5151 | ||
5152 | * acinclude.m4 (libtool_VERSION): Bump version. | |
5153 | * config.h.in: Regenerate. | |
5154 | * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.29 version and new | |
5155 | exports. | |
5156 | * config/os/gnu-linux/ldbl-extra.ver: Add _GLIBCXX_LDBL_3.4.29 | |
5157 | version and new export. | |
5158 | * configure: Regenerate. | |
5159 | * configure.ac: Check for <xlocale.h> and uselocale. | |
5160 | * crossconfig.m4: Add macro or checks for uselocale. | |
5161 | * include/std/charconv (from_chars): Declare overloads for | |
5162 | float, double, and long double. | |
5163 | * src/c++17/Makefile.am: Add new file. | |
5164 | * src/c++17/Makefile.in: Regenerate. | |
5165 | * src/c++17/floating_from_chars.cc: New file. | |
5166 | (from_chars): Define for float, double, and long double. | |
5167 | * testsuite/20_util/from_chars/1_c++20_neg.cc: Prune extra | |
5168 | diagnostics caused by new overloads. | |
5169 | * testsuite/20_util/from_chars/1_neg.cc: Likewise. | |
5170 | * testsuite/20_util/from_chars/2.cc: Check leading '+'. | |
5171 | * testsuite/20_util/from_chars/4.cc: New test. | |
5172 | * testsuite/20_util/from_chars/5.cc: New test. | |
5173 | * testsuite/util/testsuite_abi.cc: Add new symbol versions. | |
5174 | ||
5175 | 2020-07-20 Jonathan Wakely <jwakely@redhat.com> | |
5176 | ||
5177 | * include/bits/istream.tcc | |
5178 | (basic_istream::get(__streambuf_type&, char_type): Use unsigned | |
5179 | long long for counter and check if it would overflow _M_gcount. | |
5180 | * testsuite/27_io/basic_istream/get/char/lwg3464.cc: New test. | |
5181 | * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: New test. | |
5182 | ||
5183 | 2020-07-17 Iain Sandoe <iain@sandoe.co.uk> | |
5184 | ||
5185 | * include/std/coroutine: Mark the methods of the | |
5186 | trivial awaitables as constexpr. | |
5187 | ||
5188 | 2020-07-14 David Edelsohn <dje.gcc@gmail.com> | |
5189 | ||
5190 | * config/os/aix/t-aix: Set BITS from compiler cpp macro. | |
5191 | ||
5192 | 2020-07-13 Jonathan Wakely <jwakely@redhat.com> | |
5193 | ||
5194 | PR libstdc++/94749 | |
5195 | PR libstdc++/96161 | |
5196 | * include/bits/istream.tcc (basic_istream::ignore(streamsize)) | |
5197 | [n == max]: Check overflow conditions on _M_gcount. Rely on | |
5198 | the fact that either EOF or the delimiter was reached. | |
5199 | [n < max]: Check _M_gcount < n before checking for EOF or | |
5200 | delimiter. | |
5201 | (basic_istream::ignore(streamsize, char_type): Likewise. | |
5202 | * src/c++98/compatibility.cc (istream::ignore(streamsize)) | |
5203 | (wistream::ignore(streamsize)): Likewise. | |
5204 | * src/c++98/istream.cc (istream::ignore(streamsize, char_type)) | |
5205 | (wistream::ignore(streamsize, char_type)): Likewise. | |
5206 | * testsuite/27_io/basic_istream/ignore/char/94749.cc: Check that | |
5207 | delimiter is discarded if the number of characters ignored | |
5208 | doesn't fit in streamsize. | |
5209 | * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: | |
5210 | Likewise. | |
5211 | * testsuite/27_io/basic_istream/ignore/char/96161.cc: New test. | |
5212 | * testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc: New test. | |
5213 | ||
5214 | 2020-07-08 François Dumont <fdumont@gcc.gnu.org> | |
5215 | ||
5216 | * include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&)): Add noexcept | |
5217 | qualification based only on _Compare one. | |
5218 | * testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add | |
5219 | static asserts. | |
5220 | * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc: | |
5221 | Likewise. | |
5222 | * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc: | |
5223 | Likewise. | |
5224 | * testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise. | |
5225 | ||
5226 | 2020-07-07 Jonathan Wakely <jwakely@redhat.com> | |
5227 | ||
5228 | * include/std/limits: Whitespace changes. | |
5229 | ||
5230 | 2020-07-07 Jonathan Wakely <jwakely@redhat.com> | |
5231 | ||
5232 | * include/Makefile.am: Remove bits/int_limits.h. | |
5233 | * include/Makefile.in: Regenerate. | |
5234 | * include/bits/int_limits.h: Removed. | |
5235 | * include/bits/parse_numbers.h (_Select_int_base): Replace | |
5236 | __int_limits with __int_traits. | |
5237 | * include/bits/range_access.h (_SSize::operator()): Likewise. | |
5238 | * include/ext/numeric_traits.h (__numeric_traits_integer): Add | |
5239 | static assertion. | |
5240 | (__int_traits): New alias template. | |
5241 | * include/std/bit (__rotl, __rotr, __countl_zero, __countl_one) | |
5242 | (__countr_zero, __countr_one, __popcount, __bit_ceil) | |
5243 | (__bit_floor, __bit_width) Replace __int_limits with | |
5244 | __int_traits. | |
5245 | * include/std/charconv (__to_chars_8, __from_chars_binary) | |
5246 | (__from_chars_alpha_to_num, from_chars): Likewise. | |
5247 | * include/std/memory_resource (polymorphic_allocator::allocate) | |
5248 | (polymorphic_allocator::allocate_object): Likewise. | |
5249 | * include/std/string_view (basic_string_view::_S_compare): | |
5250 | Likewise. | |
5251 | * include/std/utility (cmp_equal, cmp_less, in_range): Likewise. | |
5252 | ||
5253 | 2020-07-07 Jonathan Wakely <jwakely@redhat.com> | |
5254 | ||
5255 | * include/std/limits: Whitespace changes. | |
5256 | ||
5257 | 2020-07-06 Jonathan Wakely <jwakely@redhat.com> | |
5258 | ||
5259 | * include/std/optional (_Optional_payload_base, _Optional_base) | |
5260 | (optional, __optional_hash_call_base): Adjust whitespace and | |
5261 | other formatting. Remove redundant && tokens on template | |
5262 | arguments to type traits. | |
5263 | ||
5264 | 2020-07-06 Jonathan Wakely <jwakely@redhat.com> | |
5265 | ||
5266 | * include/std/optional (make_optional): Add enable_if | |
5267 | constraints and noexcept-specifier to each overload. | |
5268 | * testsuite/20_util/optional/make_optional-2.cc: New test. | |
5269 | ||
5270 | 2020-07-06 Jonathan Wakely <jwakely@redhat.com> | |
5271 | ||
5272 | PR libstdc++/96036 | |
5273 | * include/std/optional (optional): Add noexcept-specifier to | |
5274 | every constructor, assignment operator, emplace function and | |
5275 | dereference operator. | |
5276 | * testsuite/20_util/optional/assignment/noexcept.cc: New test. | |
5277 | * testsuite/20_util/optional/cons/noexcept.cc: New test. | |
5278 | ||
5279 | 2020-07-06 Jonathan Wakely <jwakely@redhat.com> | |
5280 | ||
5281 | PR libstdc++/96063 | |
5282 | * include/bits/fs_dir.h: Use consistent tag in class-head. | |
5283 | * include/bits/localefwd.h: Likewise. | |
5284 | * include/bits/regex.h: Likewise. | |
5285 | * include/bits/stl_map.h: Likewise. | |
5286 | * include/bits/stl_multimap.h: Likewise. | |
5287 | * include/bits/stl_multiset.h: Likewise. | |
5288 | * include/bits/stl_set.h: Likewise. | |
5289 | * include/std/complex: Likewise. | |
5290 | * include/std/functional: Likewise. | |
5291 | * include/std/future: Likewise. | |
5292 | * include/std/system_error: Likewise. | |
5293 | * include/std/thread: Likewise. | |
5294 | * include/std/tuple: Likewise. | |
5295 | * include/std/type_traits: Likewise. | |
5296 | * include/std/valarray: Likewise. | |
5297 | ||
5298 | 2020-07-02 Jonathan Wakely <jwakely@redhat.com> | |
5299 | ||
5300 | * testsuite/27_io/basic_ios/conv/voidptr.cc: Add c++98_only | |
5301 | target selector. | |
5302 | ||
5303 | 2020-07-02 Jonathan Wakely <jwakely@redhat.com> | |
5304 | ||
5305 | * testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: Add | |
5306 | c++98_only target selector. | |
5307 | * testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc: | |
5308 | Likewise. | |
5309 | * testsuite/18_support/headers/cstdint/std_c++0x_neg.cc: | |
5310 | Likewise. | |
5311 | * testsuite/18_support/headers/new/synopsis_cxx98.cc: Likewise. | |
5312 | * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: | |
5313 | Likewise. | |
5314 | * testsuite/20_util/headers/type_traits/std_c++0x_neg.cc: | |
5315 | Likewise. | |
5316 | * testsuite/23_containers/headers/array/std_c++0x_neg.cc: | |
5317 | Likewise. | |
5318 | * testsuite/23_containers/headers/tuple/std_c++0x_neg.cc: | |
5319 | Likewise. | |
5320 | * testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc: | |
5321 | Likewise. | |
5322 | * testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc: | |
5323 | Likewise. | |
5324 | * testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc: | |
5325 | Likewise. | |
5326 | * testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc: | |
5327 | Likewise. | |
5328 | * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc: | |
5329 | Likewise. | |
5330 | * testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc: | |
5331 | Likewise. | |
5332 | * testsuite/26_numerics/headers/random/std_c++0x_neg.cc: | |
5333 | Likewise. | |
5334 | * testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc: Likewise. | |
5335 | * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Likewise. | |
5336 | * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: | |
5337 | Likewise. | |
5338 | * testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc: | |
5339 | Likewise. | |
5340 | * testsuite/30_threads/headers/future/std_c++0x_neg.cc: | |
5341 | Likewise. | |
5342 | * testsuite/30_threads/headers/mutex/std_c++0x_neg.cc: Likewise. | |
5343 | * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: | |
5344 | Likewise. | |
5345 | ||
5346 | 2020-07-02 Ville Voutilainen <ville.voutilainen@gmail.com> | |
5347 | ||
5348 | PR libstdc++/91807 | |
5349 | * include/std/variant | |
5350 | (_Copy_assign_base::operator=(const _Copy_assign_base&): | |
5351 | Do the move-assignment from a temporary so that the temporary | |
5352 | is constructed with an explicit index. | |
5353 | * testsuite/20_util/variant/91807.cc: New. | |
5354 | ||
5355 | 2020-07-02 Jonathan Wakely <jwakely.gcc@gmail.com> | |
5356 | ||
5357 | PR libstdc++/91153 | |
5358 | PR target/93224 | |
5359 | * testsuite/29_atomics/atomic_float/1.cc: Use different values | |
5360 | for tests. | |
5361 | * testsuite/29_atomics/atomic_ref/float.cc: Likewise. | |
5362 | ||
5363 | 2020-07-01 Jonathan Wakely <jwakely@redhat.com> | |
5364 | ||
5365 | PR libstdc++/94627 | |
5366 | * include/bits/regex.h (operator==, operator!=): Remove noexcept | |
5367 | equality comparisons for match_results. | |
5368 | * testsuite/28_regex/match_results/94627.cc: New test. | |
5369 | ||
5370 | 2020-07-01 Martin Sebor <msebor@redhat.com> | |
5371 | ||
5372 | * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: Adjust | |
5373 | text of expected warning. | |
5374 | * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: Same. | |
5375 | * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: Same. | |
5376 | * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: Same. | |
5377 | * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: Same. | |
5378 | ||
5379 | 2020-06-29 Ville Voutilainen <ville.voutilainen@gmail.com> | |
5380 | ||
5381 | Revert: | |
5382 | 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com> | |
5383 | ||
5384 | * include/bits/basic_string.h (string(_CharT*, const _Alloc&)): | |
5385 | Add a __nonnull__ attribute. | |
5386 | * testsuite/21_strings/basic_string/cons/char/nonnull.cc: New. | |
5387 | * testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise. | |
5388 | ||
5389 | 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com> | |
5390 | ||
5391 | * include/bits/basic_string.h (string(_CharT*, const _Alloc&)): | |
5392 | Add a __nonnull__ attribute. | |
5393 | * testsuite/21_strings/basic_string/cons/char/nonnull.cc: New. | |
5394 | * testsuite/21_strings/basic_string/cons/wchar_t/nonnull.cc: Likewise. | |
5395 | ||
5396 | 2020-06-28 Ville Voutilainen <ville.voutilainen@gmail.com> | |
5397 | ||
5398 | PR libstdc++/95915 | |
5399 | * include/std/type_traits (is_literal_type, is_literal_type_v): | |
5400 | Deprecate in C++17. | |
5401 | * include/std/variant (_Uninitialized): | |
5402 | Adjust the condition and the comment. | |
5403 | * testsuite/20_util/is_literal_type/deprecated-1z.cc: New. | |
5404 | * testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc: | |
5405 | Adjust. | |
5406 | * testsuite/20_util/is_literal_type/requirements/typedefs.cc: Likewise. | |
5407 | * testsuite/20_util/is_literal_type/value.cc: Likewise. | |
5408 | * testsuite/20_util/optional/constexpr/nullopt.cc: | |
5409 | Use __is_literal_type directly. | |
5410 | * testsuite/20_util/optional/nullopt.cc: Likewise. | |
5411 | * testsuite/20_util/variable_templates_for_traits.cc: Adjust. | |
5412 | * testsuite/20_util/variant/95915.cc: New. | |
5413 | * testsuite/20_util/variant/compile.cc: Add new test. | |
5414 | * testsuite/experimental/optional/constexpr/nullopt.cc: | |
5415 | Use __is_literal_type directly. | |
5416 | * testsuite/experimental/optional/nullopt.cc: Likewise. | |
5417 | * testsuite/experimental/type_traits/value.cc: Adjust. | |
5418 | * testsuite/util/testsuite_common_types.h: | |
5419 | Use __is_literal_type directly. | |
5420 | ||
5421 | 2020-06-24 Jonathan Wakely <jwakely@redhat.com> | |
5422 | ||
5423 | * include/std/charconv (__from_chars_binary): Ignore leading zeros. | |
5424 | * testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases, | |
5425 | not just 10 and 16. | |
5426 | * testsuite/20_util/from_chars/3.cc: New test. | |
5427 | ||
5428 | 2020-06-24 Jonathan Wakely <jwakely@redhat.com> | |
5429 | ||
5430 | * include/bits/stl_algobase.h (__find_if): Add FALLTHRU markers. | |
5431 | * include/std/charconv (__detail::__to_chars): Avoid | |
5432 | -Wsign-compare warning. | |
5433 | ||
5434 | 2020-06-24 Jonathan Wakely <jwakely@redhat.com> | |
5435 | ||
5436 | PR libstdc++/95851 | |
5437 | * include/std/charconv (__to_chars_i): Check for zero-sized | |
5438 | buffer unconditionally. | |
5439 | * testsuite/20_util/to_chars/95851.cc: New test. | |
5440 | ||
5441 | 2020-06-23 Jonathan Wakely <jwakely@redhat.com> | |
5442 | ||
5443 | * testsuite/20_util/from_chars/1_c++20_neg.cc: Check enumeration | |
5444 | type. | |
5445 | * testsuite/20_util/from_chars/1_neg.cc: Likewise. Move dg-error | |
5446 | directives outside preprocessor condition. | |
5447 | ||
5448 | 2020-06-23 Jonathan Wakely <jwakely@redhat.com> | |
5449 | ||
5450 | PR libstdc++/95832 | |
5451 | * include/std/variant (__detail::__variant::_Build_FUN): Remove | |
5452 | partial specialization to prevent narrowing conversions to bool. | |
5453 | * testsuite/20_util/variant/compile.cc: Test non-narrowing | |
5454 | conversions to bool. | |
5455 | * testsuite/20_util/variant/run.cc: Likewise. | |
5456 | ||
5457 | 2020-06-23 Jonathan Wakely <jwakely@redhat.com> | |
5458 | ||
5459 | * doc/Makefile.in: Regenerate. | |
5460 | * include/Makefile.in: Regenerate. | |
5461 | * libsupc++/Makefile.in: Regenerate. | |
5462 | * po/Makefile.in: Regenerate. | |
5463 | * python/Makefile.in: Regenerate. | |
5464 | * src/Makefile.in: Regenerate. | |
5465 | * src/c++11/Makefile.in: Regenerate. | |
5466 | * src/c++17/Makefile.in: Regenerate. | |
5467 | * src/c++98/Makefile.in: Regenerate. | |
5468 | * src/filesystem/Makefile.in: Regenerate. | |
5469 | * testsuite/Makefile.in: Regenerate. | |
5470 | ||
5471 | 2020-06-22 David Edelsohn <dje.gcc@gmail.com> | |
5472 | ||
5473 | * Makefile.am: Use -include. | |
5474 | * Makefile.in: Regenerate. | |
5475 | ||
5476 | 2020-06-21 David Edelsohn <dje.gcc@gmail.com> | |
5477 | ||
5478 | * Makefile.am (tmake_file): Build and install AIX-style FAT libraries. | |
5479 | * Makefile.in: Regenerate. | |
5480 | * configure.ac (tmake_file): Substitute. | |
5481 | * configure: Regenerate. | |
5482 | * configure.host (aix*): Define tmake_file. | |
5483 | * config/os/aix/t-aix: New file. | |
5484 | ||
5485 | 2020-06-20 Jason Merrill <jason@redhat.com> | |
5486 | ||
5487 | * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: | |
5488 | Remove greedy_ops tests. | |
5489 | * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: | |
5490 | Remove greedy_ops tests. | |
5491 | ||
5492 | 2020-06-19 Jonathan Wakely <jwakely@redhat.com> | |
5493 | ||
5494 | PR libstdc++/95765 | |
5495 | * include/bits/stl_algobase.h (__size_to_integer(float)) | |
5496 | (__size_to_integer(double), __size_to_integer(long double)) | |
5497 | (__size_to_integer(__float128)): Cast return type explicitly. | |
5498 | * include/bits/stl_uninitialized.h (__uninitialized_default_1<true>): | |
5499 | Remove unused typedef. | |
5500 | ||
5501 | 2020-06-19 Jonathan Wakely <jwakely@redhat.com> | |
5502 | ||
5503 | * include/bits/stl_pair.h (_Index_tuple): Remove redundant | |
5504 | namespace qualification. | |
5505 | (pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)): | |
5506 | Likewise. | |
5507 | * include/std/tuple (_Head_base, _Tuple_impl, tuple_size) | |
5508 | (tuple_element, __get_helper, get, __make_tuple_impl) | |
5509 | (__make_1st_indices, __tuple_concater) | |
5510 | (pair::pair(tuple<>&, tuple<>&, _Index_tuple, _Index_tuple)): | |
5511 | Likewise. | |
5512 | * include/std/utility (tuple_element, __is_tuple_like_impl) | |
5513 | (tuple_size, __pair_get, get): Likewise. | |
5514 | ||
5515 | 2020-06-19 Jonathan Wakely <jwakely@redhat.com> | |
5516 | ||
5517 | * include/bits/std_function.h (function): Define all member | |
5518 | functions inline. | |
5519 | ||
5520 | 2020-06-19 Marc Glisse <marc.glisse@inria.fr> | |
5521 | ||
5522 | * include/bits/stl_algo.h (__includes): Simplify the code. | |
5523 | ||
5524 | 2020-06-19 Marc Glisse <marc.glisse@inria.fr> | |
5525 | ||
5526 | * include/std/optional (optional()): Explicitly define it. | |
5527 | ||
5528 | 2020-06-17 Jonathan Wakely <jwakely@redhat.com> | |
5529 | ||
5530 | PR libstdc++/94540 | |
5531 | * include/bits/stl_uninitialized.h (__uninitialized_default_1<true>): | |
5532 | Construct the first value at *__first instead of on the stack. | |
5533 | (__uninitialized_default_n_1<true>): Likewise. | |
5534 | Improve comments on several of the non-standard algorithms. | |
5535 | * testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc: | |
5536 | New test. | |
5537 | * testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc: | |
5538 | New test. | |
5539 | * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc: | |
5540 | New test. | |
5541 | * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc: | |
5542 | New test. | |
5543 | * testsuite/23_containers/vector/cons/94540.cc: New test. | |
5544 | ||
5545 | 2020-06-17 Jonathan Wakely <jwakely@redhat.com> | |
5546 | ||
5547 | * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc: | |
5548 | Replace Value type with int so trivial code path is used. | |
5549 | * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: | |
5550 | Likewise. | |
5551 | ||
5552 | 2020-06-17 Jonathan Wakely <jwakely@redhat.com> | |
5553 | ||
5554 | * include/bits/stl_uninitialized.h (uninitialized_fill_n): Only | |
5555 | use std::fill_n when the size is an integral type. | |
5556 | (__uninitialized_default_n): Likewise. | |
5557 | * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc: | |
5558 | New test. | |
5559 | * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc: | |
5560 | New test. | |
5561 | * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: | |
5562 | New test. | |
5563 | ||
5564 | 2020-06-16 Jonathan Wakely <jwakely@redhat.com> | |
5565 | ||
5566 | PR libstdc++/95282 | |
5567 | * include/bits/atomic_base.h (__atomic_impl::load): Use the _Val | |
5568 | alias instead of deducing _Tp as an unqualified type. | |
5569 | (__atomic_impl::exchange): Use the _Val alias to remove volatile | |
5570 | from the reinterpret_cast result type. | |
5571 | ||
5572 | 2020-06-16 Jonathan Wakely <jwakely@redhat.com> | |
5573 | ||
5574 | * include/std/atomic (atomic): Add static assertions. | |
5575 | * testsuite/29_atomics/atomic/requirements/types_neg.cc: New test. | |
5576 | ||
5577 | 2020-06-16 Patrick Palka <ppalka@redhat.com> | |
5578 | ||
5579 | PR libstdc++/94003 | |
5580 | * testsuite/20_util/is_constructible/94003.cc: New test. | |
5581 | ||
5582 | 2020-06-15 Jonathan Wakely <jwakely@redhat.com> | |
5583 | ||
5584 | * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): | |
5585 | Update value for C++20. | |
5586 | * include/std/version (__cpp_lib_constexpr_char_traits): Likewise. | |
5587 | * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: | |
5588 | Update expected value. | |
5589 | * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: | |
5590 | Likewise. | |
5591 | ||
5592 | 2020-06-15 Paul Keir <paul.keir@uws.ac.uk> | |
5593 | ||
5594 | * include/bits/char_traits.h (char_traits::move): constexpr move with | |
5595 | overlap was using copy_backward incorrectly. | |
5596 | * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: | |
5597 | New test. | |
5598 | ||
5599 | 2020-06-12 Jonathan Wakely <jwakely@redhat.com> | |
5600 | ||
5601 | * testsuite/29_atomics/atomic_flag/clear/1.cc: Also test clear() | |
5602 | when the value is currently set. | |
5603 | * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: | |
5604 | Actually check the return value. | |
5605 | * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: | |
5606 | Likewise. | |
5607 | ||
5608 | 2020-06-12 Jonathan Wakely <jwakely@redhat.com> | |
5609 | ||
5610 | * include/bits/atomic_base.h (atomic_flag::test): Add missing | |
5611 | const qualifiers. | |
5612 | * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add | |
5613 | dg-options and verify results of test function. | |
5614 | * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise. | |
5615 | ||
5616 | 2020-06-11 Jonathan Wakely <jwakely@redhat.com> | |
5617 | ||
5618 | PR libstdc++/94749 | |
5619 | * include/bits/istream.tcc (basic_istream::ignore(streamsize, CharT)): | |
5620 | Only discard an extra character if we didn't already reach the | |
5621 | maximum number. | |
5622 | * src/c++98/istream.cc (istream::ignore(streamsiz, char)) | |
5623 | (wistream::ignore(streamsize, wchar_t)): Likewise. | |
5624 | * testsuite/27_io/basic_istream/ignore/char/94749.cc: New test. | |
5625 | * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc: New test. | |
5626 | ||
5627 | 2020-06-10 Patrick Palka <ppalka@redhat.com> | |
5628 | ||
5629 | PR libstdc++/95578 | |
5630 | * include/bits/ranges_algo.h (__lexicographical_compare_fn): | |
5631 | Also check that the iterator and sentinel have the same type before | |
5632 | applying the unwrapping optimization for __normal_iterator. | |
5633 | Split the check into two, one for the first iterator/sentinel | |
5634 | pair and another for second iterator/sentinel pair. Remove uses | |
5635 | of __niter_base, and remove uses of std::move on a | |
5636 | __normal_iterator. | |
5637 | * include/bits/ranges_algobase.h (__equal_fn): Likewise. | |
5638 | (__copy_or_move): Likewise. Perform similar adjustments for | |
5639 | the reverse_iterator and move_iterator optimizations. Inline | |
5640 | the checks into the if-constexprs, and use using-declarations to | |
5641 | make them less visually noisy. Remove uses of __niter_wrap. | |
5642 | (__copy_or_move_backward): Likewise. | |
5643 | * testsuite/25_algorithms/copy/95578.cc: New test. | |
5644 | * testsuite/25_algorithms/copy_backward/95578.cc: New test. | |
5645 | * testsuite/25_algorithms/equal/95578.cc: New test. | |
5646 | * testsuite/25_algorithms/lexicographical_compare/95578.cc: New test. | |
5647 | * testsuite/25_algorithms/move/95578.cc: New test. | |
5648 | * testsuite/25_algorithms/move_backward/95578.cc: New test. | |
5649 | ||
5650 | 2020-06-10 François Dumont <fdumont@gcc.gnu.org> | |
5651 | Jonathan Wakely <jwakely@redhat.com> | |
5652 | ||
5653 | * include/bits/deque.tcc (__lex_cmp_dit): New. | |
5654 | (__lexicographical_compare_aux1): Define overloads for deque | |
5655 | iterators. | |
5656 | * include/bits/stl_algobase.h (__lexicographical_compare::__3way): | |
5657 | New static member function. | |
5658 | (__lexicographical_compare<true>::__3way): Likewise. | |
5659 | (__lexicographical_compare<true>::__lc): Use __3way. | |
5660 | (__lexicographical_compare_aux): Rename to | |
5661 | __lexicographical_compare_aux1 and declare overloads for deque | |
5662 | iterators. | |
5663 | (__lexicographical_compare_aux): Define new forwarding function | |
5664 | that calls __lexicographical_compare_aux1 and declare new overloads | |
5665 | for safe iterators. | |
5666 | (lexicographical_compare): Do not use __niter_base on | |
5667 | parameters. | |
5668 | * include/debug/safe_iterator.tcc | |
5669 | (__lexicographical_compare_aux): Define overloads for safe | |
5670 | iterators. | |
5671 | * testsuite/25_algorithms/lexicographical_compare/1.cc: Add | |
5672 | checks with random access iterators. | |
5673 | * testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc: | |
5674 | New test. | |
5675 | ||
5676 | 2020-06-09 Jonathan Wakely <jwakely@redhat.com> | |
5677 | ||
5678 | * include/bits/stl_iterator.h (move_iterator::operator=): Define. | |
5679 | * testsuite/24_iterators/move_iterator/dr3265.cc: New test. | |
5680 | ||
5681 | 2020-06-09 Jonathan Wakely <jwakely@redhat.com> | |
5682 | ||
5683 | * include/std/optional (bad_optional_access): Define default | |
5684 | constructor and destructor as defaulted. | |
5685 | * testsuite/20_util/optional/bad_access.cc: New test. | |
5686 | ||
5687 | 2020-06-08 Jonathan Wakely <jwakely@redhat.com> | |
5688 | ||
5689 | * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error | |
5690 | line number. | |
5691 | * testsuite/20_util/default_delete/void_neg.cc: Likewise. | |
5692 | ||
5693 | 2020-06-08 Jonathan Wakely <jwakely@redhat.com> | |
5694 | ||
5695 | * include/bits/unique_ptr.h (operator<<): Define for C++20. | |
5696 | * testsuite/20_util/unique_ptr/io/lwg2948.cc: New test. | |
5697 | ||
5698 | 2020-06-04 Jonathan Wakely <jwakely@redhat.com> | |
5699 | ||
5700 | * include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref) | |
5701 | (__detail::__cat, __detail::__diff): Move to class scope in the | |
5702 | relevant __iterator_traits specializations. | |
5703 | (__iterator_traits<>): Use nested class templates instead of ones from | |
5704 | namespace __detail. | |
5705 | * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to | |
5706 | class scope in iterator_traits<common_iterator<I, S>>. | |
5707 | (iterator_traits<common_iterator<I, S>>): Use nested class template | |
5708 | instead of __detail::__common_iter_ptr. | |
5709 | ||
5710 | 2020-06-04 François Dumont <fdumont@gcc.gnu.org> | |
5711 | ||
5712 | * include/bits/stl_algo.h (__copy_n_a): Move to ... | |
5713 | * include/bits/stl_algobase.h (__copy_n_a): ...here. Add __strict | |
5714 | parameter. | |
5715 | (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)): | |
5716 | Declare. | |
5717 | (__niter_base(const _Safe_iterator<_Ite, _Seq, | |
5718 | random_access_iterator_tag>&)): Declare. | |
5719 | (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>, | |
5720 | _Deque_iterator<>)): Declare. | |
5721 | * include/bits/deque.tcc | |
5722 | (__copy_move_a2(istreambuf_iterator<>, istreambuf_iterator<>, | |
5723 | _Deque_iterator<>)): New. | |
5724 | (__copy_n_a(istreambuf_iterator<>, _Size, _Deque_iterator<>, bool)): | |
5725 | New. | |
5726 | * include/bits/streambuf_iterator.h | |
5727 | (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*, bool)): Adapt. | |
5728 | * include/debug/safe_iterator.tcc (__niter_base): New. | |
5729 | * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc | |
5730 | (test03): New. | |
5731 | * testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc: | |
5732 | New test. | |
5733 | * testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc: | |
5734 | New test. | |
5735 | * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc: New test. | |
5736 | * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc: | |
5737 | New test. | |
5738 | ||
5739 | 2020-06-04 Jonathan Wakely <jwakely@redhat.com> | |
5740 | ||
5741 | * include/bits/ranges_algobase.h (__copy_n_fn): Only call | |
5742 | ranges::copy for positive values. | |
5743 | * include/bits/stl_algo.h (copy_n): Convert Size argument to an | |
5744 | integral type and only call __copy_n for positive values. | |
5745 | * testsuite/util/testsuite_iterators.h | |
5746 | (random_access_iterator_wrapper::operator+=): Fix range check for | |
5747 | negative values. | |
5748 | (output_container, input_container, forward_container) | |
5749 | (bidirectional_container, random_access_container): New alias | |
5750 | templates. | |
5751 | * testsuite/25_algorithms/copy_n/5.cc: New test. | |
5752 | ||
5753 | 2020-06-02 Jonathan Wakely <jwakely@redhat.com> | |
5754 | ||
5755 | PR libstdc++/90102 | |
5756 | * include/debug/deque (deque(const _Base&)): Replace parameter | |
5757 | with a struct that wraps a const _Base&. | |
5758 | * include/debug/forward_list (forward_list(_Base_ref)): New | |
5759 | constructor. | |
5760 | * include/debug/list (list(const _Base&)): Replace parameter | |
5761 | with a struct that wraps a const _Base&. | |
5762 | * include/debug/map.h (map(const _Base&)): Likewise. | |
5763 | * include/debug/multimap.h (multimap(const _Base&)): Likewise. | |
5764 | * include/debug/multiset.h (multiset(const _Base&)): Likewise. | |
5765 | * include/debug/set.h (set(const _Base&)): Likewise. | |
5766 | * include/debug/unordered_map (unordered_map(const _Base&)) | |
5767 | (unordered_multimap(const _Base&)): Likewise. | |
5768 | * include/debug/unordered_set (unordered_set(const _Base&)) | |
5769 | (unordered_multiset(const _Base&)): Likewise. | |
5770 | * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: | |
5771 | Adjust dg-error line number. | |
5772 | * include/debug/vector (vector(const _Base&)): Likewise. | |
5773 | * testsuite/23_containers/deque/debug/90102.cc: New test. | |
5774 | * testsuite/23_containers/forward_list/debug/90102.cc: New test. | |
5775 | * testsuite/23_containers/list/debug/90102.cc: New test. | |
5776 | * testsuite/23_containers/map/debug/90102.cc: New test. | |
5777 | * testsuite/23_containers/multimap/debug/90102.cc: New test. | |
5778 | * testsuite/23_containers/multiset/debug/90102.cc: New test. | |
5779 | * testsuite/23_containers/set/debug/90102.cc: New test. | |
5780 | * testsuite/23_containers/unordered_map/debug/90102.cc: New test. | |
5781 | * testsuite/23_containers/unordered_multimap/debug/90102.cc: New test. | |
5782 | * testsuite/23_containers/unordered_multiset/debug/90102.cc: New test. | |
5783 | * testsuite/23_containers/unordered_set/debug/90102.cc: New test. | |
5784 | * testsuite/23_containers/vector/debug/90102.cc: New test. | |
5785 | ||
5786 | 2020-06-01 Jonathan Wakely <jwakely@redhat.com> | |
5787 | ||
5788 | PR libstdc++/95392 | |
5789 | * include/bits/fs_path.h (path::_S_to_string): Move to | |
5790 | namespace-scope and rename to ... | |
5791 | (__detail::__string_from_range): ... this. | |
5792 | [WINDOWS] (__detail::__wstr_from_utf8): New function template to | |
5793 | convert a char sequence containing UTF-8 to wstring. | |
5794 | (path::_S_convert(Iter, Iter)): Adjust call to _S_to_string. | |
5795 | (path::_S_convert_loc(Iter, Iter, const locale&)): Likewise. | |
5796 | (u8path(InputIterator, InputIterator)) [WINDOWS]: Use | |
5797 | __string_from_range to obtain a contiguous range and | |
5798 | __wstr_from_utf8 to obtain a wide string. | |
5799 | (u8path(const Source&)) [WINDOWS]: Use __effective_range to | |
5800 | obtain a contiguous range and __wstr_from_utf8 to obtain a wide | |
5801 | string. | |
5802 | (path::_S_convert(const _EcharT*, const _EcharT)) [WINDOWS]: | |
5803 | Use __wstr_from_utf8. | |
5804 | ||
5805 | 2020-06-01 Jonathan Wakely <jwakely@redhat.com> | |
5806 | ||
5807 | * testsuite/util/testsuite_iterators.h: | |
5808 | (input_iterator_wrapper::operator++(int)): Return proxy object. | |
5809 | ||
5810 | 2020-06-01 Jonathan Wakely <jwakely@redhat.com> | |
5811 | ||
5812 | * doc/xml/manual/evolution.xml: Document deprecation of | |
5813 | __is_nullptr_t and removal of std::allocator members. | |
5814 | * doc/html/manual/api.html: Regenerate. | |
5815 | ||
5816 | 2020-06-01 Jonathan Wakely <jwakely@redhat.com> | |
5817 | ||
5818 | * doc/xml/manual/containers.xml: Replace <xref> with <link>. | |
5819 | * doc/xml/manual/evolution.xml: Likewise. | |
5820 | * doc/html/manual/api.html: Regenerate. | |
5821 | * doc/html/manual/containers.html: Regenerate. | |
5822 | ||
5823 | 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com> | |
5824 | ||
5825 | * doc/xml/faq.xml: Adjust Valgrind reference and remove another. | |
5826 | * doc/html/faq.html: Regenerate. | |
5827 | ||
5828 | 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com> | |
5829 | ||
5830 | * doc/xml/manual/policy_data_structures_biblio.xml: Remove | |
5831 | stray change. | |
5832 | ||
5833 | 2020-06-01 Gerald Pfeifer <gerald@pfeifer.com> | |
5834 | ||
5835 | * doc/xml/manual/policy_data_structures_biblio.xml: Switch | |
5836 | www.cs.princeton.edu to https. | |
5837 | * doc/html/manual/policy_data_structures.html: Regenerate. | |
5838 | ||
5839 | 2020-05-31 Douglas B Rupp <douglas.b.rupp@gmail.com> | |
5840 | ||
5841 | * crossconfig.m4 (<*-vxworks>): Check for more math decls. | |
5842 | * configure: Rebuild. | |
5843 | ||
5844 | 2020-05-29 H.J. Lu <hjl.tools@gmail.com> | |
5845 | ||
5846 | PR bootstrap/95413 | |
5847 | * configure: Regenerated. | |
5848 | ||
5849 | 2020-05-29 François Dumont <fdumont@gcc.gnu.org> | |
5850 | ||
5851 | PR libstdc++/95079 | |
5852 | * include/bits/hashtable_policy.h (_Insert_base<>::try_emplace): New. | |
5853 | * include/bits/unordered_map.h (unordered_map<>::try_emplace): Adapt. | |
5854 | (unordered_map<>::insert_or_assign): Adapt. | |
5855 | ||
5856 | 2020-05-27 Jonathan Wakely <jwakely@redhat.com> | |
5857 | ||
5858 | PR libstdc++/95282 | |
5859 | * include/bits/atomic_base.h (__atomic_impl::load): Add | |
5860 | cv-qualifiers to parameter so that _Tp is deduced as the | |
5861 | unqualified type. | |
5862 | * testsuite/29_atomics/atomic_float/95282.cc: New test. | |
5863 | ||
5864 | 2020-05-27 Jonathan Wakely <jwakely@redhat.com> | |
5865 | ||
5866 | PR libstdc++/95322 | |
5867 | * include/std/ranges (transform_view::_Sentinel): Allow hidden | |
5868 | friends to work with _Iterator<true> and _Iterator<false>. | |
5869 | (join_view::_Sentinel): Likewise. | |
5870 | * testsuite/std/ranges/adaptors/95322.cc: New test. | |
5871 | ||
5872 | 2020-05-27 Jonathan Wakely <jwakely@redhat.com> | |
5873 | ||
5874 | PR libstdc++/94354 | |
5875 | * include/bits/stl_iterator.h (reverse_iterator): Fix comparison | |
5876 | operators to use the correct operations on the underlying | |
5877 | iterators. | |
5878 | * testsuite/24_iterators/reverse_iterator/rel_ops.cc: New test. | |
5879 | ||
5880 | 2020-05-27 Jonathan Wakely <jwakely@redhat.com> | |
5881 | ||
5882 | * testsuite/18_support/comparisons/categories/zero_neg.cc: New test. | |
5883 | ||
5884 | 2020-05-26 Patrick Palka <ppalka@redhat.com> | |
5885 | ||
5886 | PR libstdc++/95322 | |
5887 | * include/bits/stl_iterator.h (__detail::_Common_iter_proxy): | |
5888 | Remove and instead define it ... | |
5889 | (common_iterator::_Proxy): ... here. | |
5890 | (common_iterator::operator->): Use it. | |
5891 | * testsuite/24_iterators/common_iterator/2.cc: New test. | |
5892 | * testsuite/std/ranges/adaptors/95322.cc: New test. | |
5893 | ||
5894 | 2020-05-23 Patrick Palka <ppalka@redhat.com> | |
5895 | ||
5896 | PR libstdc++/93978 | |
5897 | * testsuite/std/ranges/adaptors/93978.cc: Add -Wall to | |
5898 | dg-additional-options. Avoid unused-but-set-variable warning. | |
5899 | ||
5900 | 2020-05-23 Jonathan Wakely <jwakely@redhat.com> | |
5901 | ||
5902 | PR libstdc++/95289 | |
5903 | * include/debug/helper_functions.h (__get_distance): Only declare | |
5904 | as a constexpr function for C++14 and up. | |
5905 | * testsuite/25_algorithms/copy/debug/95289.cc: New test. | |
5906 | ||
5907 | * include/bits/fs_path.h (__detail::_S_range_begin) | |
5908 | (__detail::_S_range_end, path::_S_string_from_iter): Replace with | |
5909 | overloaded function template __detail::__effective_range. | |
5910 | (__detail::__effective_range): New overloaded function template to | |
5911 | create a basic_string or basic_string_view for an effective range. | |
5912 | (__detail::__value_type_is_char): Use __detail::__effective_range. | |
5913 | Do not use remove_const on value type. | |
5914 | (__detail::__value_type_is_char_or_char8_t): Likewise. | |
5915 | (path::path(const Source&, format)) | |
5916 | (path::path(const Source&, const locale&)) | |
5917 | (path::operator/=(const Source&), path::append(const Source&)) | |
5918 | (path::concat(const Source&)): Use __detail::__effective_range. | |
5919 | (path::_S_to_string(InputIterator, InputIterator)): New function | |
5920 | template to create a string view if possible, or string otherwise. | |
5921 | (path::_S_convert): Add overloads that convert a string returned | |
5922 | by __detail::__effective_range. Use if-constexpr to inline conversion | |
5923 | logic from all overloads of _Cvt::_S_convert. | |
5924 | (path::_S_convert_loc): Add overload that converts a string. Use | |
5925 | _S_to_string to avoid allocation when possible. | |
5926 | (path::_Cvt): Remove. | |
5927 | (path::operator+=(CharT)): Remove indirection through path::concat. | |
5928 | * include/experimental/bits/fs_path.h (path::_S_convert_loc): Add | |
5929 | overload for non-const pointers, to avoid constructing a std::string. | |
5930 | * src/c++17/fs_path.cc (path::_S_convert_loc): Replace conditional | |
5931 | compilation with call to _S_convert. | |
5932 | ||
5933 | * include/bits/fs_path.h (__detail::_S_range_begin) | |
5934 | (__detail::_S_range_end): Remove unintentional static specifiers. | |
5935 | * include/experimental/bits/fs_path.h (__detail::_S_range_begin) | |
5936 | (__detail::_S_range_end): Likewise. | |
5937 | ||
5938 | * include/bits/fs_path.h (filesystem::__detail::__is_encoded_char): | |
5939 | Replace alias template with variable template. Don't remove const. | |
5940 | (filesystem::__detail::__is_path_src): Replace overloaded function | |
5941 | template with variable template and specializations. | |
5942 | (filesystem::__detail::__is_path_iter_src): Replace alias template | |
5943 | with class template. | |
5944 | (filesystem::__detail::_Path): Use __is_path_src. Remove support for | |
5945 | iterator pairs. | |
5946 | (filesystem::__detail::_Path2): New alias template for checking | |
5947 | InputIterator requirements. | |
5948 | (filesystem::__detail::__constructible_from): Remove. | |
5949 | (filesystem::path): Replace _Path<Iter, Iter> with _Path2<Iter>. | |
5950 | * testsuite/27_io/filesystem/path/construct/80762.cc: Check with two | |
5951 | constructor arguments of void and void* types. | |
5952 | ||
5953 | 2020-05-21 Matthias Kretz <kretz@kde.org> | |
5954 | ||
5955 | * testsuite/Makefile.am: Remove dup target_triplet and set tool, | |
5956 | allowing runtest to work without arguments. | |
5957 | * testsuite/Makefile.in: Regenerate. | |
5958 | ||
5959 | 2020-05-21 Jonathan Wakely <jwakely@redhat.com> | |
5960 | ||
5961 | PR libstdc++/93983 | |
5962 | * include/bits/iterator_concepts.h (__detail::__cpp17_iterator): | |
5963 | Reorder constraints to avoid recursion when constructors use | |
5964 | iterator_traits (LWG 3420). | |
5965 | * testsuite/24_iterators/customization_points/lwg3420.cc: New test. | |
5966 | ||
5967 | * include/experimental/socket (basic_socket::is_open() | |
5968 | (basic_socket_acceptor::is_open()): Use _GLIBCXX_NODISCARD macro. | |
5969 | ||
5970 | * include/experimental/bits/net.h (__endpoint, __protocol) | |
5971 | (__acceptable_protocol, __inet_protocol): New concepts. | |
5972 | (__detail::__is_endpoint): Move trait from <experimental/socket>. | |
5973 | (__is_protocol, __is_acceptable_protocol, __is_inet_protocol): New | |
5974 | traits. | |
5975 | (__endpoint, __protocol, __acceptable_protocol): New variable | |
5976 | templates. | |
5977 | * include/experimental/socket (__is_endpoint): Move to net.h header. | |
5978 | (basic_socket, basic_socket_acceptor): Check requirements. | |
5979 | ||
5980 | * include/experimental/executor (use_future_t::use_future_t()): Fix | |
5981 | incorrect noexcept-specifier. | |
5982 | * include/experimental/internet (basic_resolver_results): Adjust | |
5983 | whitespace. | |
5984 | * include/experimental/socket (__basic_socket_impl::release): Add | |
5985 | member function. | |
5986 | (basic_socket(io_context&, const endpoint_type&)): Fix argument to | |
5987 | target constructor. | |
5988 | (basic_socket::release(), basic_socket::release(error_code&)): Add | |
5989 | missing member functions. | |
5990 | (basic_socket::is_open()): Add nodiscard attribute. | |
5991 | (basic_socket::close(error_code&)): Pass argument to base function. | |
5992 | (basic_socket_acceptor::release()) | |
5993 | (basic_socket_acceptor::release(error_code&)): Add missing member | |
5994 | functions. | |
5995 | (basic_socket_acceptor::is_open()): Add nodiscard attribute. | |
5996 | (basic_socket_streambuf::error()): Add noexcept. | |
5997 | (basic_socket_iostream::error()): Likewise. | |
5998 | * testsuite/experimental/net/socket/basic_socket.cc: New test. | |
5999 | ||
6000 | * include/experimental/buffer: Replace typedefs with | |
6001 | alias-declarations. | |
6002 | * include/experimental/executor: Likewise. | |
6003 | * include/experimental/internet: Likewise. | |
6004 | * include/experimental/socket: Likewise. | |
6005 | * include/experimental/timer: Likewise. | |
6006 | ||
6007 | 2020-05-19 Jonathan Wakely <jwakely@redhat.com> | |
6008 | ||
6009 | PR libstdc++/94087 | |
6010 | * src/c++11/random.cc (__x86_rdseed): Allow fallback function to be | |
6011 | passed in. | |
6012 | (__x86_rdseed_rdrand): New function that uses rdseed with rdrand | |
6013 | fallback. | |
6014 | (random_device::_M_init): Use __x86_rdseed_rdrand when both | |
6015 | instructions are available. | |
6016 | * testsuite/26_numerics/random/random_device/94087.cc: New test. | |
6017 | ||
6018 | 2020-05-19 Patrick Palka <ppalka@redhat.com> | |
6019 | ||
6020 | PR c++/66439 | |
6021 | * testsuite/20_util/pair/astuple/get_neg.cc: Prune "type/value | |
6022 | mismatch" messages. | |
6023 | * testsuite/20_util/tuple/element_access/get_neg.cc: Likewise. | |
6024 | ||
6025 | 2020-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
6026 | ||
6027 | PR bootstrap/95147 | |
6028 | * configure: Regenerated. | |
6029 | ||
6030 | 2020-05-14 H.J. Lu <hongjiu.lu@intel.com> | |
6031 | ||
6032 | * configure: Regenerated. | |
6033 | ||
6034 | 2020-05-13 Alexandre Oliva <oliva@adacore.com> | |
6035 | ||
6036 | PR libstdc++/77691 | |
6037 | * include/experimental/memory_resource | |
6038 | (__resource_adaptor_imp::do_allocate): Handle max_align_t on | |
6039 | x86-vxworks as on x86-solaris. | |
6040 | (__resource_adaptor_imp::do_deallocate): Likewise. | |
6041 | * testsuite/experimental/memory_resource/new_delete_resource.cc: | |
6042 | Drop xfail. | |
6043 | (BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris. | |
6044 | (test03): Drop max-align test for char-aligned alloc. | |
6045 | ||
6046 | 2020-05-08 Ulrich Drepper <drepper@redhat.com> | |
6047 | ||
6048 | * include/bits/atomic_base.h (atomic_flag): Implement test member | |
6049 | function. | |
6050 | * include/std/version: Define __cpp_lib_atomic_flag_test. | |
6051 | * testsuite/29_atomics/atomic_flag/test/explicit.cc: New file. | |
6052 | * testsuite/29_atomics/atomic_flag/test/implicit.cc: New file. | |
6053 | ||
6054 | 2020-05-07 Jonathan Wakely <jwakely@redhat.com> | |
6055 | ||
6056 | PR libstdc++/94971 (partial) | |
6057 | * include/bits/ranges_algo.h (ranges::__sample_fn): Qualify | |
6058 | std::sample using macro to work in parallel mode. | |
6059 | (__sort_fn): Likewise for std::sort. | |
6060 | (ranges::__nth_element_fn): Likewise for std::nth_element. | |
6061 | * include/bits/stl_algobase.h (lexicographical_compare_three_way): | |
6062 | Likewise for std::__min_cmp. | |
6063 | * include/parallel/algobase.h (lexicographical_compare_three_way): | |
6064 | Add to namespace std::__parallel. | |
6065 | ||
6066 | PR c/92472 | |
6067 | * include/parallel/multiway_merge.h (_GuardedIterator::operator*) | |
6068 | (_GuardedIterator::operator _RAIter, _UnguardedIterator::operator*) | |
6069 | (_UnguardedIterator::operator _RAIter): Add const qualifier. | |
6070 | (operator<(_GuardedIterator&, _GuardedIterator&) | |
6071 | (operator<=(_GuardedIterator&, _GuardedIterator&) | |
6072 | (operator<(_UnguardedIterator&, _UnguardedIterator&) | |
6073 | (operator<=(_UnguardedIterator&, _UnguardedIterator&): Change | |
6074 | parameters to const references. | |
6075 | ||
6076 | 2020-05-07 Eric Botcazou <ebotcazou@adacore.com> | |
6077 | ||
6078 | * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update. | |
6079 | * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise. | |
6080 | ||
6081 | 2020-05-06 François Dumont <fdumont@gcc.gnu.org> | |
6082 | ||
6083 | * include/bits/stl_algobase.h (struct _Bit_iterator): New declaration. | |
6084 | (std::__fill_a1(_Bit_iterator, _Bit_iterator, const bool&)): Likewise. | |
6085 | * include/bits/stl_bvector.h (__fill_bvector): Move outside | |
6086 | _GLIBCXX_STD_C namespace. | |
6087 | (fill(_Bit_iterator, _Bit_iterator, const bool&)): Likewise and rename | |
6088 | into... | |
6089 | (__fill_a1): ...this. | |
6090 | * testsuite/25_algorithms/fill/bvector/1.cc: New. | |
6091 | ||
6092 | 2020-05-06 H.J. Lu <hongjiu.lu@intel.com> | |
6093 | ||
6094 | * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. | |
6095 | ||
6096 | 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
6097 | ||
6098 | * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. | |
6099 | * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: | |
6100 | Likewise. | |
6101 | * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. | |
6102 | * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: | |
6103 | Likewise. | |
6104 | ||
6105 | 2020-05-06 Martin Liska <mliska@suse.cz> | |
6106 | ||
6107 | Revert: | |
6108 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
6109 | PR c/92472 | |
6110 | * include/parallel/multiway_merge.h: | |
6111 | Use const for _Compare template argument. | |
6112 | ||
6113 | 2020-05-06 Jonathan Wakely <jwakely@redhat.com> | |
6114 | ||
6115 | * doc/xml/manual/abi.xml (abi.versioning.history): Document library | |
6116 | versions for GCC 9.[123] and 10.1 releases. | |
6117 | * doc/html/*: Regenerate. | |
6118 | ||
6119 | 2020-05-06 Jakub Jelinek <jakub@redhat.com> | |
6120 | ||
6121 | * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. | |
6122 | * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. | |
6123 | * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. | |
6124 | * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. | |
6125 | * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. | |
6126 | * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. | |
6127 | * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. | |
6128 | ||
6129 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
6130 | ||
6131 | PR c/92472 | |
6132 | * include/parallel/multiway_merge.h: | |
6133 | Use const for _Compare template argument. | |
6134 | ||
6135 | 2020-05-04 Fangrui Song <maskray@google.com> | |
6136 | ||
6137 | * libsupc++/cxxabi.h (__cxa_finalize): Fix return type. | |
6138 | ||
6139 | 2020-05-04 Jonathan Wakely <jwakely@redhat.com> | |
6140 | ||
6141 | * doc/xml/faq.xml: Use working link for SGI STL FAQ. | |
6142 | * doc/html/*: Regenerate. | |
6143 | ||
6144 | PR libstdc++/94906 | |
6145 | * src/c++17/memory_resource.cc | |
6146 | (monotonic_buffer_resource::_Chunk::release): Use size_t for shift | |
6147 | operands. | |
6148 | ||
6149 | 2020-05-04 Nathan Sidwell <nathan@acm.org> | |
6150 | ||
6151 | PR libstdc++/94747 | |
6152 | * libsupc++/dyncast.cc (__dynamic_cast): Cast offsetof to | |
6153 | ptrdiff_t before negation, to show intent more clearly. | |
6154 | ||
6155 | 2020-05-04 Jonathan Wakely <jwakely@redhat.com> | |
6156 | ||
6157 | PR libstdc++/94936 | |
6158 | * src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools): | |
6159 | Add comment about single-threaded behaviour. | |
6160 | (synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist | |
6161 | class member access out of loop. | |
6162 | (synchronized_pool_resource::synchronized_pool_resource()) | |
6163 | (synchronized_pool_resource::~synchronized_pool_resource()) | |
6164 | (synchronized_pool_resource::release()): Check __gthread_active_p | |
6165 | before creating and/or deleting the thread-specific data key. | |
6166 | (synchronized_pool_resource::_M_thread_specific_pools()): Adjust | |
6167 | assertions. | |
6168 | (synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast | |
6169 | path for single-threaded case. | |
6170 | (synchronized_pool_resource::do_deallocate(void*, size_t, size_t)): | |
6171 | Likewise. Return if unable to find a pool that owns the allocation. | |
6172 | * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: | |
6173 | New test. | |
6174 | * testsuite/20_util/synchronized_pool_resource/cons_single.cc: New | |
6175 | test. | |
6176 | * testsuite/20_util/synchronized_pool_resource/release_single.cc: New | |
6177 | test. | |
6178 | ||
6179 | 2020-05-03 Jonathan Wakely <jwakely@redhat.com> | |
6180 | ||
6181 | PR libstdc++/94933 | |
6182 | * include/bits/stl_algobase.h (__fill_a1): Make overload for byte types | |
6183 | usable in constant expressions. | |
6184 | * testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and | |
6185 | non-scalars. | |
6186 | ||
6187 | 2020-05-01 Jonathan Wakely <jwakely@redhat.com> | |
6188 | ||
6189 | PR libstdc++/94901 | |
6190 | * testsuite/17_intro/badnames.cc: Test values between _E9 and _E24 too. | |
6191 | ||
6192 | 2020-05-01 Jonathan Wakely <jwakely@redhat.com> | |
6193 | Patrick Palka <ppalka@redhat.com> | |
6194 | ||
6195 | PR libstdc++/92894 | |
6196 | * include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove): | |
6197 | Add trait to determine return type and an alias for it. | |
6198 | (ranges::__cust_imove::_IMove::operator()): Use __result instead of | |
6199 | deduced return type. | |
6200 | (iter_rvalue_reference_t): Use _IMove::__type instead of checking | |
6201 | the result of ranges::iter_move. | |
6202 | (__detail::__indirectly_readable_impl): Use iter_rvalue_reference_t | |
6203 | instead of checking the result of ranges::iter_move. | |
6204 | * testsuite/24_iterators/customization_points/92894.cc: New test. | |
6205 | * testsuite/24_iterators/indirect_callable/92894.cc: New test. | |
6206 | ||
6207 | 2020-05-01 Jonathan Wakely <jwakely@redhat.com> | |
6208 | ||
6209 | PR libstdc++/94901 | |
6210 | * include/std/type_traits (__is_complete_or_unbounded): Replace | |
6211 | BADNAME _T with _Tp. | |
6212 | * testsuite/17_intro/badnames.cc: New test. | |
6213 | ||
6214 | 2020-04-30 Jonathan Wakely <jwakely@redhat.com> | |
6215 | ||
6216 | PR libstdc++/89510 | |
6217 | * include/bits/alloc_traits.h (allocator_traits::_S_construct) | |
6218 | (allocator_traits::_S_destroy) | |
6219 | (allocator_traits<allocator<T>>::construct): Use traits in | |
6220 | noexcept-specifiers. | |
6221 | * include/bits/allocator.h (allocator<void>::construct) | |
6222 | (allocator<void>::destroy): Likewise. | |
6223 | * include/ext/malloc_allocator.h (malloc_allocator::construct) | |
6224 | (malloc_allocator::destroy): Likewise. | |
6225 | * include/ext/new_allocator.h (new_allocator::construct) | |
6226 | (new_allocator::destroy): Likewise. | |
6227 | * testsuite/20_util/allocator/89510.cc: New test. | |
6228 | * testsuite/ext/malloc_allocator/89510.cc: New test. | |
6229 | * testsuite/ext/new_allocator/89510.cc: New test. | |
6230 | ||
6231 | 2020-04-29 Jonathan Wakely <jwakely@redhat.com> | |
6232 | ||
6233 | PR libstdc++/94854 | |
6234 | * include/bits/basic_string.tcc: Update comment about explicit | |
6235 | instantiations. | |
6236 | ||
6237 | 2020-04-28 Jonathan Wakely <jwakely@redhat.com> | |
6238 | ||
6239 | PR libstdc++/91480 | |
6240 | * include/bits/allocator.h (__cpp_lib_allocator_is_always_equal): | |
6241 | Remove non-standard macro. | |
6242 | * include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define | |
6243 | to indicate P1032R1 support. | |
6244 | * include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise. | |
6245 | * include/std/string_view (__cpp_lib_constexpr_string_view): Likewise. | |
6246 | * include/std/tuple (__cpp_lib_constexpr_tuple): Likewise. | |
6247 | * include/std/version (__cpp_lib_allocator_is_always_equal): Remove. | |
6248 | (__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view) | |
6249 | (__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define. | |
6250 | * testsuite/20_util/function_objects/constexpr_searcher.cc: Check | |
6251 | feature test macro. | |
6252 | * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise. | |
6253 | * testsuite/21_strings/basic_string_view/operations/copy/char/ | |
6254 | constexpr.cc: Likewise. | |
6255 | * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise. | |
6256 | ||
6257 | PR libstdc++/94831 | |
6258 | * include/bits/alloc_traits.h (_S_construct): Restore placement | |
6259 | new-expression for C++11/14/17 and call std::construct_at directly | |
6260 | for C++20. | |
6261 | * include/bits/stl_construct.h (_Construct): Revert to non-constexpr | |
6262 | function returning void. | |
6263 | * testsuite/20_util/specialized_algorithms/ | |
6264 | uninitialized_value_construct/94831.cc: New test. | |
6265 | * testsuite/23_containers/vector/cons/94831.cc: New test. | |
6266 | ||
6267 | 2020-04-28 Patrick Palka <ppalka@redhat.com> | |
6268 | ||
6269 | LWG 3433 subrange::advance(n) has UB when n < 0 | |
6270 | * include/std/ranges (subrange::prev): Fix typo. | |
6271 | (subrange::advance): Handle a negative argument as per the proposed | |
6272 | resolution of LWG 3433. | |
6273 | * testsuite/std/ranges/subrange/lwg3433.cc: New test. | |
6274 | ||
6275 | 2020-04-28 Jonathan Wakely <jwakely@redhat.com> | |
6276 | Iain Sandoe <iain@sandoe.co.uk> | |
6277 | ||
6278 | PR c++/94759 | |
6279 | * include/std/coroutine: Implement handing for non- | |
6280 | class coroutine return types. | |
6281 | ||
6282 | 2020-04-24 Jonathan Wakely <jwakely@redhat.com> | |
6283 | ||
6284 | * include/experimental/executor (service_already_exists): Make default | |
6285 | constructor public (LWG 3414). | |
6286 | * testsuite/experimental/net/execution_context/make_service.cc: Check | |
6287 | the service_already_exists can be default constructed. | |
6288 | ||
6289 | 2020-04-24 Kamlesh Kumar <kamleshbhalui@gmail.com> | |
6290 | Jonathan Wakely <jwakely@redhat.com> | |
6291 | ||
6292 | PR libstdc++/90415 | |
6293 | PR libstdc++/92156 | |
6294 | * include/std/any (any): Rename template parameters for consistency | |
6295 | with the standard. | |
6296 | (any::_Decay): Rename to _Decay_if_not_any. | |
6297 | (any::any(T&&):: Remove is_constructible from constraints. Remove | |
6298 | non-standard overload. | |
6299 | (any::any(in_place_type_t<T>, Args&&...)) | |
6300 | (any::any(in_place_type_t<T>, initializer_list<U>, Args&&...)) | |
6301 | (any::emplace(Args&&...)) | |
6302 | (any::emplace(initializer_list<U>, Args&&...)): | |
6303 | Use decay_t instead of _Decay. | |
6304 | * testsuite/20_util/any/cons/90415.cc: New test. | |
6305 | * testsuite/20_util/any/cons/92156.cc: New Test. | |
6306 | * testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives | |
6307 | more robust. | |
6308 | * testsuite/20_util/any/modifiers/92156.cc: New test. | |
6309 | ||
6310 | 2020-04-23 Jonathan Wakely <jwakely@redhat.com> | |
6311 | ||
6312 | * doc/xml/manual/status_cxx2020.xml: Update C++20 status table. | |
6313 | * doc/html/*: Regenerate. | |
6314 | ||
6315 | * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert | |
6316 | value for C++17 to 201803L because P0858R0 is supported for C++17. | |
6317 | * include/std/version (__cpp_lib_array_constexpr): Likewise. | |
6318 | * testsuite/23_containers/array/element_access/constexpr_c++17.cc: | |
6319 | Check for value corresponding to P0031R0 features being tested. | |
6320 | * testsuite/23_containers/array/requirements/constexpr_iter.cc: | |
6321 | Check for value corresponding to P0858R0 features being tested. | |
6322 | ||
6323 | * include/std/version (__cpp_lib_three_way_comparison): Define for | |
6324 | freestanding builds. | |
6325 | ||
6326 | 2020-04-23 Thomas Rodgers <rodgert@appliantology.com> | |
6327 | ||
6328 | * include/experimental/net/executor (system_context): Mark | |
6329 | system_context::system_context() = delete. | |
6330 | * testsuite/experimental/net/executor/1.cc: Add new | |
6331 | test to check system_context is not default constructible. | |
6332 | ||
6333 | 2020-04-23 Iain Sandoe <iain@sandoe.co.uk> | |
6334 | ||
6335 | * include/std/coroutine: Update the inline namespace to __n4861. | |
6336 | Add the __cpp_lib_coroutine define, set to 201902L. | |
6337 | * include/std/version: Add __cpp_lib_coroutine, set to 201902L. | |
6338 | ||
6339 | 2020-04-22 Jonathan Wakely <jwakely@redhat.com> | |
6340 | ||
6341 | * include/std/execution (__cpp_lib_execution): Define to indicate | |
6342 | support for P0024R2 and P1001R2. | |
6343 | * include/std/version (__cpp_lib_execution): Define. | |
6344 | * testsuite/25_algorithms/pstl/feature_test.cc: Only test macro | |
6345 | defined by <algorithm>, move other tests to new tests ... | |
6346 | * testsuite/25_algorithms/pstl/feature_test-2.cc: New test. | |
6347 | * testsuite/25_algorithms/pstl/feature_test-3.cc: New test. | |
6348 | * testsuite/25_algorithms/pstl/feature_test-4.cc: New test. | |
6349 | * testsuite/25_algorithms/pstl/feature_test-5.cc: New test. | |
6350 | ||
6351 | * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define | |
6352 | different values for C++17 and C++20, to indicate different feature | |
6353 | sets. Update value for C++20 to indicate P1032R1 support. | |
6354 | * include/std/version (__cpp_lib_array_constexpr): Likewise. | |
6355 | * testsuite/23_containers/array/comparison_operators/constexpr.cc: | |
6356 | Check feature test macro. | |
6357 | * testsuite/23_containers/array/element_access/constexpr_c++17.cc: | |
6358 | New test. | |
6359 | * testsuite/23_containers/array/requirements/constexpr_fill.cc: Check | |
6360 | feature test macro. | |
6361 | * testsuite/23_containers/array/requirements/constexpr_iter.cc: Test | |
6362 | in C++17 mode and check feature test macro. | |
6363 | ||
6364 | * include/std/utility (__cpp_lib_constexpr_algorithms): Do not define | |
6365 | here. | |
6366 | * testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be | |
6367 | defined by <utility>. | |
6368 | ||
6369 | * include/std/functional (__cpp_lib_concepts): Update macro value to | |
6370 | indicate P1964R2 support. | |
6371 | * include/std/version (__cpp_lib_concepts): Likewise. | |
6372 | * testsuite/std/concepts/1.cc: Adjust expected value. | |
6373 | * testsuite/std/concepts/2.cc: Likewise. | |
6374 | ||
6375 | * include/std/functional (__cpp_lib_constexpr_invoke): Rename to | |
6376 | __cpp_lib_constexpr_functional. | |
6377 | * include/std/version (__cpp_lib_constexpr_invoke): Likewise. | |
6378 | * testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust. | |
6379 | ||
6380 | * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to | |
6381 | indicate P1006R1 support. | |
6382 | (__cpp_lib_to_address): Define to indicate P0653R2 support. | |
6383 | * include/bits/range_access.h (__cpp_lib_ssize): Define to indicate | |
6384 | P1227R2 support. | |
6385 | * include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate | |
6386 | P0769R2 support. | |
6387 | * include/std/atomic (__cpp_lib_atomic_float): Define to indicate | |
6388 | P0020R6 support. | |
6389 | * include/std/memory (__cpp_lib_assume_aligned): Define to indicate | |
6390 | P1007R3 support. | |
6391 | * include/std/memory_resource (__cpp_lib_polymorphic_allocator): | |
6392 | Define to indicate P0339R6 support. | |
6393 | * include/std/string_view (__cpp_lib_starts_ends_with): Define to | |
6394 | indicate P0457R2 support. | |
6395 | * include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define | |
6396 | to indicate P0758R1 support. | |
6397 | (__cpp_lib_remove_cvref): Define to indicate P0550R2 support. | |
6398 | (__cpp_lib_type_identity): Define to indicate P0887R1 support. | |
6399 | * include/std/version (__cpp_lib_atomic_float) | |
6400 | (__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref) | |
6401 | (__cpp_lib_type_identity, __cpp_lib_assume_aligned) | |
6402 | (__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator) | |
6403 | (__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with) | |
6404 | (__cpp_lib_to_address): Define. | |
6405 | * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number. | |
6406 | ||
6407 | * include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old | |
6408 | macro. | |
6409 | * include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion): | |
6410 | Likewise. | |
6411 | * include/std/version (__cpp_lib_map_insertion) | |
6412 | (__cpp_lib_unordered_map_insertion): Remove. | |
6413 | ||
6414 | * include/std/condition_variable (__cpp_lib_jthread): Remove | |
6415 | redundant definition. | |
6416 | * include/std/stop_token (__cpp_lib_jthread): Update macro value to | |
6417 | indicate P1869R1 support. | |
6418 | * include/std/version (__cpp_lib_jthread): Update value. | |
6419 | * testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check | |
6420 | for updated macro value. | |
6421 | * testsuite/30_threads/condition_variable_any/stop_token/2.cc: | |
6422 | Likewise. | |
6423 | * testsuite/30_threads/jthread/1.cc: Likewise. | |
6424 | * testsuite/30_threads/jthread/2.cc: Likewise. | |
6425 | * testsuite/30_threads/stop_token/1.cc: Likewise. | |
6426 | * testsuite/30_threads/stop_token/2.cc: Likewise. | |
6427 | ||
6428 | * testsuite/21_strings/basic_string/erasure.cc: Check for | |
6429 | __cpp_lib_erase_if macro. | |
6430 | * testsuite/23_containers/deque/erasure.cc: Add header name to #error | |
6431 | messages. | |
6432 | * testsuite/23_containers/forward_list/erasure.cc: Likewise. | |
6433 | * testsuite/23_containers/list/erasure.cc: Likewise. | |
6434 | * testsuite/23_containers/map/erasure.cc: Likewise. | |
6435 | * testsuite/23_containers/set/erasure.cc: Likewise. | |
6436 | * testsuite/23_containers/unordered_map/erasure.cc: Likewise. | |
6437 | * testsuite/23_containers/unordered_set/erasure.cc: Likewise. | |
6438 | * testsuite/23_containers/vector/erasure.cc: Likewise. | |
6439 | ||
6440 | 2020-04-21 Jonathan Wakely <jwakely@redhat.com> | |
6441 | ||
6442 | * include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way | |
6443 | to define operator<=>. | |
6444 | * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test. | |
6445 | ||
6446 | * doc/Makefile.am (xml_sources_manual): Add missing XML files. | |
6447 | * doc/Makefile.in: Regenerate. | |
6448 | * doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead | |
6449 | of "this page". | |
6450 | * doc/xml/manual/status_cxx2011.xml: Formatting and other corrections | |
6451 | to the C++11 status table. | |
6452 | * doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature | |
6453 | proposals with table matching contents of the C++14 standard. | |
6454 | * doc/xml/manual/status_cxx2017.xml: Add table matching contents of | |
6455 | the C++17 standard. | |
6456 | * doc/html/*: Regenerate. | |
6457 | ||
6458 | PR c++/94149 | |
6459 | * include/std/type_traits (__is_nt_constructible_impl): Add partial | |
6460 | specializations for bounded arrays with non-empty initializers. | |
6461 | * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test. | |
6462 | ||
6463 | 2020-04-20 Thomas Rodgers <trodgers@redhat.com> | |
6464 | ||
6465 | * testsuite/lib/libstdc++.exp: Add additional_flags= | |
6466 | -DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when | |
6467 | compiling with a newer Thread Building Blocks. | |
6468 | ||
6469 | 2020-04-20 Jonathan Wakely <jwakely@redhat.com> | |
6470 | ||
6471 | * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test. | |
6472 | ||
6473 | * testsuite/20_util/is_constructible/51185.cc: Make test class a | |
6474 | non-aggregate so that the test verifies the same thing in all -std | |
6475 | modes. | |
6476 | * testsuite/20_util/is_constructible/value-2.cc: Adjust expected | |
6477 | results for some types when paren-init for aggregates is supported. | |
6478 | ||
6479 | * include/std/version (__cpp_lib_three_way_comparison): Update value. | |
6480 | * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise. | |
6481 | (__detail::__synth3way): Add noexcept-specifier. | |
6482 | ||
6483 | * include/bits/stl_map.h (map): Define operator<=> and remove | |
6484 | operator< for C++20. | |
6485 | * include/bits/stl_multimap.h (multimap): Likewise. | |
6486 | * include/bits/stl_multiset.h (multiset): Likewise. | |
6487 | * include/bits/stl_set.h (set): Likewise. | |
6488 | * include/bits/stl_tree.h (_Rb_tree): Likewise. | |
6489 | (_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant | |
6490 | operator!= for C++20. | |
6491 | * include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20. | |
6492 | * include/debug/multimap.h (__gnu_debug::multimap): Likewise. | |
6493 | * include/debug/multiset.h (__gnu_debug::multiset): Likewise. | |
6494 | * include/debug/set.h (__gnu_debug::set): Likewise. | |
6495 | * testsuite/23_containers/map/operators/cmp_c++20.cc: New test. | |
6496 | * testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test. | |
6497 | * testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test. | |
6498 | * testsuite/23_containers/set/operators/cmp_c++20.cc: New test. | |
6499 | ||
6500 | 2020-04-20 Matthias Kretz <kretz@kde.org> | |
6501 | ||
6502 | * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose. | |
6503 | ||
6504 | 2020-04-19 Jonathan Wakely <jwakely@redhat.com> | |
6505 | ||
6506 | * include/bits/stl_queue.h (queue): Define operator<=> for C++20. | |
6507 | * include/bits/stl_stack.h (stack): Likewise. | |
6508 | * testsuite/23_containers/queue/cmp_c++20.cc: New test. | |
6509 | * testsuite/23_containers/stack/cmp_c++20.cc: New test. | |
6510 | ||
6511 | * include/bits/unordered_map.h (unordered_map, unordered_multimap): | |
6512 | Remove redundant operator!= for C++20. | |
6513 | * include/bits/unordered_set.h (unordered_set, unordered_multiset): | |
6514 | Likewise. | |
6515 | * include/debug/unordered_map (unordered_map, unordered_multimap): | |
6516 | Likewise. | |
6517 | * include/debug/unordered_set (unordered_set, unordered_multiset): | |
6518 | Likewise. | |
6519 | ||
6520 | PR other/94629 | |
6521 | * include/debug/formatter.h (_Error_formatter::_Parameter): Fix | |
6522 | redundant assignment in constructor. | |
6523 | ||
6524 | 2020-04-18 Jonathan Wakely <jwakely@redhat.com> | |
6525 | ||
6526 | * include/std/chrono (duration, time_point): Define operator<=> and | |
6527 | remove redundant operator!= for C++20. | |
6528 | * testsuite/20_util/duration/comparison_operators/three_way.cc: New | |
6529 | test. | |
6530 | * testsuite/20_util/time_point/comparison_operators/three_way.cc: New | |
6531 | test. | |
6532 | ||
6533 | * testsuite/util/native_type/native_priority_queue.hpp: Use | |
6534 | allocator_traits to rebind allocator. | |
6535 | ||
6536 | 2020-04-17 Jonathan Wakely <jwakely@redhat.com> | |
6537 | ||
6538 | * include/bits/forward_list.h (forward_list): Define operator<=> and | |
6539 | remove redundant comparison operators for C++20. | |
6540 | * include/bits/stl_bvector.h (vector<bool, Alloc>): Likewise. | |
6541 | * include/bits/stl_deque.h (deque): Likewise. | |
6542 | * include/bits/stl_iterator.h (__normal_iterator): Likewise. | |
6543 | * include/bits/stl_list.h (list): Likewise. | |
6544 | * include/bits/stl_vector.h (vector): Likewise. | |
6545 | * include/debug/deque (__gnu_debug::deque): Likewise. | |
6546 | * include/debug/forward_list (__gnu_debug::forward_list): Likewise. | |
6547 | * include/debug/list (__gnu_debug::list): Likewise. | |
6548 | * include/debug/safe_iterator.h (__gnu_debug::_Safe_iterator): | |
6549 | Likewise. | |
6550 | * include/debug/vector (__gnu_debug::vector): Likewise. | |
6551 | * include/ext/pointer.h (__gnu_cxx::_Pointer_adapter): Define | |
6552 | operator<=> for C++20. | |
6553 | * testsuite/23_containers/deque/operators/cmp_c++20.cc: New test. | |
6554 | * testsuite/23_containers/forward_list/cmp_c++20.cc: New test. | |
6555 | * testsuite/23_containers/list/cmp_c++20.cc: New test. | |
6556 | * testsuite/23_containers/vector/bool/cmp_c++20.cc: New test. | |
6557 | * testsuite/23_containers/vector/cmp_c++20.cc: New test. | |
6558 | ||
6559 | * include/bits/basic_string.h (basic_string): Define operator<=> and | |
6560 | remove redundant comparison operators for C++20. | |
6561 | * include/bits/char_traits.h (__gnu_cxx::char_traits, char_traits): | |
6562 | Add comparison_category members. | |
6563 | (__detail::__char_traits_cmp_cat): New helper to get comparison | |
6564 | category from char traits class. | |
6565 | * include/bits/regex.h (regex_traits::_RegexMask::operator!=): Do not | |
6566 | define for C++20. | |
6567 | (sub_match): Define operator<=> and remove redundant comparison | |
6568 | operators for C++20. | |
6569 | (match_results): Remove redundant operator!= for C++20. | |
6570 | * include/std/string_view (basic_string_view): Define operator<=> and | |
6571 | remove redundant comparison operators for C++20. | |
6572 | * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: New | |
6573 | test. | |
6574 | * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc: | |
6575 | New test. | |
6576 | * testsuite/21_strings/basic_string_view/operations/copy/char/ | |
6577 | constexpr.cc: Initialize variable. | |
6578 | * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/ | |
6579 | constexpr.cc: Likewise. | |
6580 | * testsuite/21_strings/basic_string_view/operators/char/2.cc: Add | |
6581 | dg-do directive and remove comments showing incorrect signatures. | |
6582 | * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc: | |
6583 | Likewise. | |
6584 | * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc: | |
6585 | New test. | |
6586 | * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc: | |
6587 | New test. | |
6588 | * testsuite/28_regex/sub_match/compare_c++20.cc: New test. | |
6589 | ||
6590 | 2020-04-16 Jonathan Wakely <jwakely@redhat.com> | |
6591 | ||
6592 | * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Remove | |
6593 | name of unused parameter. | |
6594 | ||
6595 | 2020-04-15 Jonathan Wakely <jwakely@redhat.com> | |
6596 | ||
6597 | * include/bits/fs_dir.h (file_status): Define operator== for C++20. | |
6598 | (directory_entry): Define operator<=> and remove redundant comparison | |
6599 | operators for C++20. | |
6600 | * include/bits/fs_fwd.h (space_info): Define operator== for C++20. | |
6601 | * include/bits/fs_path.h (path): Define operator<=> and remove | |
6602 | redundant comparison operators for C++20. | |
6603 | * testsuite/27_io/filesystem/path/compare/compare.cc: Fix comment. | |
6604 | * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. | |
6605 | * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. | |
6606 | * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. | |
6607 | ||
6608 | * include/bits/allocator.h (operator!=): Do not define for C++20. | |
6609 | * include/bits/locale_classes.h (operator!=): Likewise. | |
6610 | * include/bits/std_function.h (operator==(nullptr_t, const function&)) | |
6611 | (operator!=(const function&, nullptr_t)) | |
6612 | (operator!=(nullptr_t, const function&)): Likewise. | |
6613 | * include/ext/bitmap_allocator.h (operator!=): Likewise. | |
6614 | * include/ext/debug_allocator.h (operator!=): Likewise. | |
6615 | * include/ext/extptr_allocator.h (operator!=): Likewise. | |
6616 | * include/ext/malloc_allocator.h (operator!=): Likewise. | |
6617 | * include/ext/mt_allocator.h (operator!=): Likewise. | |
6618 | * include/ext/new_allocator.h (operator!=): Likewise. | |
6619 | * include/ext/pool_allocator.h (operator!=): Likewise. | |
6620 | * include/ext/throw_allocator.h (operator!=): Likewise. | |
6621 | * include/std/bitset (bitset::operator!=): Likewise. | |
6622 | * include/std/memory_resource (operator!=): Likewise. | |
6623 | * include/std/scoped_allocator (operator!=): Likewise. | |
6624 | ||
6625 | * include/std/typeindex (operator<=>): Define for C++20. | |
6626 | * testsuite/20_util/typeindex/comparison_operators_c++20.cc: New test. | |
6627 | ||
6628 | 2020-04-14 Jonathan Wakely <jwakely@redhat.com> | |
6629 | ||
6630 | * libsupc++/compare (compare_three_way): Fix constraint so that | |
6631 | BUILTIN-PTR-THREE-WAY does not require three_way_comparable_with. | |
6632 | * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: | |
6633 | New test. | |
6634 | ||
6635 | PR libstdc++/94562 | |
6636 | * include/bits/shared_ptr.h (operator<=>): Define for C++20. | |
6637 | * include/bits/shared_ptr_base.h (operator<=>): Likewise. | |
6638 | * include/bits/unique_ptr.h (operator<=>): Add inline specifier. | |
6639 | * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: New test. | |
6640 | * testsuite/20_util/shared_ptr/comparison/less.cc: Do not expect | |
6641 | std::less<A*> to be used when comparing std::shared_ptr<A> objects in | |
6642 | C++20. | |
6643 | ||
6644 | PR libstdc++/94565 | |
6645 | * libsupc++/compare (__unspec): Add noexcept-specifier to constructor. | |
6646 | * testsuite/18_support/comparisons/categories/94565.cc: New test. | |
6647 | ||
6648 | 2020-04-13 Iain Sandoe <iain@sandoe.co.uk> | |
6649 | ||
6650 | * include/std/coroutine: Update coroutines builtin define, | |
6651 | per n4861. | |
6652 | ||
6653 | 2020-04-09 Jonathan Wakely <jwakely@redhat.com> | |
6654 | ||
6655 | * libsupc++/compare (compare_three_way): Fix noexcept-specifier. | |
6656 | (strong_order, weak_order, partial_order): Replace uses of <=> with | |
6657 | compare_three_way function object (LWG 3324). | |
6658 | * testsuite/18_support/comparisons/algorithms/partial_order.cc: Add | |
6659 | equality operator so that X satisfies three_way_comparable. | |
6660 | * testsuite/18_support/comparisons/algorithms/strong_order.cc: | |
6661 | Likewise. | |
6662 | * testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise. | |
6663 | ||
6664 | * include/bits/unique_ptr.h (operator<=>): Define for C++20. | |
6665 | * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line. | |
6666 | * testsuite/20_util/default_delete/void_neg.cc: Likewise. | |
6667 | * testsuite/20_util/unique_ptr/comparison/compare.cc: New test. | |
6668 | * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: New test. | |
6669 | ||
6670 | 2020-04-08 Jonathan Wakely <jwakely@redhat.com> | |
6671 | ||
6672 | * include/bits/slice_array.h (operator==(const slice&, const slice&)): | |
6673 | Define for C++20. | |
6674 | * include/std/complex (operator==(const T&, const complex<T>&)) | |
6675 | (operator!=(const complex<T>&, const complex<T>&)) | |
6676 | (operator!=(const complex<T>&, const T&)) | |
6677 | (operator!=(const T&, const complex<T>&)): Do not declare for C++20. | |
6678 | * testsuite/26_numerics/slice/compare.cc: New test. | |
6679 | ||
6680 | * include/std/charconv (to_chars_result, from_chars_result): Add | |
6681 | defaulted equality comparisons for C++20. | |
6682 | * testsuite/20_util/from_chars/compare.cc: New test. | |
6683 | * testsuite/20_util/to_chars/compare.cc: New test. | |
6684 | ||
6685 | 2020-04-07 Jonathan Wakely <jwakely@redhat.com> | |
6686 | ||
6687 | PR libstdc++/94520 | |
6688 | * include/std/charconv (__integer_to_chars_result_type) | |
6689 | (__integer_from_chars_result_type): Use __or_ instead of __or_v_ to | |
6690 | allow use in C++14. | |
6691 | * testsuite/20_util/from_chars/1.cc: Run test as C++14 and replace | |
6692 | use of std::string_view with std::string. | |
6693 | * testsuite/20_util/from_chars/2.cc: Likewise. | |
6694 | * testsuite/20_util/to_chars/1.cc: Likewise. | |
6695 | * testsuite/20_util/to_chars/2.cc: Likewise. | |
6696 | ||
6697 | 2020-04-06 Jonathan Wakely <jwakely@redhat.com> | |
6698 | ||
6699 | PR libstdc++/94498 | |
6700 | * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Make it | |
6701 | usable in constant expressions for C++20. | |
6702 | (__gnu_cxx::char_traits::copy, __gnu_cxx::char_traits::assign): Add | |
6703 | _GLIBCXX20_CONSTEXPR. | |
6704 | (std::char_traits<char>, std::char_traits<wchar_t>) | |
6705 | (std::char_traits<char8_t>): Make move, copy and assign usable in | |
6706 | constant expressions for C++20. | |
6707 | (std::char_traits<char16_t>, std::char_traits<char32_t>): Make move | |
6708 | and copy usable in constant expressions for C++20. | |
6709 | * include/std/string_view (basic_string_view::copy): Add | |
6710 | _GLIBCXX20_CONSTEXPR. | |
6711 | * testsuite/21_strings/basic_string_view/operations/copy/char/ | |
6712 | constexpr.cc: New test. | |
6713 | * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/ | |
6714 | constexpr.cc: New test. | |
6715 | ||
6716 | 2020-04-05 Gerald Pfeifer <gerald@pfeifer.com> | |
6717 | ||
6718 | * doc/xml/manual/appendix_contributing.xml: Refer to Git | |
6719 | documentation instead of Subversion. Switch to https. | |
6720 | * doc/html/manual/appendix_contributing.html: Regenerate. | |
6721 | ||
6722 | 2020-04-03 Jonathan Wakely <jwakely@redhat.com> | |
6723 | ||
6724 | PR libstdc++/93960 | |
6725 | * include/bits/ptr_traits.h (__to_address): Add special case for debug | |
6726 | iterators, to avoid dereferenceable check. | |
6727 | * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number. | |
6728 | * testsuite/20_util/to_address/debug.cc: New test. | |
6729 | ||
6730 | 2020-04-01 Andrea Corallo <andrea.corallo@arm.com> | |
6731 | ||
6732 | * testsuite/experimental/net/execution_context/use_service.cc: | |
6733 | Require pthread and gthreads. | |
6734 | ||
6735 | 2020-04-01 Gerald Pfeifer <gerald@pfeifer.com> | |
6736 | ||
6737 | * doc/xml/manual/appendix_free.xml: Move "free books" list from | |
6738 | fsf.org to gnu.org. | |
6739 | * doc/html/manual/appendix_free.html: Regenerate. | |
6740 | ||
6741 | 2020-03-31 Ville Voutilainen <ville.voutilainen@gmail.com> | |
6742 | ||
6743 | Library-side tests for parenthesized aggregate init | |
6744 | ||
6745 | PR c++/92878 | |
6746 | PR c++/92947 | |
6747 | ||
6748 | * testsuite/20_util/allocator_traits/members/92878_92947.cc: New. | |
6749 | * testsuite/20_util/any/assign/92878_92947.cc: Likewise. | |
6750 | * testsuite/20_util/any/cons/92878_92947.cc: Likewise. | |
6751 | * testsuite/20_util/is_constructible/92878_92947.cc: Likewise. | |
6752 | * testsuite/20_util/optional/assignment/92878_92947.cc: Likewise. | |
6753 | * testsuite/20_util/optional/cons/92878_92947.cc: Likewise. | |
6754 | * testsuite/20_util/pair/cons/92878_92947.cc: Likewise. | |
6755 | * testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise. | |
6756 | * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc: | |
6757 | Likewise. | |
6758 | * testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise. | |
6759 | * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. | |
6760 | * testsuite/20_util/variant/92878_92947.cc: Likewise. | |
6761 | * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc: | |
6762 | Likewise. | |
6763 | * testsuite/23_containers/forward_list/modifiers/92878_92947.cc: | |
6764 | Likewise. | |
6765 | * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc: | |
6766 | Likewise. | |
6767 | * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc: | |
6768 | Likewise. | |
6769 | * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc: | |
6770 | Likewise. | |
6771 | * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc: | |
6772 | Likewise. | |
6773 | * testsuite/23_containers/priority_queue/92878_92947.cc: Likewise. | |
6774 | * testsuite/23_containers/queue/92878_92947.cc: Likewise. | |
6775 | * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc: | |
6776 | Likewise. | |
6777 | * testsuite/23_containers/stack/92878_92947.cc: Likewise. | |
6778 | * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc: | |
6779 | Likewise. | |
6780 | * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc: | |
6781 | Likewise. | |
6782 | * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc: | |
6783 | Likewise. | |
6784 | * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc: | |
6785 | Likewise. | |
6786 | * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc: | |
6787 | Likewise. | |
6788 | ||
6789 | 2020-03-28 Jonathan Wakely <jwakely@redhat.com> | |
6790 | ||
6791 | * testsuite/20_util/is_constructible/value-2.cc: Fix test to account | |
6792 | for changes due to parenthesized aggregate-initialization in C++20. | |
6793 | * testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash | |
6794 | with std::chrono::sys_time in C++20. | |
6795 | ||
6796 | * include/bits/stl_iterator.h (reverse_iterator): Use requires-clause | |
6797 | to constrain C++20 versions of comparison operators. Fix backwards | |
6798 | logic of relational operators. | |
6799 | (move_iterator): Use requires-clause to constrain comparison operators | |
6800 | in C++20. Do not declare non-standard same-type overloads for C++20. | |
6801 | * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: Check result | |
6802 | of comparisons and check using greedy_ops type. | |
6803 | * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: Likewise. | |
6804 | * testsuite/24_iterators/move_iterator/greedy_ops.cc: Remove redundant | |
6805 | main function from compile-only test. | |
6806 | * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise. | |
6807 | ||
6808 | 2020-03-27 Jonathan Wakely <jwakely@redhat.com> | |
6809 | ||
6810 | * include/bits/range_cmp.h (__cpp_lib_ranges): Define. | |
6811 | * include/bits/stl_iterator.h: Check value of __cpp_concepts so that | |
6812 | C++20 concepts are required. | |
6813 | * include/bits/stl_iterator_base_types.h: Likewise. | |
6814 | * include/std/concepts: Likewise. | |
6815 | * include/std/version: Likewise. | |
6816 | * testsuite/std/ranges/headers/ranges/synopsis.cc: Check feature test | |
6817 | macro. | |
6818 | ||
6819 | * include/bits/stl_iterator.h (reverse_iterator::iterator_concept) | |
6820 | (reverse_iterator::iterator_category): Define for C++20. | |
6821 | (reverse_iterator): Define comparison operators correctly for C++20. | |
6822 | (__normal_iterator): Add constraints to comparison operators for C++20. | |
6823 | (move_iterator::operator++(int)) [__cpp_lib_concepts]: Define new | |
6824 | overload for input iterators. | |
6825 | (move_iterator): Add constraints to comparison operators for C++20. | |
6826 | Define operator<=> for C++20. | |
6827 | * testsuite/24_iterators/move_iterator/input_iterator.cc: New test. | |
6828 | * testsuite/24_iterators/move_iterator/move_only.cc: New test. | |
6829 | * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: New test. | |
6830 | * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: New test. | |
6831 | ||
6832 | * include/bits/iterator_concepts.h (__detail::__decay_copy) | |
6833 | (__detail::__member_begin, __detail::__adl_begin): Move here from | |
6834 | <bits/range_access.h>. | |
6835 | (__detail::__ranges_begin, __detail::__range_iter_t): Define. | |
6836 | * bits/range_access.h (__cust_access::__decay_copy) | |
6837 | (__cust_access::__member_begin, __cust_access::__adl_begin): Move to | |
6838 | <bits/iterator_concepts.h>. | |
6839 | (ranges::iterator_t): Use __detail::__range_iter_t. | |
6840 | * include/bits/stl_iterator.h (back_insert_iterator): Simplify | |
6841 | conditional compilation. Add _GLIBCXX20_CONSTEXPR to all members. | |
6842 | (front_insert_iterator): Likewise. | |
6843 | (insert_iterator): Implement changes from P0896R4 for C++20. | |
6844 | * testsuite/24_iterators/back_insert_iterator/constexpr.cc: New test. | |
6845 | * testsuite/24_iterators/front_insert_iterator/constexpr.cc: New test. | |
6846 | * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Adjust | |
6847 | for inclusion in synopsis_c++20.cc which expects different signatures | |
6848 | for some function templates. | |
6849 | * testsuite/24_iterators/insert_iterator/constexpr.cc: New test. | |
6850 | ||
6851 | * include/std/type_traits (__is_array_convertible): Move definition | |
6852 | to immediately after is_convertible. | |
6853 | ||
6854 | 2020-03-26 Jonathan Wakely <jwakely@redhat.com> | |
6855 | ||
6856 | * include/std/chrono (chrono::days, chrono::weeks, chrono::years) | |
6857 | (chrono::months, chrono::sys_days, chrono::local_t) | |
6858 | (chrono::local_time, chrono::local_seconds, chrono::local_days): | |
6859 | Define for C++20. | |
6860 | (chrono::time_point): Add missing static assert. | |
6861 | * testsuite/20_util/time_point/requirements/duration_neg.cc: New test. | |
6862 | * testsuite/std/time/clock/file/overview.cc: New test. | |
6863 | * testsuite/std/time/clock/file/members.cc: New test. | |
6864 | * testsuite/std/time/syn_c++20.cc: New test. | |
6865 | ||
6866 | 2020-03-25 Mike Crowe <mac@mcrowe.com> | |
6867 | ||
6868 | * testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc: New | |
6869 | test. | |
6870 | * testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc: New | |
6871 | test. | |
6872 | ||
6873 | 2020-03-25 Jonathan Wakely <jwakely@redhat.com> | |
6874 | ||
6875 | * include/bits/fs_fwd.h (filesystem::__file_clock): Move to ... | |
6876 | * include/std/chrono (filesystem::__file_clock): Here. | |
6877 | (filesystem::__file_clock::from_sys, filesystem::__file_clock::to_sys): | |
6878 | Define public member functions for C++20. | |
6879 | (is_clock, is_clock_v): Define traits for C++20. | |
6880 | * include/std/condition_variable (condition_variable::wait_until): Add | |
6881 | check for valid clock. | |
6882 | * include/std/future (_State_baseV2::wait_until): Likewise. | |
6883 | * include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Likewise. | |
6884 | * include/std/shared_mutex (shared_timed_mutex::try_lock_shared_until): | |
6885 | Likewise. | |
6886 | * include/std/thread (this_thread::sleep_until): Likewise. | |
6887 | * testsuite/30_threads/condition_variable/members/2.cc: Qualify | |
6888 | slow_clock with new namespace. | |
6889 | * testsuite/30_threads/condition_variable/members/clock_neg.cc: New | |
6890 | test. | |
6891 | * testsuite/30_threads/condition_variable_any/members/clock_neg.cc: | |
6892 | New test. | |
6893 | * testsuite/30_threads/future/members/clock_neg.cc: New test. | |
6894 | * testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc: | |
6895 | Qualify slow_clock with new namespace. | |
6896 | * testsuite/30_threads/recursive_timed_mutex/try_lock_until/ | |
6897 | clock_neg.cc: New test. | |
6898 | * testsuite/30_threads/shared_future/members/clock_neg.cc: New | |
6899 | test. | |
6900 | * testsuite/30_threads/shared_lock/locking/clock_neg.cc: New test. | |
6901 | * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc: | |
6902 | New test. | |
6903 | * testsuite/30_threads/timed_mutex/try_lock_until/3.cc: Qualify | |
6904 | slow_clock with new namespace. | |
6905 | * testsuite/30_threads/timed_mutex/try_lock_until/4.cc: Likewise. | |
6906 | * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: New | |
6907 | test. | |
6908 | * testsuite/30_threads/unique_lock/locking/clock_neg.cc: New test. | |
6909 | * testsuite/std/time/traits/is_clock.cc: New test. | |
6910 | * testsuite/util/slow_clock.h (slow_clock): Move to __gnu_test | |
6911 | namespace. | |
6912 | ||
6913 | 2020-03-21 Jonathan Wakely <jwakely@redhat.com> | |
6914 | ||
6915 | PR libstdc++/93245 | |
6916 | * include/experimental/bits/fs_path.h (path::generic_string<C,T,A>()): | |
6917 | * testsuite/experimental/filesystem/path/generic/generic_string.cc: | |
6918 | Improve test coverage. | |
6919 | ||
6920 | PR libstdc++/94242 | |
6921 | * include/bits/fs_path.h (path::_S_str_convert): Replace first | |
6922 | parameter with basic_string_view so that strings with different | |
6923 | allocators can be accepted. | |
6924 | (path::generic_string<C,T,A>()): Use basic_string object that uses the | |
6925 | right allocator type. | |
6926 | * testsuite/27_io/filesystem/path/generic/94242.cc: New test. | |
6927 | * testsuite/27_io/filesystem/path/generic/generic_string.cc: Improve | |
6928 | test coverage. | |
6929 | ||
6930 | 2020-03-18 Jonathan Wakely <jwakely@redhat.com> | |
6931 | ||
6932 | PR libstdc++/94033 | |
6933 | * include/std/type_traits (__is_nt_default_constructible_atom): Remove. | |
6934 | (__is_nt_default_constructible_impl): Remove. | |
6935 | (__is_nothrow_default_constructible_impl): Remove. | |
6936 | (__is_nt_constructible_impl): Add bool template parameter. Adjust | |
6937 | partial specializations. | |
6938 | (__is_nothrow_constructible_impl): Replace class template with alias | |
6939 | template. | |
6940 | (is_nothrow_default_constructible): Derive from alias template | |
6941 | __is_nothrow_constructible_impl instead of | |
6942 | __is_nothrow_default_constructible_impl. | |
6943 | * testsuite/20_util/is_nothrow_constructible/94003.cc: New test. | |
6944 | ||
6945 | * include/std/stop_token (stop_token::_Stop_state_ref): Define | |
6946 | comparison operators explicitly if the compiler won't synthesize them. | |
6947 | ||
6948 | * include/bits/stl_algobase.h (__lexicographical_compare_aux): Check | |
6949 | __cpp_lib_concepts before using iter_reference_t. | |
6950 | * include/bits/stream_iterator.h (istream_iterator): Check | |
6951 | __cpp_lib_concepts before using default_sentinel_t. | |
6952 | * include/bits/streambuf_iterator.h (istreambuf_iterator): Likewise. | |
6953 | ||
6954 | PR libstdc++/94203 | |
6955 | * include/experimental/executor (executor::executor(Executor)): Call | |
6956 | make_shared directly instead of _M_create. Create _Tgt1 object. | |
6957 | (executor::executor(allocator_arg_t, const ProtoAlloc&, Executor)): | |
6958 | Call allocate_shared directly instead of _M_create. Create _Tgt2 | |
6959 | object. | |
6960 | (executor::target_type): Add cast needed for new _Tgt interface. | |
6961 | (executor::target): Define when RTTI is disabled. Use _Tgt::_M_func. | |
6962 | (executor::_Tgt): Define the same interface whether RTTI is enabled or | |
6963 | not. | |
6964 | (executor::_Tgt::target_type, executor::_Tgt::target): Do not use | |
6965 | std::type_info in the interface. | |
6966 | (executor::_Tgt::_M_func): Add data member. | |
6967 | (executor::_TgtImpl): Replace with _Tgt1 and _Tgt2 class templates. | |
6968 | (executor::_Tgt1::_S_func): Define function to access target without | |
6969 | depending on RTTI. | |
6970 | (executor::_M_create): Remove. | |
6971 | (operator==, operator!=): Simplify comparisons for executor. | |
6972 | * include/experimental/socket (is_error_code_enum<socket_errc>): | |
6973 | Define specialization before use. | |
6974 | * testsuite/experimental/net/executor/1.cc: New test. | |
6975 | ||
6976 | 2020-03-16 Jonathan Wakely <jwakely@redhat.com> | |
6977 | ||
6978 | PR libstdc++/94199 | |
6979 | * include/experimental/executor (service_already_exists): Add default | |
6980 | constructor. Declare make_service to be a friend. | |
6981 | * testsuite/experimental/net/execution_context/make_service.cc: New | |
6982 | test. | |
6983 | ||
6984 | 2020-03-12 Jonathan Wakely <jwakely@redhat.com> | |
6985 | ||
6986 | * testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Do not pass | |
6987 | a null pointer to functions with nonnull(1) attribute. | |
6988 | ||
6989 | 2020-03-11 Patrick Palka <ppalka@redhat.com> | |
6990 | ||
6991 | * include/std/ranges (split_view::_OuterIter::_OuterIter): Typo fix, | |
6992 | 'address' -> 'std::__addressof'. | |
6993 | * testsuite/std/ranges/adaptors/split.cc: Test taking the split_view of | |
6994 | a non-forward input_range. | |
6995 | * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): Make | |
6996 | default constructor protected instead of deleted, like with | |
6997 | input_iterator_wrapper. | |
6998 | (test_range::iterator): Add comment explaining that this type is used | |
6999 | only when the underlying wrapper is input_iterator_wrapper or | |
7000 | output_iterator_wrapper. Remove delegating defaulted constructor so | |
7001 | that the inherited default constructor is used instead. | |
7002 | ||
7003 | LWG 3286 ranges::size is not required to be valid after a call to | |
7004 | ranges::begin on an input range | |
7005 | * include/std/ranges (subrange::subrange): Split single-argument | |
7006 | constructor into two, one constrained by _S_store_size and another by | |
7007 | !_S_store_size. | |
7008 | (take_view::begin): Call size() before calling ranges::begin(_M_base). | |
7009 | * testsuite/std/ranges/adaptors/lwg3286.cc: New test. | |
7010 | * testsuite/std/ranges/subrange/lwg3286.cc: New test. | |
7011 | ||
7012 | 2020-03-10 Jonathan Wakely <jwakely@redhat.com> | |
7013 | ||
7014 | * include/std/ranges (split_view::_OuterIter::__at_end): Use __current | |
7015 | instead of _M_current. | |
7016 | (split_view::_OuterIter::operator++): Likewise. | |
7017 | ||
7018 | * include/std/ranges (transform_view::_Iterator::__iter_move): Remove. | |
7019 | (transform_view::_Iterator::operator*): Add noexcept-specifier. | |
7020 | (transform_view::_Iterator::iter_move): Inline __iter_move body here. | |
7021 | (split_view::_OuterIter::__current): Add noexcept. | |
7022 | (split_view::_InnerIter::__iter_swap): Remove. | |
7023 | (split_view::_InnerIter::__iter_move): Remove. | |
7024 | (split_view::_InnerIter::_M_i_current): New accessors. | |
7025 | (split_view::_InnerIter::__at_end): Use _M_i_current(). | |
7026 | (split_view::_InnerIter::operator*): Likewise. | |
7027 | (split_view::_InnerIter::operator++): Likewise. | |
7028 | (iter_move(const _InnerIter&)): Likewise. | |
7029 | (iter_swap(const _InnerIter&, const _InnerIter&)): Likewise. | |
7030 | * testsuite/std/ranges/adaptors/split.cc: Check noexcept-specifier | |
7031 | for iter_move and iter_swap on split_view's inner iterator. | |
7032 | ||
7033 | PR c++/94117 | |
7034 | * include/std/ranges (ranges::transform_view::_Iterator::iter_move): | |
7035 | Change expression in noexcept-specifier to match function body. | |
7036 | ||
7037 | * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Add | |
7038 | comment explaining multiple dg-do directives. | |
7039 | * testsuite/24_iterators/ostream_iterator/1.cc: Fix do-do directive | |
7040 | so test is run as well as compiled. | |
7041 | ||
7042 | 2020-03-09 Jonathan Wakely <jwakely@redhat.com> | |
7043 | ||
7044 | PR libstdc++/94063 | |
7045 | * src/c++17/fs_path.cc (path::operator+=(const path&)): Add kluge to | |
7046 | handle concatenations that change the type of the first component. | |
7047 | (path::operator+=(basic_string_view<value_type>)): Likewise. | |
7048 | * testsuite/27_io/filesystem/path/concat/94063.cc: New test. | |
7049 | ||
7050 | 2020-03-06 Patrick Palka <ppalka@redhat.com> | |
7051 | ||
7052 | * include/std/ranges (join_view::_Sentinel<_Const>): Befriend | |
7053 | join_view::_Sentinel<!_Const>. | |
7054 | * testsuite/std/ranges/adaptors/join.cc: Augment test. | |
7055 | ||
7056 | PR libstdc++/93978 | |
7057 | * include/bits/range_access.h (__cust_access::_Empty::operator()): | |
7058 | Declare return type to be bool instead of auto. | |
7059 | * testsuite/std/ranges/adaptors/93978.cc: New test. | |
7060 | ||
7061 | 2020-03-06 Jonathan Wakely <jwakely@redhat.com> | |
7062 | ||
7063 | PR libstdc++/94069 | |
7064 | * include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER] | |
7065 | (__shared_mutex_pthread::__shared_mutex_pthread()): Remove incorrect | |
7066 | second argument to __glibcxx_rwlock_init. | |
7067 | * testsuite/30_threads/shared_timed_mutex/94069.cc: New test. | |
7068 | ||
7069 | PR libstdc++/93244 | |
7070 | * testsuite/27_io/filesystem/path/generic/generic_string.cc: Adjust | |
7071 | test to not fail due to PR 94063. | |
7072 | * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. | |
7073 | * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. | |
7074 | ||
7075 | 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
7076 | ||
7077 | * src/c++11/system_error.cc: Omit the ENOTSUP case statement if it | |
7078 | would match ENOSYS. | |
7079 | ||
7080 | 2020-03-05 Jonathan Wakely <jwakely@redhat.com> | |
7081 | ||
7082 | * testsuite/27_io/filesystem/operations/all.cc: Mark unused variable. | |
7083 | * testsuite/27_io/filesystem/operations/copy.cc: Fix typo. | |
7084 | * testsuite/experimental/filesystem/operations/copy.cc: Likewise. | |
7085 | * testsuite/27_io/filesystem/operations/file_size.cc: Use correct type | |
7086 | for return value, and in comparison. | |
7087 | * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. | |
7088 | ||
7089 | PR libstdc++/94051 | |
7090 | * include/std/string_view: Include <bits/ostream_insert.h>. | |
7091 | * testsuite/21_strings/basic_string_view/inserters/94051.cc: New test. | |
7092 | ||
7093 | 2020-03-04 Jonathan Wakely <jwakely@redhat.com> | |
7094 | ||
7095 | * include/bits/cpp_type_traits.h (__memcpyable): Fix comment. | |
7096 | ||
7097 | 2020-03-04 Patrick Palka <ppalka@redhat.com> | |
7098 | ||
7099 | PR libstdc++/94017 | |
7100 | * include/bits/ranges_algobase.h (__fill_n_fn::operator()): Refine | |
7101 | condition for when to use memset, making sure to additionally check that | |
7102 | the output pointer's value type is a non-volatile byte type. Instead of | |
7103 | requiring that the fill type is a byte type, just require that it's an | |
7104 | integral type. | |
7105 | * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc: | |
7106 | New test. | |
7107 | * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc: | |
7108 | New test. | |
7109 | * testsuite/25_algorithms/fill/94013.cc: Uncomment part of test that was | |
7110 | blocked by PR 94017. | |
7111 | * testsuite/25_algorithms/fill/94017.cc: New test. | |
7112 | * testsuite/25_algorithms/fill_n/94017.cc: New test. | |
7113 | ||
7114 | LWG 3355 The memory algorithms should support move-only input iterators | |
7115 | introduced by P1207 | |
7116 | * include/bits/ranges_uninitialized.h | |
7117 | (__uninitialized_copy_fn::operator()): Use std::move to avoid attempting | |
7118 | to copy __ifirst, which could be a move-only input iterator. Use | |
7119 | operator- instead of ranges::distance to compute distance from a sized | |
7120 | sentinel. | |
7121 | (__uninitialized_copy_n_fn::operator()): Likewise. | |
7122 | (__uninitialized_move_fn::operator()): Likewise. | |
7123 | (__uninitialized_move_n_fn::operator()): Likewise. | |
7124 | (__uninitialized_destroy_fn::operator()): Use std::move to avoid | |
7125 | attempting to copy __first. | |
7126 | (__uninitialized_destroy_n_fn::operator()): Likewise. | |
7127 | * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: | |
7128 | Augment test. | |
7129 | * .../specialized_algorithms/uninitialized_copy/constrained.cc: | |
7130 | Likewise. | |
7131 | * .../specialized_algorithms/uninitialized_move/constrained.cc: | |
7132 | Likewise. | |
7133 | ||
7134 | * testsuite/util/testsuite_iterators.h (test_range::get_iterator): Make | |
7135 | protected instead of private. | |
7136 | (test_sized_range_sized_sent): New. | |
7137 | ||
7138 | * testsuite/util/testsuite_iterators.h (input_iterator_wrapper_nocopy): | |
7139 | New testsuite iterator. | |
7140 | * testsuite/24_iterators/counted_iterator/lwg3389.cc: use it. | |
7141 | * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise. | |
7142 | ||
7143 | * include/bits/ranges_uninitialized.h | |
7144 | (uninitialized_copy_fn::operator()): Pass a reference type as the first | |
7145 | argument to is_nothrow_assignable_v. | |
7146 | (uninitialized_copy_fn::operator()): Likewise. | |
7147 | (uninitialized_move_fn::operator()): Likewise. Return an in_out_result | |
7148 | with the input iterator stripped of its move_iterator. | |
7149 | (uninitialized_move_n_fn::operator()): Likewise. | |
7150 | (uninitialized_fill_fn::operator()): Pass a reference type as the first | |
7151 | argument to is_nothrow_assignable_v. | |
7152 | (uninitialized_fill_n_fn::operator()): Likewise. | |
7153 | ||
7154 | 2020-03-03 Jonathan Wakely <jwakely@redhat.com> | |
7155 | ||
7156 | PR libstdc++/94013 | |
7157 | * include/bits/cpp_type_traits.h (__memcpyable, __memcmpable): New | |
7158 | traits to control when to use memmove and memcmp optimizations. | |
7159 | (__is_nonvolatile_trivially_copyable): New helper trait. | |
7160 | * include/bits/ranges_algo.h (__lexicographical_compare_fn): Do not | |
7161 | use memcmp optimization with volatile data. | |
7162 | * include/bits/ranges_algobase.h (__equal_fn): Use __memcmpable. | |
7163 | (__copy_or_move, __copy_or_move_backward): Use __memcpyable. | |
7164 | * include/bits/stl_algobase.h (__copy_move_a2): Use __memcpyable. | |
7165 | (__copy_move_backward_a2): Likewise. | |
7166 | (__equal_aux1): Use __memcmpable. | |
7167 | (__lexicographical_compare_aux): Do not use memcmp optimization with | |
7168 | volatile data. | |
7169 | * testsuite/25_algorithms/copy/94013.cc: New test. | |
7170 | * testsuite/25_algorithms/copy_backward/94013.cc: New test. | |
7171 | * testsuite/25_algorithms/equal/94013.cc: New test. | |
7172 | * testsuite/25_algorithms/fill/94013.cc: New test. | |
7173 | * testsuite/25_algorithms/lexicographical_compare/94013.cc: New test. | |
7174 | * testsuite/25_algorithms/move/94013.cc: New test. | |
7175 | * testsuite/25_algorithms/move_backward/94013.cc: New test. | |
7176 | ||
7177 | * include/bits/stl_algobase.h (lexicographical_compare_three_way): | |
7178 | Avoid redundant iterator comparisons (LWG 3410). | |
7179 | ||
7180 | 2020-03-02 Jonathan Wakely <jwakely@redhat.com> | |
7181 | ||
7182 | PR libstdc++/93972 | |
7183 | * include/bits/stl_algobase.h (__memcmp): Allow pointer types to | |
7184 | differ. | |
7185 | * testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test. | |
7186 | ||
7187 | * include/std/ranges (__detail::__maybe_empty_t): Rename to | |
7188 | __maybe_present_t. | |
7189 | (__adaptor::_RangeAdaptor, join_view, split_view): Use new name. | |
7190 | ||
7191 | * include/bits/ranges_algo.h (shift_right): Add 'typename' to | |
7192 | dependent type. | |
7193 | ||
7194 | 2020-03-01 H.J. Lu <hongjiu.lu@intel.com> | |
7195 | ||
7196 | * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. | |
7197 | ||
7198 | 2020-02-29 John David Anglin <danglin@gcc.gnu.org> | |
7199 | ||
7200 | * testsuite/17_intro/headers/c++1998/charset.cc: Skip on *-*-hpux*. | |
7201 | * testsuite/17_intro/headers/c++2011/charset.cc: Likewise. | |
7202 | * testsuite/17_intro/headers/c++2014/charset.cc: Likewise. | |
7203 | * testsuite/17_intro/headers/c++2017/charset.cc: Likewise. | |
7204 | * testsuite/17_intro/headers/c++2020/charset.cc: Likewise. | |
7205 | ||
7206 | * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc: | |
7207 | Add libatomic option. | |
7208 | * testsuite/30_threads/jthread/jthread.cc: Likewise. | |
7209 | ||
7210 | 2020-02-29 François Dumont <fdumont@gcc.gnu.org> | |
7211 | ||
7212 | * include/bits/stl_algo.h | |
7213 | (__find_if, __count_if, __is_permutation, std::is_permutation): Move... | |
7214 | * include/bits/stl_algobase.h: ...here. | |
7215 | * include/bits/hashtable_policy.h: Remove <bits/stl_algo.h> include. | |
7216 | ||
7217 | 2020-02-29 John David Anglin <danglin@gcc.gnu.org> | |
7218 | ||
7219 | * testsuite/30_threads/stop_token/stop_callback.cc: Add libatomic | |
7220 | option. | |
7221 | * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: | |
7222 | Likewise. | |
7223 | * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: Likewise. | |
7224 | * testsuite/30_threads/stop_token/stop_callback/destroy.cc: Likewise. | |
7225 | * testsuite/30_threads/stop_token/stop_callback/invoke.cc: Likewise. | |
7226 | * testsuite/30_threads/stop_token/stop_source.cc: Likewise. | |
7227 | * testsuite/30_threads/stop_token/stop_source/assign.cc: Likewise. | |
7228 | * testsuite/30_threads/stop_token/stop_token.cc: Likewise. | |
7229 | * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: | |
7230 | Likewise. | |
7231 | ||
7232 | PR libstdc++/92906 | |
7233 | * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. | |
7234 | ||
7235 | 2020-02-28 Patrick Palka <ppalka@redhat.com> | |
7236 | ||
7237 | PR libstdc++/93972 | |
7238 | * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()): | |
7239 | Fix condition for when to use memcmp, making it consistent with the | |
7240 | corresponding condition used in std::lexicographical_compare. | |
7241 | * testsuite/25_algorithms/lexicographical_compare/93972.cc: New test. | |
7242 | ||
7243 | * testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for | |
7244 | functions introduced in C++11, C++17 and C++2a. Add 'constexpr' to | |
7245 | existing signatures for C++2a. | |
7246 | ||
7247 | 2020-02-28 Jonathan Wakely <jwakely@redhat.com> | |
7248 | ||
7249 | * testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run | |
7250 | test instead of just compiling it. | |
7251 | ||
7252 | 2020-02-28 Patrick Palka <ppalka@redhat.com> | |
7253 | ||
7254 | * include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false | |
7255 | whenever the underlying range models common_range. | |
7256 | ||
7257 | * include/std/ranges (__detail::_CachedPosition): New struct. | |
7258 | (views::filter_view::_S_needs_cached_begin): New member variable. | |
7259 | (views::filter_view::_M_cached_begin): New member variable. | |
7260 | (views::filter_view::begin): Use _M_cached_begin to cache its | |
7261 | result. | |
7262 | (views::drop_view::_S_needs_cached_begin): New static member variable. | |
7263 | (views::drop_view::_M_cached_begin): New member variable. | |
7264 | (views::drop_view::begin): Use _M_cached_begin to cache its result | |
7265 | when _S_needs_cached_begin. | |
7266 | (views::drop_while_view::_M_cached_begin): New member variable. | |
7267 | (views::drop_while_view::begin): Use _M_cached_begin to cache its | |
7268 | result. | |
7269 | (views::reverse_view::_S_needs_cached_begin): New static member | |
7270 | variable. | |
7271 | (views::reverse_view::_M_cached_begin): New member variable. | |
7272 | (views::reverse_view::begin): Use _M_cached_begin to cache its result | |
7273 | when _S_needs_cached_begin. | |
7274 | * testsuite/std/ranges/adaptors/drop.cc: Augment test to check that | |
7275 | drop_view::begin caches its result. | |
7276 | * testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check | |
7277 | that drop_while_view::begin caches its result. | |
7278 | * testsuite/std/ranges/adaptors/filter.cc: Augment test to check that | |
7279 | filter_view::begin caches its result. | |
7280 | * testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that | |
7281 | reverse_view::begin caches its result. | |
7282 | ||
7283 | 2020-02-28 Jonathan Wakely <jwakely@redhat.com> | |
7284 | ||
7285 | * testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for | |
7286 | filesystems that silently truncate timestamps. | |
7287 | * testsuite/experimental/filesystem/operations/last_write_time.cc: | |
7288 | Likewise. | |
7289 | ||
7290 | * testsuite/21_strings/basic_string/cons/char/1.cc: Disable | |
7291 | -Wstringop-overflow warnings. | |
7292 | ||
7293 | 2020-02-27 Jonathan Wakely <jwakely@redhat.com> | |
7294 | ||
7295 | * testsuite/lib/libstdc++.exp (v3_target_compile): Add | |
7296 | -fdiagnostics-urls=never to options. | |
7297 | ||
7298 | 2020-02-27 Patrick Palka <ppalka@redhat.com> | |
7299 | ||
7300 | * include/std/ranges (transform_view::_Iterator<_Const>): Befriend | |
7301 | _Iterator<!_Const>. | |
7302 | (transform_view::_Sentinel<_Const>): Befriend _Sentinel<!_Const>. | |
7303 | (take_view::_Sentinel<_Const>): Likewise. | |
7304 | (take_while_view::_Sentinel<_Const>): Likewise. | |
7305 | (split_view::_OuterIter<_Const>): Befriend _OuterIter<!_Const>. | |
7306 | * testsuite/std/ranges/adaptors/split.cc: Augment test. | |
7307 | * testsuite/std/ranges/adaptors/take.cc: Augment test. | |
7308 | * testsuite/std/ranges/adaptors/take_while.cc: Augment test. | |
7309 | * testsuite/std/ranges/adaptors/transform.cc: Augment test. | |
7310 | ||
7311 | * testsuite/25_algorithms/copy/constrained.cc: Don't assume that the | |
7312 | base() of a vector<>::iterator is a pointer. | |
7313 | * testsuite/25_algorithms/copy_backward/constrained.cc: Likewise. | |
7314 | * testsuite/25_algorithms/move/constrained.cc: Likewise. | |
7315 | * testsuite/25_algorithms/move_backward/constrained.cc: Likewise. | |
7316 | * testsuite/25_algorithms/inplace_merge/constrained.cc: Use foo.data() | |
7317 | instead of &foo[0]. | |
7318 | * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise. | |
7319 | * testsuite/25_algorithms/partial_sort_copy/constrained.cc: Likewise. | |
7320 | * testsuite/25_algorithms/shuffle/constrained.cc: Likewise. | |
7321 | * testsuite/25_algorithms/sort/constrained.cc: Likewise. | |
7322 | * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise. | |
7323 | ||
7324 | 2020-02-27 Jonathan Wakely <jwakely@redhat.com> | |
7325 | ||
7326 | * include/debug/array (operator<=>): Define for C++20. | |
7327 | * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: | |
7328 | Adjust dg-error line numbers. | |
7329 | * testsuite/23_containers/array/tuple_interface/ | |
7330 | tuple_element_debug_neg.cc: Likewise. | |
7331 | ||
7332 | * testsuite/23_containers/span/back_assert_neg.cc: Add #undef before | |
7333 | defining _GLIBCXX_ASSERTIONS. | |
7334 | * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise. | |
7335 | * testsuite/23_containers/span/first_assert_neg.cc: Likewise. | |
7336 | * testsuite/23_containers/span/front_assert_neg.cc: Likewise. | |
7337 | * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise. | |
7338 | * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise. | |
7339 | * testsuite/23_containers/span/last_assert_neg.cc: Likewise. | |
7340 | * testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise. | |
7341 | * testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise. | |
7342 | * testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise. | |
7343 | * testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise. | |
7344 | * testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise. | |
7345 | * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise. | |
7346 | ||
7347 | * include/debug/string (__gnu_debug::basic_string::insert): Fix for | |
7348 | C++98 where the member function of the base class returns void. | |
7349 | ||
7350 | * testsuite/util/testsuite_iterators.h (forward_iterator_wrapper): Add | |
7351 | equality comparisons that support value-initialized iterators. | |
7352 | ||
7353 | * include/bits/boost_concept_check.h (__function_requires): Add | |
7354 | _GLIBCXX14_CONSTEXPR. | |
7355 | * testsuite/25_algorithms/min/concept_checks.cc: New test. | |
7356 | ||
7357 | 2020-02-26 Patrick Palka <ppalka@redhat.com> | |
7358 | ||
7359 | PR libstdc++/93936 | |
7360 | * include/std/ranges (split_view::_InnerIter::operator==): Compare | |
7361 | the operands' _M_i rather than their _M_i.current(). | |
7362 | * testsuite/std/ranges/adaptors/split.cc: Augment test. | |
7363 | ||
7364 | P1645R1 constexpr for <numeric> algorithms | |
7365 | * include/bits/stl_numeric.h (iota, accumulate, inner_product, | |
7366 | partial_sum, adjacent_difference): Make conditionally constexpr for | |
7367 | C++20. | |
7368 | * include/std/numeric (__cpp_lib_constexpr_numeric): Define this feature | |
7369 | test macro. | |
7370 | (reduce, transform_reduce, exclusive_scan, inclusive_scan, | |
7371 | transform_exclusive_scan, transform_inclusive_scan): Make conditionally | |
7372 | constexpr for C++20. | |
7373 | * include/std/version (__cpp_lib_constexpr_numeric): Define. | |
7374 | * testsuite/26_numerics/accumulate/constexpr.cc: New test. | |
7375 | * testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise. | |
7376 | * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise. | |
7377 | * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise. | |
7378 | * testsuite/26_numerics/inner_product/constexpr.cc: Likewise. | |
7379 | * testsuite/26_numerics/iota/constexpr.cc: Likewise. | |
7380 | * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise. | |
7381 | * testsuite/26_numerics/reduce/constexpr.cc: Likewise. | |
7382 | * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: Likewise. | |
7383 | * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: Likewise. | |
7384 | * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise. | |
7385 | ||
7386 | 2020-02-26 Jonathan Wakely <jwakely@redhat.com> | |
7387 | ||
7388 | * include/bits/ranges_algo.h (__lexicographical_compare_fn): Declare | |
7389 | variables in smaller scope and avoid calling ranges::distance when we | |
7390 | know they are pointers. Remove statically-unreachable use of | |
7391 | __builtin_unreachable(). | |
7392 | * include/bits/stl_algobase.h (__lexicographical_compare::__lc): | |
7393 | Define inline. | |
7394 | ||
7395 | * include/std/ranges (__detail::__maybe_empty_t): Define new helper | |
7396 | alias. | |
7397 | (__detail::__maybe_const_t): Likewise. | |
7398 | (__adaptor::_RangeAdaptor): Use __maybe_empty_t. | |
7399 | (transform_view, take_view, take_while_view, elements_view): Use | |
7400 | __maybe_const_t. | |
7401 | (join_view, split_view): Use both. | |
7402 | ||
7403 | 2020-02-25 Patrick Palka <ppalka@redhat.com> | |
7404 | ||
7405 | LWG 3397 basic_istream_view::iterator should not provide | |
7406 | iterator_category | |
7407 | * include/std/ranges (basic_istream_view:_Iterator::iterator_category): | |
7408 | Rename to ... | |
7409 | (basic_istream_view:_Iterator::iterator_concept): ... this. | |
7410 | * testsuite/std/ranges/istream_view.cc: Augment test. | |
7411 | ||
7412 | LWG 3325 Constrain return type of transformation function for | |
7413 | transform_view | |
7414 | * include/std/ranges (transform_view): Constrain the return type of the | |
7415 | transformation function as per LWG 3325. | |
7416 | * testsuite/std/ranges/adaptors/lwg3325_neg.cc: New test. | |
7417 | ||
7418 | LWG 3313 join_view::_Iterator::operator-- is incorrectly constrained | |
7419 | * include/std/ranges (join_view::_Iterator::operator--): Require that | |
7420 | range_reference_t<_Base> models common_range. | |
7421 | * testsuite/std/ranges/adaptors/lwg3313_neg.cc: New test. | |
7422 | ||
7423 | LWG 3301 transform_view::_Iterator has incorrect iterator_category | |
7424 | * include/std/ranges (transform_view::_Iterator::_S_iter_cat): Adjust | |
7425 | determination of iterator_category as per LWG 3301. | |
7426 | * testsuite/std/ranges/adaptors/transform.cc: Augment test. | |
7427 | ||
7428 | LWG 3292 iota_view is under-constrained | |
7429 | * include/std/ranges (iota_view): Require that _Winc models semiregular | |
7430 | as per LWG 3292. | |
7431 | * testsuite/std/ranges/iota/lwg3292_neg.cc: New test. | |
7432 | ||
7433 | 2020-02-25 Jonathan Wakely <jwakely@redhat.com> | |
7434 | ||
7435 | * include/bits/ranges_algobase.h (__copy_or_move): Do not use memmove | |
7436 | during constant evaluation. Call __builtin_memmove directly instead of | |
7437 | __memmove. | |
7438 | (__copy_or_move_backward): Likewise. | |
7439 | * include/bits/stl_algobase.h (__memmove): Remove. | |
7440 | (__copy_move<M, true, random_access_iterator_tag>::__copy_m) | |
7441 | (__copy_move_backward<M, true, random_access_iterator_tag>::__copy_m): | |
7442 | Use __builtin_memmove directly instead of __memmove. | |
7443 | (__copy_move_a2): Do not use memmove during constant evaluation. | |
7444 | (__copy_move_backward_a2): Use _IsMove constant to select correct | |
7445 | __copy_move_backward specialization. | |
7446 | * testsuite/25_algorithms/copy_backward/constexpr.cc: Check for copies | |
7447 | begin turned into moves during constant evaluation. | |
7448 | ||
7449 | * testsuite/25_algorithms/move_backward/93872.cc: Add test left out of | |
7450 | previous commit. | |
7451 | ||
7452 | PR libstdc++/93872 | |
7453 | * include/bits/stl_algobase.h (__memmove): Cast away const before | |
7454 | doing move assignment. | |
7455 | * testsuite/25_algorithms/move/93872.cc: New test. | |
7456 | * testsuite/25_algorithms/move_backward/93872.cc: New test. | |
7457 | ||
7458 | 2020-02-24 Patrick Palka <ppalka@redhat.com> | |
7459 | ||
7460 | PR libstdc++/93884 | |
7461 | * include/bits/ranges_algobase.h (__copy_or_move, | |
7462 | __copy_or_move_backward): Don't inspect the iter_value_t of the output | |
7463 | iterator, instead inspect its iterator_traits directly. | |
7464 | * include/bits/stl_iterator.h (back_insert_iterator::container): | |
7465 | Conditionally initialize. | |
7466 | (back_insert_iterator::difference_type): Conditionally define. | |
7467 | (back_insert_iterator::back_insert_iterator): Conditionally define this | |
7468 | default constructor. | |
7469 | (front_insert_iterator::container): Conditionally initialize. | |
7470 | (front_insert_iterator::difference_type): Conditionally define. | |
7471 | (front_insert_iterator::front_insert_iterator): Conditionally define | |
7472 | this default constructor. | |
7473 | * 24_iterators/back_insert_iterator/pr93884.cc: New test. | |
7474 | * 24_iterators/front_insert_iterator/pr93884.cc: New test. | |
7475 | ||
7476 | P0769R2 Add shift to <algorithm> | |
7477 | * include/bits/ranges_algo.h (shift_left, shift_right): New. | |
7478 | * testsuite/25_algorithms/shift_left/1.cc: New test. | |
7479 | * testsuite/25_algorithms/shift_right/1.cc: New test. | |
7480 | ||
7481 | 2020-02-24 Jonathan Wakely <jwakely@redhat.com> | |
7482 | ||
7483 | * include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)): | |
7484 | Make noexcept-specifier conditional. | |
7485 | * testsuite/24_iterators/istream_iterator/cons/sentinel.cc: Check | |
7486 | noexcept-specifier. | |
7487 | ||
7488 | * include/bits/stream_iterator.h (istream_iterator(default_sentinel_t)): | |
7489 | Add constructor. | |
7490 | (operator==(istream_iterator, default_sentinel_t)): Add operator. | |
7491 | (ostream_iterator::difference_type): Define to ptrdiff_t for C++20. | |
7492 | * include/bits/streambuf_iterator.h | |
7493 | (istreambuf_iterator(default_sentinel_t)): Add constructor. | |
7494 | (operator==(istreambuf_iterator, default_sentinel_t)): Add operator. | |
7495 | * testsuite/24_iterators/istream_iterator/cons/sentinel.cc: | |
7496 | New test. | |
7497 | * testsuite/24_iterators/istream_iterator/sentinel.cc: New test. | |
7498 | * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc: | |
7499 | New test. | |
7500 | * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test. | |
7501 | ||
7502 | * include/std/ranges (__deep_const_range, __enable_view_impl): Remove. | |
7503 | (ranges::enable_view): Simplify (LWG 3326). | |
7504 | * include/bits/range_access.h (ranges::enable_view): Declare. | |
7505 | * include/bits/regex.h (__enable_view_impl): Remove partial | |
7506 | specialization. | |
7507 | * include/bits/stl_multiset.h (__enable_view_impl): Likewise. | |
7508 | * include/bits/stl_set.h (__enable_view_impl): Likewise. | |
7509 | * include/bits/unordered_set.h (__enable_view_impl): Likewise. | |
7510 | * include/debug/multiset.h (__enable_view_impl): Likewise. | |
7511 | * include/debug/set.h (__enable_view_impl): Likewise. | |
7512 | * include/debug/unordered_set (__enable_view_impl): Likewise. | |
7513 | * include/experimental/string_view (ranges::enable_view): Define | |
7514 | partial specialization. | |
7515 | * include/std/span (ranges::enable_view): Likewise. | |
7516 | * include/std/string_view (ranges::enable_view): Likewise. | |
7517 | * testsuite/std/ranges/view.cc: Check satisfaction of updated concept. | |
7518 | ||
7519 | 2020-02-21 Jonathan Wakely <jwakely@redhat.com> | |
7520 | ||
7521 | * include/std/optional (operator<=>(optional<T>, optional<U>)) | |
7522 | (operator<=>(optional<T>, nullopt), operator<=>(optional<T>, U)): | |
7523 | Define for C++20. | |
7524 | * include/std/tuple (__tuple_cmp): New helper function for <=>. | |
7525 | (operator<=>(tuple<T...>, tuple<U>...)): Define for C++20. | |
7526 | * include/std/variant (operator<=>(variant<T...>, variant<T...>)) | |
7527 | (operator<=>(monostate, monostate)): Define for C++20. | |
7528 | * testsuite/20_util/optional/relops/three_way.cc: New test. | |
7529 | * testsuite/20_util/tuple/comparison_operators/three_way.cc: New test. | |
7530 | * testsuite/20_util/variant/89851.cc: Move to ... | |
7531 | * testsuite/20_util/variant/relops/89851.cc: ... here. | |
7532 | * testsuite/20_util/variant/90008.cc: Move to ... | |
7533 | * testsuite/20_util/variant/relops/90008.cc: ... here. | |
7534 | * testsuite/20_util/variant/relops/three_way.cc: New test. | |
7535 | ||
7536 | 2020-02-20 Patrick Palka <ppalka@redhat.com> | |
7537 | ||
7538 | * include/std/ranges (views::__adaptor::__maybe_refwrap): New utility | |
7539 | function. | |
7540 | (views::__adaptor::_RangeAdaptor::operator()): Add comments. Use | |
7541 | __maybe_refwrap to capture lvalue references by reference, and then use | |
7542 | unwrap_reference_t to forward the by-reference captures as references. | |
7543 | * testsuite/std/ranges/adaptors/split.cc: Augment test. | |
7544 | * testsuite/std/ranges/adaptors/split_neg.cc: New test. | |
7545 | ||
7546 | * include/std/ranges (iota_view): Forward declare _Sentinel. | |
7547 | (iota_view::_Iterator): Befriend _Sentinel. | |
7548 | (iota_view::_Sentinel::_M_equal): New member function. | |
7549 | (iota_view::_Sentinel::operator==): Use it. | |
7550 | (views::_Iota::operator()): Forward __f using the correct type. | |
7551 | * testsuite/std/ranges/access/ssize.cc (test06): Don't call views::iota | |
7552 | with integers of different signedness, to appease iota_view's deduction | |
7553 | guide. | |
7554 | * testsuite/std/ranges/iota/iota_view.cc: Augment test. | |
7555 | ||
7556 | 2020-02-20 Jonathan Wakely <jwakely@redhat.com> | |
7557 | ||
7558 | * include/bits/range_access.h (ranges::begin): Reject array of | |
7559 | incomplete type. | |
7560 | (ranges::end, ranges::size): Require arrays to be bounded. | |
7561 | (ranges::data): Require lvalue or borrowed_range. | |
7562 | (ranges::iterator_t): Remove constraint. | |
7563 | * testsuite/std/ranges/access/begin.cc: Do not check array of | |
7564 | incomplete type. | |
7565 | * testsuite/std/ranges/access/begin_neg.cc: New test. | |
7566 | * testsuite/std/ranges/access/end_neg.cc: Adjust expected error. | |
7567 | * testsuite/std/ranges/access/size_neg.cc: Adjust expected error. | |
7568 | * testsuite/std/ranges/access/ssize.cc: Do not check array of | |
7569 | incomplete type. | |
7570 | ||
7571 | * include/std/system_error (error_category::operator<=>) | |
7572 | (operator<=>(const error_code&, const error_code&)) | |
7573 | (operator<=>(const error_condition&, const error_condition&)): Define | |
7574 | for C++20. | |
7575 | * testsuite/19_diagnostics/error_category/operators/less.cc: New test. | |
7576 | * testsuite/19_diagnostics/error_category/operators/three_way.cc: New | |
7577 | test. | |
7578 | * testsuite/19_diagnostics/error_code/operators/equal.cc: Remove | |
7579 | incorrect comment. | |
7580 | * testsuite/19_diagnostics/error_code/operators/less.cc: New test. | |
7581 | * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Remove | |
7582 | incorrect comment. | |
7583 | * testsuite/19_diagnostics/error_code/operators/three_way.cc: New test. | |
7584 | * testsuite/19_diagnostics/error_condition/operators/equal.cc: Remove | |
7585 | incorrect comment. | |
7586 | * testsuite/19_diagnostics/error_condition/operators/less.cc: New test. | |
7587 | * testsuite/19_diagnostics/error_condition/operators/not_equal.cc: | |
7588 | Remove incorrect comment. | |
7589 | * testsuite/19_diagnostics/error_condition/operators/three_way.cc: New | |
7590 | test. | |
7591 | ||
7592 | * libsupc++/typeinfo (type_info::operator!=): Remove for C++20. | |
7593 | ||
7594 | * include/std/thread (thread::id::operator<=>): Define for C++20. | |
7595 | * testsuite/30_threads/thread/id/70294.cc: Do not take addresses of | |
7596 | functions in namespace std. | |
7597 | * testsuite/30_threads/thread/id/operators_c++20.cc: New test. | |
7598 | ||
7599 | 2020-02-19 Patrick Palka <ppalka@redhat.com> | |
7600 | ||
7601 | * testsuite/std/ranges/adaptors/split.cc (test03): Don't include the | |
7602 | null terminator of the underlying string as part of the test_range. | |
7603 | (main): Call test03. | |
7604 | ||
7605 | 2020-02-19 Jonathan Wakely <jwakely@redhat.com> | |
7606 | ||
7607 | * include/bits/stl_iterator.h (common_iterator): Add copyable<I> | |
7608 | requirement (LWG 3385). | |
7609 | * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust | |
7610 | expected declaration. | |
7611 | ||
7612 | * include/std/ranges (take_while_view, drop_view, drop_while_view) | |
7613 | (elements_view:_Iterator): Initialize data members (LWG 3364). | |
7614 | ||
7615 | * libsupc++/compare (three_way_comparable): Remove always-false check | |
7616 | that should have been removed with weak_equality (P1959R0). | |
7617 | (three_way_comparable_with): Likewise. Reorder requirements (LWG 3360). | |
7618 | ||
7619 | * include/std/concepts (__detail::__partially_ordered_with): Move here | |
7620 | from <compare>. | |
7621 | (totally_ordered, totally_ordered_with): Use __partially_ordered_with | |
7622 | to simplify definition (LWG 3331). | |
7623 | * libsupc++/compare (__detail::__partially_ordered_with): Move to | |
7624 | <concepts>. | |
7625 | ||
7626 | * include/std/concepts (totally_ordered_with): Remove redundant | |
7627 | requirement (LWG 3329). | |
7628 | ||
7629 | * include/std/ranges (__detail::__convertible_to_non_slicing): New | |
7630 | helper concept. | |
7631 | (__detail::__pair_like_convertible_to): Remove. | |
7632 | (__detail::__pair_like_convertible_from): Add requirements for | |
7633 | non-slicing conversions. | |
7634 | (subrange): Constrain constructors with __convertible_to_non_slicing. | |
7635 | Remove constructors from pair-like types. Add new deduction guide. | |
7636 | * testsuite/std/ranges/subrange/lwg3282_neg.cc: New test. | |
7637 | ||
7638 | * include/bits/iterator_concepts.h (iter_move): Add declaration to | |
7639 | prevent unqualified lookup finding a suitable declaration (LWG 3247). | |
7640 | ||
7641 | * include/std/memory_resource (polymorphic_allocator::allocate) | |
7642 | (polymorphic_allocator::allocate_object): Change type of exception to | |
7643 | bad_array_new_length (LWG 3237). | |
7644 | * testsuite/20_util/polymorphic_allocator/lwg3237.cc: New test. | |
7645 | ||
7646 | * include/std/type_traits (__cpp_lib_unwrap_ref): Define (LWG 3348). | |
7647 | * include/std/version (__cpp_lib_unwrap_ref): Likewise. | |
7648 | * testsuite/20_util/unwrap_reference/1.cc: Check macro. | |
7649 | * testsuite/20_util/unwrap_reference/3.cc: New test. | |
7650 | ||
7651 | * include/std/numeric (midpoint(T8, T*)): Do not check for complete | |
7652 | type during overload resolution, use static assert instead (LWG 3200). | |
7653 | * testsuite/26_numerics/midpoint/pointer.cc: Do not test with | |
7654 | incomplete type. | |
7655 | * testsuite/26_numerics/midpoint/pointer_neg.cc: New test. | |
7656 | ||
7657 | * include/std/span (span(T (&)[N])): Use non-deduced context to | |
7658 | prevent first parameter from interfering with class template argument | |
7659 | deduction (LWG 3369). | |
7660 | * testsuite/23_containers/span/deduction.cc: Add missing 'const'. | |
7661 | * testsuite/23_containers/span/lwg3255.cc: Check for construction from | |
7662 | rvalues. | |
7663 | ||
7664 | * include/std/span (span::const_iterator, span::const_reverse_iterator) | |
7665 | (span::cbegin(), span::cend(), span::crbegin(), span::crend()): | |
7666 | Remove (LWG 3320). | |
7667 | * testsuite/23_containers/span/everything.cc: Replace uses of cbegin | |
7668 | and cend. | |
7669 | * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: | |
7670 | Likewise. | |
7671 | * testsuite/20_util/specialized_algorithms/uninitialized_copy/ | |
7672 | constrained.cc: Likewise. | |
7673 | * testsuite/20_util/specialized_algorithms/ | |
7674 | uninitialized_default_construct/constrained.cc: Likewise. | |
7675 | * testsuite/20_util/specialized_algorithms/uninitialized_fill/ | |
7676 | constrained.cc: Likewise. | |
7677 | * testsuite/20_util/specialized_algorithms/uninitialized_move/ | |
7678 | constrained.cc: Likewise. | |
7679 | * testsuite/20_util/specialized_algorithms/ | |
7680 | uninitialized_value_construct/constrained.cc: Likewise. | |
7681 | ||
7682 | * include/bits/range_access.h (range_size_t): Define alias template. | |
7683 | * include/std/ranges (all_view): Rename to views::all_t (LWG 3335). | |
7684 | * testsuite/std/ranges/adaptors/filter.cc: Adjust to new name. | |
7685 | ||
7686 | * include/std/ranges (filter_view, transform_view, take_view) | |
7687 | (join_view, split_view, reverse_view): Remove commented-out converting | |
7688 | constructors (LWG 3280). | |
7689 | ||
7690 | * include/std/memory (uninitialized_construct_using_allocator): Use | |
7691 | std::construct_at (LWG 3321). | |
7692 | ||
7693 | * include/std/memory_resource (polymorphic_allocator::allocate_bytes) | |
7694 | (polymorphic_allocator::allocate_object) | |
7695 | (polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304). | |
7696 | ||
7697 | LWG 3379. "safe" in several library names is misleading | |
7698 | * include/bits/range_access.h (enable_safe_range): Rename to | |
7699 | enable_borrowed_range. | |
7700 | (__detail::__maybe_safe_range): Rename to __maybe_borrowed_range. | |
7701 | (safe_range): Rename to borrowed_range. | |
7702 | * include/bits/ranges_algo.h: Adjust to use new names. | |
7703 | * include/bits/ranges_algobase.h: Likewise. | |
7704 | * include/bits/ranges_uninitialized.h: Likewise. | |
7705 | * include/std/ranges: Likewise. | |
7706 | (safe_iterator_t): Rename to borrowed_iterator_t. | |
7707 | (safe_subrange_t): Rename to borrowed_subrange_t. | |
7708 | * include/std/span: Adjust to use new names. | |
7709 | * include/std/string_view: Likewise. | |
7710 | * include/experimental/string_view: Likewise. | |
7711 | * testsuite/std/ranges/access/begin.cc: Likewise. | |
7712 | * testsuite/std/ranges/access/cbegin.cc: Likewise. | |
7713 | * testsuite/std/ranges/access/cdata.cc: Likewise. | |
7714 | * testsuite/std/ranges/access/cend.cc: Likewise. | |
7715 | * testsuite/std/ranges/access/crbegin.cc: Likewise. | |
7716 | * testsuite/std/ranges/access/crend.cc: Likewise. | |
7717 | * testsuite/std/ranges/access/data.cc: Likewise. | |
7718 | * testsuite/std/ranges/access/end.cc: Likewise. | |
7719 | * testsuite/std/ranges/access/rbegin.cc: Likewise. | |
7720 | * testsuite/std/ranges/access/rend.cc: Likewise. | |
7721 | * testsuite/std/ranges/safe_range.cc: Likewise. | |
7722 | * testsuite/std/ranges/safe_range_types.cc: Likewise. | |
7723 | * testsuite/util/testsuite_iterators.h: Likewise. | |
7724 | ||
7725 | * include/std/ranges (tuple_element<0, const subrange<I, S, K>>) | |
7726 | (tuple_element<1, const subrange<I, S, K>>): Add partial | |
7727 | specializations (LWG 3398). | |
7728 | * testsuite/std/ranges/subrange/tuple_like.cc: New test. | |
7729 | ||
7730 | * include/bits/ranges_algo.h (__find_fn, __find_first_of_fn) | |
7731 | (__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn) | |
7732 | (__unique_fn, __unique_copy_fn): Remove redundant conversions to bool. | |
7733 | ||
7734 | 2020-02-18 Patrick Palka <ppalka@redhat.com> | |
7735 | ||
7736 | P1983R0 Wording for GB301, US296, US292, US291, and US283 | |
7737 | * include/std/ranges (filter_view::pred): New member function. | |
7738 | (join_view::_Iterator::_Iterator): Remove now-redundant comment since | |
7739 | P1983R0 fixes the highlighted issue in the same way. | |
7740 | (join_view::_Iterator<_Const>): Add friend | |
7741 | join_view::_Iterator<!_Const>. | |
7742 | (join_view::_M_inner): Remove mutable specifier, effectively reverting | |
7743 | the proposed wording changes of P3278. | |
7744 | (join_view::begin): Refine the condition for when to return a const | |
7745 | iterator. | |
7746 | (split_view::_OuterIter::_OuterIter): Adjust constraints. | |
7747 | * testsuite/std/ranges/adaptors/filter.cc: Test that filter_view::pred | |
7748 | exists and works. | |
7749 | ||
7750 | 2020-02-18 Jonathan Wakely <jwakely@redhat.com> | |
7751 | ||
7752 | PR libstdc++/93818 | |
7753 | * include/std/ranges (_RangeAdaptor): Add deduction guide. | |
7754 | (filter_view::_Iterator): Add alias _Vp_iter and use in place of | |
7755 | iterator_t<_Vp>. | |
7756 | (filter_view::_Iterator::_S_iter_cat()): Add 'typename'. | |
7757 | (transform_view::_Iterator): Add alias _Base_iter and use in place of | |
7758 | iterator_t<_Base>. | |
7759 | (transform_view::_Iterator::_S_iter_cat()): Add 'typename'. | |
7760 | (join_view::_Iterator): Add _Outer_iter and _Inner_iter aliases. | |
7761 | (join_view::_Iterator::_S_iter_cat()): Add 'typename'. | |
7762 | (split_view::_InnerIter::_S_iter_cat()): Likewise. | |
7763 | ||
7764 | * testsuite/20_util/integer_comparisons/equal.cc: Fix invalid | |
7765 | assumption that long is wider than int. | |
7766 | * testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise. | |
7767 | * testsuite/20_util/integer_comparisons/less.cc: Likewise. | |
7768 | * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise. | |
7769 | * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise. | |
7770 | ||
7771 | P1976R2 Fixed-size span construction from dynamic range | |
7772 | * include/std/span (__cpp_lib_span): Update value. | |
7773 | (span(It, size_type), span(It, End)): Make conditionally explicit. Add | |
7774 | assertion. | |
7775 | (span(R&&), span(const span<OType, OExtent>&)): Likewise and relax | |
7776 | constraints. | |
7777 | (span::first<Count>(), span::last<Count>()): Use explicit type in | |
7778 | return statement. | |
7779 | (as_bytes, as_writable_bytes): Likewise. | |
7780 | * include/std/version (__cpp_lib_span): Update value. | |
7781 | * testsuite/23_containers/span/1.cc: Check new value. | |
7782 | * testsuite/23_containers/span/2.cc: Check new value. | |
7783 | * testsuite/23_containers/span/explicit.cc: New test. | |
7784 | ||
7785 | * include/std/span (span::__is_compatible_array): Simplify alias | |
7786 | template by using requires-clause. | |
7787 | (span::__is_compatible_ref): New alias template for constraining | |
7788 | constructors. | |
7789 | (span::__is_compatible_iterator, span::__is_compatible_range): Remove. | |
7790 | (span(It, size_type), span(It, End)): Use __is_compatible_ref. | |
7791 | (span(T(&)[N], span(array<T, N>&), span(const array<T, N>&)): Remove | |
7792 | redundant parentheses. | |
7793 | (span(R&&)): Add missing constraints. | |
7794 | ||
7795 | * include/std/span (span): Reorder members and rename template | |
7796 | parameters to match declarations in the C++2a working paper. | |
7797 | ||
7798 | P2116R0 Remove tuple-like protocol support from fixed-extent span | |
7799 | * include/std/span (get, tuple_size, tuple_element): Remove. | |
7800 | * testsuite/23_containers/span/everything.cc: Remove checks for | |
7801 | tuple-like API. | |
7802 | * testsuite/23_containers/span/get_neg.cc: Remove. | |
7803 | * testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove. | |
7804 | * testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove. | |
7805 | * testsuite/23_containers/span/tuple_size_neg.cc: Remove. | |
7806 | ||
7807 | 2020-02-17 Patrick Palka <ppalka@redhat.com> | |
7808 | ||
7809 | P2106R0 Alternative wording for GB315 and GB316 | |
7810 | * include/bits/ranges_algo.h (in_fun_result): New. | |
7811 | (for_each_result, for_each_n_result): Change into an alias of | |
7812 | in_fun_result. | |
7813 | (in_in_result): New. | |
7814 | (mismatch_result): Change into an alias of in_in_result. | |
7815 | (copy_if_result): Change into an alias of in_out_result. | |
7816 | (swap_ranges_result): Change into an alias of in_in_result. | |
7817 | (unary_transform_result): Change into an alias of in_out_result. | |
7818 | (in_in_out_result): New. | |
7819 | (binary_transform_result): Change into an alias of in_in_out_result. | |
7820 | (replace_copy_result, replace_copy_if_result, remove_copy_if_result, | |
7821 | remove_copy_result, unique_copy_result, reverse_copy_result, | |
7822 | rotate_copy_result, partial_sort_copy_result): Change into an alias of | |
7823 | in_out_result. | |
7824 | (in_out_out_result): New. | |
7825 | (partition_copy_result, merge_result): Change into an alias of | |
7826 | in_out_out_result. | |
7827 | (set_union_result, set_intersection_result): Change into an alias of | |
7828 | in_in_out_result. | |
7829 | (set_difference_result): Change into an alias of in_out_result. | |
7830 | (set_symmetric_difference): Change into an alias of in_in_out_result. | |
7831 | (min_max_result): New. | |
7832 | (minmax_result, minmax_element_result): Change into an alias of | |
7833 | min_max_result. | |
7834 | (in_found_result): New. | |
7835 | (next_permutation_result, prev_permutation_result): Change into an alias | |
7836 | of in_found_result. | |
7837 | (__next_permutation_fn::operator(), __prev_permutation_fn::operator()): | |
7838 | Adjust following changes to next_permutation_result and | |
7839 | prev_permutation_result. | |
7840 | * include/bits/ranges_algobase.h (in_out_result): New. | |
7841 | (copy_result, move_result, move_backward_result, copy_backward_result, | |
7842 | copy_n_result): Change into an alias of in_out_result. | |
7843 | * include/bits/ranges_uninitialized.h (uninitialized_copy_result, | |
7844 | uninitialized_copy_n_result, uninitialized_move_result, | |
7845 | uninitialized_move_n_result): Likewise. | |
7846 | * testsuite/25_algorithms/next_permutation/constrained.cc: Adjust uses of | |
7847 | structured bindings. | |
7848 | * testsuite/25_algorithms/prev_permutation/constrained.cc: Likewise. | |
7849 | ||
7850 | P1243R4 Rangify new algorithms | |
7851 | * include/bits/ranges_algo.h (for_each_n_result, __for_each_n_fn, | |
7852 | for_each_n, __sample_fn, sample, __clamp_fn, clamp): New. | |
7853 | * testsuite/25_algorithms/clamp/constrained.cc: New test. | |
7854 | * testsuite/25_algorithms/for_each/constrained.cc: Augment test. | |
7855 | * testsuite/25_algorithms/sample/constrained.cc: New test. | |
7856 | ||
7857 | 2020-02-17 Jonathan Wakely <jwakely@redhat.com> | |
7858 | ||
7859 | P1964R2 Wording for boolean-testable | |
7860 | * include/bits/ranges_algo.h (__find_fn, __find_first_of_fn) | |
7861 | (__adjacent_find_fn): Cast result of predicate to bool. | |
7862 | * include/std/concepts (__boolean): Remove. | |
7863 | (__detail::__boolean_testable_impl, __detail::__boolean_testable): Add | |
7864 | new helper concepts. | |
7865 | (__detail::__weakly_eq_cmp_with, totally_ordered, totally_ordered_with) | |
7866 | (predicate): Use __boolean_testable instead of boolean. | |
7867 | * libsupc++/compare (__detail::__partially_ordered, _Synth3way): | |
7868 | Likewise. | |
7869 | ||
7870 | P1970R2 Consistency for size() functions: Add ranges::ssize | |
7871 | * include/bits/range_access.h (_SSize, ssize): Define for C++20. | |
7872 | * testsuite/std/ranges/access/ssize.cc: New test. | |
7873 | ||
7874 | P1956R1 On the names of low-level bit manipulation functions | |
7875 | * include/bits/hashtable_policy.h: Update comment. | |
7876 | * include/std/bit (__ispow2, __ceil2, __floor2, __log2p1): Rename. | |
7877 | (ispow2, ceil2, floor2, log2p1): Likewise. | |
7878 | (__cpp_lib_int_pow2): Add feature test macro. | |
7879 | * include/std/charconv (__to_chars_len_2): Adjust use of __log2p1. | |
7880 | * include/std/memory (assume_aligned): Adjust use of ispow2. | |
7881 | * include/std/version (__cpp_lib_int_pow2): Add. | |
7882 | * libsupc++/new_opa.cc: Adjust use of __ispow2. | |
7883 | * src/c++17/memory_resource.cc: Likewise, and for __ceil2 and __log2p1. | |
7884 | * testsuite/17_intro/freestanding.cc: Adjust use of ispow2. | |
7885 | * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Rename to ... | |
7886 | * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: ... here. | |
7887 | * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Rename to ... | |
7888 | * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: ... here. | |
7889 | * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Rename to ... | |
7890 | * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: ... here. | |
7891 | * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Rename to ... | |
7892 | * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: ... here. | |
7893 | * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Rename to ... | |
7894 | * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: ... here. | |
7895 | ||
7896 | * include/std/charconv: Add comment. | |
7897 | ||
7898 | PR libstdc++/92546 (partial) | |
7899 | * include/bits/random.h (uniform_random_bit_generator): Move definition | |
7900 | to <bits/uniform_int_dist.h>. | |
7901 | * include/bits/ranges_algo.h: Include <bits/uniform_int_dist.h> instead | |
7902 | of <bits/random.h>. | |
7903 | * include/bits/ranges_algobase.h: Do not include <cmath>. | |
7904 | * include/bits/uniform_int_dist.h (uniform_random_bit_generator): | |
7905 | Move here. | |
7906 | * include/std/ranges: Do not include <limits>. | |
7907 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno. | |
7908 | ||
7909 | PR libstdc++/92546 (partial) | |
7910 | * include/Makefile.am: Add new header. | |
7911 | * include/Makefile.in: Regenerate. | |
7912 | * include/bits/int_limits.h: New header. | |
7913 | * include/bits/parse_numbers.h (__select_int::_Select_int): Replace | |
7914 | numeric_limits with __detail::__int_limits. | |
7915 | * include/std/bit (__rotl, __rotr, __countl_zero, __countl_one) | |
7916 | (__countr_zero, __countr_one, __popcount, __ceil2, __floor2, __log2p1): | |
7917 | Likewise. | |
7918 | * include/std/charconv (__to_chars_8, __from_chars_binary) | |
7919 | (__from_chars_alpha_to_num, from_chars): Likewise. | |
7920 | * include/std/memory_resource (polymorphic_allocator::allocate) | |
7921 | (polymorphic_allocator::allocate_object): Likewise. | |
7922 | * include/std/string_view (basic_string_view::_S_compare): Likewise. | |
7923 | * include/std/utility (in_range): Likewise. | |
7924 | * testsuite/20_util/integer_comparisons/in_range_neg.cc: Adjust for | |
7925 | extra error about incomplete type __int_limits<bool>. | |
7926 | * testsuite/26_numerics/bit/bit.count/countl_one.cc: Include <limits>. | |
7927 | * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise. | |
7928 | * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise. | |
7929 | * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise. | |
7930 | * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise. | |
7931 | * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: Likewise. | |
7932 | * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Likewise. | |
7933 | * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise. | |
7934 | * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise. | |
7935 | * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise. | |
7936 | * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise. | |
7937 | * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise. | |
7938 | ||
7939 | * python/libstdcxx/v6/printers.py (StdCmpCatPrinter.to_string): Update | |
7940 | value for partial_ordering::unordered. | |
7941 | ||
7942 | * include/bits/iterator_concepts.h (indirectly_copyable_storable): Add | |
7943 | const-qualified expression variations. | |
7944 | * include/std/concepts (copyable): Likewise. | |
7945 | ||
7946 | * include/std/type_traits (__is_standard_integer): New helper trait. | |
7947 | * include/std/utility (cmp_equal, cmp_not_equal, cmp_less, cmp_greater) | |
7948 | (cmp_less_equal, cmp_greater_equal, in_range): Define for C++20. | |
7949 | * include/std/version (__cpp_lib_integer_comparison_functions): Define. | |
7950 | * testsuite/20_util/integer_comparisons/1.cc: New test. | |
7951 | * testsuite/20_util/integer_comparisons/2.cc: New test. | |
7952 | * testsuite/20_util/integer_comparisons/equal.cc: New test. | |
7953 | * testsuite/20_util/integer_comparisons/equal_neg.cc: New test. | |
7954 | * testsuite/20_util/integer_comparisons/greater_equal.cc: New test. | |
7955 | * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: New test. | |
7956 | * testsuite/20_util/integer_comparisons/greater_neg.cc: New test. | |
7957 | * testsuite/20_util/integer_comparisons/in_range.cc: New test. | |
7958 | * testsuite/20_util/integer_comparisons/in_range_neg.cc: New test. | |
7959 | * testsuite/20_util/integer_comparisons/less.cc: New test. | |
7960 | * testsuite/20_util/integer_comparisons/less_equal.cc: New test. | |
7961 | * testsuite/20_util/integer_comparisons/less_equal_neg.cc: New test. | |
7962 | * testsuite/20_util/integer_comparisons/less_neg.cc: New test. | |
7963 | * testsuite/20_util/integer_comparisons/not_equal.cc: New test. | |
7964 | * testsuite/20_util/integer_comparisons/not_equal_neg.cc: New test. | |
7965 | ||
7966 | 2020-02-16 Patrick Palka <ppalka@redhat.com> | |
7967 | ||
7968 | * include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()): | |
7969 | Move code after an early exit constexpr if to under an else branch. | |
7970 | * include/bits/ranges_algobase.h (__equal_fn::operator()): Likewise. | |
7971 | ||
7972 | 2020-02-15 Patrick Palka <ppalka@redhat.com> | |
7973 | ||
7974 | * include/bits/ranges_algo.h: Adjust whitespace and formatting. | |
7975 | * include/bits/ranges_algobase.h: Likewise. | |
7976 | * include/bits/ranges_uninitialized.h: Likewise. | |
7977 | ||
7978 | * include/bits/ranges_algo.h: (adjacent_find, all_of, any_of, | |
7979 | binary_search, copy_if, count, count_if, equal_range, find, find_end, | |
7980 | find_first_of, find_if, find_if_not, for_each, generate, generate_n, | |
7981 | includes, inplace_merge, is_heap, is_heap_until, is_partitioned, | |
7982 | is_permutation, is_sorted, is_sorted_until, lexicographical_compare, | |
7983 | lower_bound, make_heap, max, max_element, merge, min, min_element, | |
7984 | minmax, minmax_element, mismatch, next_permutation, none_of, | |
7985 | nth_element, partial_sort, partial_sort_copy, partition, partition_copy, | |
7986 | partition_point, pop_heap, prev_permutation, push_heap, remove, | |
7987 | remove_copy, remove_copy_if, remove_if, replace, replace_copy, | |
7988 | replace_copy_if, replace_if, reverse, reverse_copy, rotate, rotate_copy, | |
7989 | search, search_n, set_difference, set_intersection, | |
7990 | set_symmetric_difference, set_union, shuffle, sort, sort_heap, | |
7991 | stable_partition, stable_sort, swap_ranges, transform, unique, | |
7992 | unique_copy, upper_bound): Convert into function objects. | |
7993 | * include/bits/ranges_algobase.h: (equal, copy, move, copy_n, fill_n, | |
7994 | fill, move_backward, copy_backward): Likewise. | |
7995 | * include/bits/ranges_uninitialized.h (uninitialized_default_construct, | |
7996 | uninitialized_default_construct_n, uninitialized_value_construct, | |
7997 | uninitialized_value_construct_n, uninitialized_copy, | |
7998 | uninitialized_copy_n, uninitialized_move, uninitialized_move_n, | |
7999 | uninitialized_fill, uninitialized_fill_n, construct_at, destroy_at, | |
8000 | destroy, destroy_n): Likewise. | |
8001 | ||
8002 | * include/bits/ranges_algo.h (ranges::__find_end): Fold into ... | |
8003 | (ranges::find_end): ... here. | |
8004 | (ranges::__lexicographical_compare): Fold into ... | |
8005 | (ranges::lexicographical_compare): ... here. | |
8006 | * include/bits/ranges_algobase.h (ranges::__equal): Fold into ... | |
8007 | (ranges::equal): ... here. | |
8008 | ||
8009 | 2020-02-15 Jonathan Wakely <jwakely@redhat.com> | |
8010 | ||
8011 | * include/bits/erase_if.h (__cpp_lib_erase_if): Define to 202002L. | |
8012 | * include/std/deque: Likewise. | |
8013 | * include/std/forward_list: Likewise. | |
8014 | * include/std/list: Likewise. | |
8015 | * include/std/string: Likewise. | |
8016 | * include/std/vector: Likewise. | |
8017 | * include/std/version: Likewise. | |
8018 | * testsuite/23_containers/deque/erasure.cc: Test for new value. | |
8019 | * testsuite/23_containers/forward_list/erasure.cc: Likewise. | |
8020 | * testsuite/23_containers/list/erasure.cc: Likewise. | |
8021 | * testsuite/23_containers/map/erasure.cc: Likewise. | |
8022 | * testsuite/23_containers/set/erasure.cc: Likewise. | |
8023 | * testsuite/23_containers/unordered_map/erasure.cc: Likewise. | |
8024 | * testsuite/23_containers/unordered_set/erasure.cc: Likewise. | |
8025 | * testsuite/23_containers/vector/erasure.cc: Likewise. | |
8026 | ||
8027 | 2020-02-15 Jonathan Wakely <jwakely@redhat.com> | |
8028 | ||
8029 | * include/bits/random.h (uniform_random_bit_generator): Require min() | |
8030 | and max() to be constant expressions and min() to be less than max(). | |
8031 | * testsuite/26_numerics/random/concept.cc: Check additional cases. | |
8032 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno. | |
8033 | ||
8034 | 2020-02-13 Patrick Palka <ppalka@redhat.com> | |
8035 | ||
8036 | * include/Makefile.am: Add <bits/ranges_uninitialized.h>. | |
8037 | * include/Makefile.in: Regenerate. | |
8038 | * include/bits/ranges_uninitialized.h: New header. | |
8039 | * include/std/memory: Include it. | |
8040 | * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: New | |
8041 | test. | |
8042 | * .../uninitialized_copy/constrained.cc: New test. | |
8043 | * .../uninitialized_default_construct/constrained.cc: New test. | |
8044 | * .../uninitialized_fill/constrained.cc: New test. | |
8045 | * .../uninitialized_move/constrained.cc: New test. | |
8046 | * .../uninitialized_value_construct/constrained.cc: New test. | |
8047 | ||
8048 | * include/Makefile.am: Add bits/ranges_algobase.h | |
8049 | * include/Makefile.in: Regenerate. | |
8050 | * bits/ranges_algo.h: Include <bits/ranges_algobase.h> and refactor | |
8051 | existing #includes. | |
8052 | (__detail::__is_normal_iterator, __detail::is_reverse_iterator, | |
8053 | __detail::__is_move_iterator, copy_result, move_result, | |
8054 | __equal, equal, copy_result, move_result, move_backward_result, | |
8055 | copy_backward_result, __copy_or_move_backward, __copy_or_move, copy, | |
8056 | move, copy_backward, move_backward, copy_n_result, copy_n, fill_n, | |
8057 | fill): Split out into ... | |
8058 | * bits/range_algobase.h: ... this new header. | |
8059 | ||
8060 | 2020-02-12 Patrick Palka <ppalka@redhat.com> | |
8061 | ||
8062 | LWG 3389 and LWG 3390 | |
8063 | * include/bits/stl_iterator.h (move_move_iterator): Use std::move when | |
8064 | constructing the move_iterator with __i. | |
8065 | (counted_iterator::counted_iterator): Use std::move when initializing | |
8066 | M_current with __i. | |
8067 | * testsuite/24_iterators/counted_iterator/lwg3389.cc: New test. | |
8068 | * testsuite/24_iterators/move_iterator/lwg3390.cc: New test. | |
8069 | ||
8070 | 2020-02-12 Sandra Loosemore <sandra@codesourcery.com> | |
8071 | ||
8072 | PR libstdc++/79193 | |
8073 | PR libstdc++/88999 | |
8074 | ||
8075 | * configure: Regenerated. | |
8076 | ||
8077 | 2020-02-12 François Dumont <fdumont@gcc.gnu.org> | |
8078 | ||
8079 | * include/bits/hashtable.h | |
8080 | (_Hashtable<>(_Hashtable&&, std::allocator_type&)): Add | |
8081 | missing std namespace qualification to forward call. | |
8082 | ||
8083 | 2020-02-09 Jonathan Wakely <jwakely@redhat.com> | |
8084 | ||
8085 | * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix | |
8086 | comment. | |
8087 | * testsuite/20_util/function_objects/range.cmp/less.ccL Likewise. | |
8088 | ||
8089 | * include/std/ranges: Fix non-ASCII characters in comment. | |
8090 | ||
8091 | * include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require | |
8092 | equality comparison to be valid and return bool. | |
8093 | (__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison. | |
8094 | * testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check | |
8095 | type with ambiguous conversion to fundamental types. | |
8096 | * testsuite/20_util/function_objects/range.cmp/less.cc: Likewise. | |
8097 | ||
8098 | 2020-02-07 Jonathan Wakely <jwakely@redhat.com> | |
8099 | ||
8100 | * include/bits/iterator_concepts.h (iter_difference_t, iter_value_t): | |
8101 | Use remove_cvref_t. | |
8102 | (readable_traits): Rename to indirectly_readable_traits. | |
8103 | (readable): Rename to indirectly_readable. | |
8104 | (writable): Rename to indirectly_writable. | |
8105 | (__detail::__iter_exchange_move): Do not use remove_reference_t. | |
8106 | (indirectly_swappable): Adjust requires expression parameter types. | |
8107 | expression. | |
8108 | * include/bits/ranges_algo.h (ranges::transform, ranges::replace) | |
8109 | (ranges::replace_if, ranges::generate_n, ranges::generate) | |
8110 | (ranges::remove): Use new name for writable. | |
8111 | * include/bits/stl_iterator.h (__detail::__common_iter_has_arrow): | |
8112 | Use new name for readable. | |
8113 | * include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use | |
8114 | new name for readable_traits. | |
8115 | * testsuite/24_iterators/associated_types/readable.traits.cc: Likewise. | |
8116 | * testsuite/24_iterators/indirect_callable/projected.cc: Adjust for | |
8117 | new definition of indirectly_readable. | |
8118 | ||
8119 | * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change | |
8120 | to take parameters of common_iterator, instead of the common_iterator | |
8121 | type itself. Fix argument for __common_iter_has_arrow constraint. | |
8122 | (iterator_traits<common_iterator<I, S>>::pointer): Adjust. | |
8123 | ||
8124 | 2020-02-07 Jonathan Wakely <jwakely@redhat.com> | |
8125 | ||
8126 | * include/std/ranges (iota_view): Add braces to prevent -Wempty-body | |
8127 | warning. | |
8128 | (basic_istream_view::_Iterator::operator++()): Add missing return. | |
8129 | ||
8130 | 2020-02-07 Patrick Palka <ppalka@redhat.com> | |
8131 | ||
8132 | * include/bits/ranges_algo.h: Remove extraneous &&. | |
8133 | ||
8134 | * include/std/ranges (ranges::__detail::__stream_extractable, | |
8135 | ranges::basic_istream_view, ranges::istream_view): Define. | |
8136 | * testsuite/std/ranges/istream_view: New test. | |
8137 | ||
8138 | Implement C++20 range adaptors | |
8139 | * include/std/ranges: Include <bits/refwrap.h> and <tuple>. | |
8140 | (subrange::_S_store_size): Mark as const instead of constexpr to | |
8141 | avoid what seems to be a bug in GCC. | |
8142 | (__detail::__box): Give it defaulted copy and move constructors. | |
8143 | (ranges::views::_Single::operator()): Mark constexpr. | |
8144 | (ranges::views::_Iota::operator()): Mark constexpr. | |
8145 | (__detail::Empty): Define. | |
8146 | (ranges::views::__closure::_RangeAdaptor, | |
8147 | ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view, | |
8148 | ranges::views::all, ranges::__detail::find_if, | |
8149 | ranges::__detail::find_if_not, ranges::__detail::mismatch, | |
8150 | ranges::detail::min, filter_view, ranges::views::filter, transform_view, | |
8151 | ranges::views::transform, take_view, ranges::views::take, | |
8152 | take_while_view, ranges::views::take_while, drop_view, | |
8153 | ranges::views::drop, join_view, ranges::views::join, | |
8154 | __detail::require_constant, __detail::tiny_range, split_view, | |
8155 | ranges::views::split, ranges::views::_Counted, ranges::views::counted, | |
8156 | common_view, ranges::views::common, reverse_view, | |
8157 | ranges::views::reverse, | |
8158 | ranges::views::__detail::__is_reversible_subrange, | |
8159 | ranges::views::__detail::__is_reverse_view, reverse_view, | |
8160 | ranges::views::reverse, __detail::__has_tuple_element, elements_view, | |
8161 | ranges::views::elements, ranges::views::keys, ranges::views::values): | |
8162 | Define. | |
8163 | (views): Alias for ranges::views. | |
8164 | (tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>, | |
8165 | tuple_element<1, ranges::subrange>): New partial specializations. | |
8166 | * testsuite/std/ranges/adaptors/all.cc: New test. | |
8167 | * testsuite/std/ranges/adaptors/common.cc: Likewise. | |
8168 | * testsuite/std/ranges/adaptors/counted.cc: Likewise. | |
8169 | * testsuite/std/ranges/adaptors/drop.cc: Likewise. | |
8170 | * testsuite/std/ranges/adaptors/drop_while.cc: Likewise. | |
8171 | * testsuite/std/ranges/adaptors/elements.cc: Likewise. | |
8172 | * testsuite/std/ranges/adaptors/filter.cc: Likewise. | |
8173 | * testsuite/std/ranges/adaptors/join.cc: Likewise. | |
8174 | * testsuite/std/ranges/adaptors/reverse.cc: Likewise. | |
8175 | * testsuite/std/ranges/adaptors/split.cc: Likewise. | |
8176 | * testsuite/std/ranges/adaptors/take.cc: Likewise. | |
8177 | * testsuite/std/ranges/adaptors/take_while.cc: Likewise. | |
8178 | * testsuite/std/ranges/adaptors/transform.cc: Likewise. | |
8179 | ||
8180 | 2020-02-07 Jonathan Wakely <jwakely@redhat.com> | |
8181 | ||
8182 | * libsupc++/compare (__cmp_cat::type): Define typedef for underlying | |
8183 | type of enumerations and comparison category types. | |
8184 | (__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type. | |
8185 | (__cmp_cat::_Ncmp::unordered): Change value to 2. | |
8186 | (partial_ordering::_M_value, weak_ordering::_M_value) | |
8187 | (strong_ordering::_M_value): Change type to __cmp_cat::type. | |
8188 | (partial_ordering::_M_is_ordered): Remove data member. | |
8189 | (partial_ordering): Use second bit of _M_value for unordered. Adjust | |
8190 | comparison operators. | |
8191 | (weak_ordering::operator partial_ordering): Simplify to remove | |
8192 | branches. | |
8193 | (operator<=>(unspecified, weak_ordering)): Likewise. | |
8194 | (strong_ordering::operator partial_ordering): Likewise. | |
8195 | (strong_ordering::operator weak_ordering): Likewise. | |
8196 | (operator<=>(unspecified, strong_ordering)): Likewise. | |
8197 | * testsuite/18_support/comparisons/categories/partialord.cc: New test. | |
8198 | * testsuite/18_support/comparisons/categories/strongord.cc: New test. | |
8199 | * testsuite/18_support/comparisons/categories/weakord.cc: New test. | |
8200 | ||
8201 | * include/std/ranges (iota_view::_Iterator): Fix typo in name of | |
8202 | __cpp_lib_three_way_comparison macro and use deduced return type for | |
8203 | operator<=>. | |
8204 | * testsuite/std/ranges/iota/iterator.cc: New test. | |
8205 | ||
8206 | 2020-02-07 Patrick Palka <ppalka@redhat.com> | |
8207 | Jonathan Wakely <jwakely@redhat.com> | |
8208 | ||
8209 | Implement C++20 constrained algorithms | |
8210 | * include/Makefile.am: Add new header. | |
8211 | * include/Makefile.in: Regenerate. | |
8212 | * include/std/algorithm: Include <bits/ranges_algo.h>. | |
8213 | * include/bits/ranges_algo.h: New file. | |
8214 | * testsuite/25_algorithms/adjacent_find/constrained.cc: New test. | |
8215 | * testsuite/25_algorithms/all_of/constrained.cc: New test. | |
8216 | * testsuite/25_algorithms/any_of/constrained.cc: New test. | |
8217 | * testsuite/25_algorithms/binary_search/constrained.cc: New test. | |
8218 | * testsuite/25_algorithms/copy/constrained.cc: New test. | |
8219 | * testsuite/25_algorithms/copy_backward/constrained.cc: New test. | |
8220 | * testsuite/25_algorithms/copy_if/constrained.cc: New test. | |
8221 | * testsuite/25_algorithms/copy_n/constrained.cc: New test. | |
8222 | * testsuite/25_algorithms/count/constrained.cc: New test. | |
8223 | * testsuite/25_algorithms/count_if/constrained.cc: New test. | |
8224 | * testsuite/25_algorithms/equal/constrained.cc: New test. | |
8225 | * testsuite/25_algorithms/equal_range/constrained.cc: New test. | |
8226 | * testsuite/25_algorithms/fill/constrained.cc: New test. | |
8227 | * testsuite/25_algorithms/fill_n/constrained.cc: New test. | |
8228 | * testsuite/25_algorithms/find/constrained.cc: New test. | |
8229 | * testsuite/25_algorithms/find_end/constrained.cc: New test. | |
8230 | * testsuite/25_algorithms/find_first_of/constrained.cc: New test. | |
8231 | * testsuite/25_algorithms/find_if/constrained.cc: New test. | |
8232 | * testsuite/25_algorithms/find_if_not/constrained.cc: New test. | |
8233 | * testsuite/25_algorithms/for_each/constrained.cc: New test. | |
8234 | * testsuite/25_algorithms/generate/constrained.cc: New test. | |
8235 | * testsuite/25_algorithms/generate_n/constrained.cc: New test. | |
8236 | * testsuite/25_algorithms/heap/constrained.cc: New test. | |
8237 | * testsuite/25_algorithms/includes/constrained.cc: New test. | |
8238 | * testsuite/25_algorithms/inplace_merge/constrained.cc: New test. | |
8239 | * testsuite/25_algorithms/is_partitioned/constrained.cc: New test. | |
8240 | * testsuite/25_algorithms/is_permutation/constrained.cc: New test. | |
8241 | * testsuite/25_algorithms/is_sorted/constrained.cc: New test. | |
8242 | * testsuite/25_algorithms/is_sorted_until/constrained.cc: New test. | |
8243 | * testsuite/25_algorithms/lexicographical_compare/constrained.cc: New | |
8244 | test. | |
8245 | * testsuite/25_algorithms/lower_bound/constrained.cc: New test. | |
8246 | * testsuite/25_algorithms/max/constrained.cc: New test. | |
8247 | * testsuite/25_algorithms/max_element/constrained.cc: New test. | |
8248 | * testsuite/25_algorithms/merge/constrained.cc: New test. | |
8249 | * testsuite/25_algorithms/min/constrained.cc: New test. | |
8250 | * testsuite/25_algorithms/min_element/constrained.cc: New test. | |
8251 | * testsuite/25_algorithms/minmax/constrained.cc: New test. | |
8252 | * testsuite/25_algorithms/minmax_element/constrained.cc: New test. | |
8253 | * testsuite/25_algorithms/mismatch/constrained.cc: New test. | |
8254 | * testsuite/25_algorithms/move/constrained.cc: New test. | |
8255 | * testsuite/25_algorithms/move_backward/constrained.cc: New test. | |
8256 | * testsuite/25_algorithms/next_permutation/constrained.cc: New test. | |
8257 | * testsuite/25_algorithms/none_of/constrained.cc: New test. | |
8258 | * testsuite/25_algorithms/nth_element/constrained.cc: New test. | |
8259 | * testsuite/25_algorithms/partial_sort/constrained.cc: New test. | |
8260 | * testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test. | |
8261 | * testsuite/25_algorithms/partition/constrained.cc: New test. | |
8262 | * testsuite/25_algorithms/partition_copy/constrained.cc: New test. | |
8263 | * testsuite/25_algorithms/partition_point/constrained.cc: New test. | |
8264 | * testsuite/25_algorithms/prev_permutation/constrained.cc: New test. | |
8265 | * testsuite/25_algorithms/remove/constrained.cc: New test. | |
8266 | * testsuite/25_algorithms/remove_copy/constrained.cc: New test. | |
8267 | * testsuite/25_algorithms/remove_copy_if/constrained.cc: New test. | |
8268 | * testsuite/25_algorithms/remove_if/constrained.cc: New test. | |
8269 | * testsuite/25_algorithms/replace/constrained.cc: New test. | |
8270 | * testsuite/25_algorithms/replace_copy/constrained.cc: New test. | |
8271 | * testsuite/25_algorithms/replace_copy_if/constrained.cc: New test. | |
8272 | * testsuite/25_algorithms/replace_if/constrained.cc: New test. | |
8273 | * testsuite/25_algorithms/reverse/constrained.cc: New test. | |
8274 | * testsuite/25_algorithms/reverse_copy/constrained.cc: New test. | |
8275 | * testsuite/25_algorithms/rotate/constrained.cc: New test. | |
8276 | * testsuite/25_algorithms/rotate_copy/constrained.cc: New test. | |
8277 | * testsuite/25_algorithms/search/constrained.cc: New test. | |
8278 | * testsuite/25_algorithms/search_n/constrained.cc: New test. | |
8279 | * testsuite/25_algorithms/set_difference/constrained.cc: New test. | |
8280 | * testsuite/25_algorithms/set_intersection/constrained.cc: New test. | |
8281 | * testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New | |
8282 | test. | |
8283 | * testsuite/25_algorithms/set_union/constrained.cc: New test. | |
8284 | * testsuite/25_algorithms/shuffle/constrained.cc: New test. | |
8285 | * testsuite/25_algorithms/sort/constrained.cc: New test. | |
8286 | * testsuite/25_algorithms/stable_partition/constrained.cc: New test. | |
8287 | * testsuite/25_algorithms/stable_sort/constrained.cc: New test. | |
8288 | * testsuite/25_algorithms/swap_ranges/constrained.cc: New test. | |
8289 | * testsuite/25_algorithms/transform/constrained.cc: New test. | |
8290 | * testsuite/25_algorithms/unique/constrained.cc: New test. | |
8291 | * testsuite/25_algorithms/unique_copy/constrained.cc: New test. | |
8292 | * testsuite/25_algorithms/upper_bound/constrained.cc: New test. | |
8293 | ||
8294 | 2020-02-06 Jonathan Wakely <jwakely@redhat.com> | |
8295 | ||
8296 | * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR | |
8297 | number in comment. Fix indentation. | |
8298 | ||
8299 | * include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove | |
8300 | redundant _GLIBCXX20_CONSTEXPR. | |
8301 | ||
8302 | * include/std/ranges (viewable_range): Replace decay_t with | |
8303 | remove_cvref_t (LWG 3375). | |
8304 | ||
8305 | 2020-02-05 Jonathan Wakely <jwakely@redhat.com> | |
8306 | ||
8307 | * include/bits/iterator_concepts.h (iter_reference_t) | |
8308 | (iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t): | |
8309 | Remove workarounds for PR c++/67704. | |
8310 | * testsuite/24_iterators/aliases.cc: New test. | |
8311 | ||
8312 | 2020-02-05 Patrick Palka <ppalka@redhat.com> | |
8313 | ||
8314 | * include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i | |
8315 | when initializing _M_current. | |
8316 | (move_iterator::base): Split into two overloads differing in | |
8317 | ref-qualifiers as in P1207R4 for C++20. | |
8318 | ||
8319 | 2020-02-04 Jonathan Wakely <jwakely@redhat.com> | |
8320 | ||
8321 | * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after | |
8322 | use. | |
8323 | ||
8324 | PR libstdc++/93562 | |
8325 | * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define. | |
8326 | (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it. | |
8327 | * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test. | |
8328 | ||
8329 | 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com> | |
8330 | ||
8331 | * configure: Regenerate. | |
8332 | ||
8333 | 2020-01-31 Patrick Palka <ppalka@redhat.com> | |
8334 | ||
8335 | * testsuite/24_iterators/range_operations/distance.cc: Do not assume | |
8336 | test_range::end() returns the same type as test_range::begin(). | |
8337 | * testsuite/24_iterators/range_operations/next.cc: Likewise. | |
8338 | * testsuite/24_iterators/range_operations/prev.cc: Likewise. | |
8339 | * testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end): | |
8340 | Always return a sentinel<I>. | |
8341 | ||
8342 | 2020-01-29 Jonathan Wakely <jwakely@redhat.com> | |
8343 | ||
8344 | PR libstdc++/92895 | |
8345 | * include/std/stop_token (stop_token::stop_possible()): Call new | |
8346 | _M_stop_possible() function. | |
8347 | (stop_token::stop_requested()): Do not use stop_possible(). | |
8348 | (stop_token::binary_semaphore): New class, as temporary stand-in for | |
8349 | std::binary_semaphore. | |
8350 | (stop_token::_Stop_cb::_M_callback): Add noexcept to type. | |
8351 | (stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done): | |
8352 | New data members for symchronization with stop_callback destruction. | |
8353 | (stop_token::_Stop_cb::_Stop_cb): Make non-template. | |
8354 | (stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute): | |
8355 | Remove. | |
8356 | (stop_token::_Stop_cb::_M_run): New member function. | |
8357 | (stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx): | |
8358 | Remove. | |
8359 | (stop_token::_Stop_state::_M_owners): New data member to track | |
8360 | reference count for ownership. | |
8361 | (stop_token::_Stop_state::_M_value): New data member combining a | |
8362 | spinlock, the stop requested flag, and the reference count for | |
8363 | associated stop_source objects. | |
8364 | (stop_token::_Stop_state::_M_requester): New data member for | |
8365 | synchronization with stop_callback destruction. | |
8366 | (stop_token::_Stop_state::_M_stop_possible()): New member function. | |
8367 | (stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit | |
8368 | of _M_value. | |
8369 | (stop_token::_Stop_state::_M_add_owner) | |
8370 | (stop_token::_Stop_state::_M_release_ownership) | |
8371 | (stop_token::_Stop_state::_M_add_ssrc) | |
8372 | (stop_token::_Stop_state::_M_sub_ssrc): New member functions for | |
8373 | updating reference counts. | |
8374 | (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock) | |
8375 | (stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock) | |
8376 | (stop_token::_Stop_state::_M_try_lock) | |
8377 | (stop_token::_Stop_state::_M_try_lock_and_stop) | |
8378 | (stop_token::_Stop_state::_M_do_try_lock): New member functions for | |
8379 | managing spinlock. | |
8380 | (stop_token::_Stop_state::_M_request_stop): Use atomic operations to | |
8381 | read and update state. Release lock while running callbacks. Use new | |
8382 | data members to synchronize with callback destruction. | |
8383 | (stop_token::_Stop_state::_M_remove_callback): Likewise. | |
8384 | (stop_token::_Stop_state::_M_register_callback): Use atomic operations | |
8385 | to read and update state. | |
8386 | (stop_token::_Stop_state_ref): Handle type to manage _Stop_state, | |
8387 | replacing shared_ptr. | |
8388 | (stop_source::stop_source(const stop_source&)): Update reference count. | |
8389 | (stop_source::operator=(const stop_source&)): Likewise. | |
8390 | (stop_source::~stop_source()): Likewise. | |
8391 | (stop_source::stop_source(stop_source&&)): Define as defaulted. | |
8392 | (stop_source::operator=(stop_source&&)): Establish postcondition on | |
8393 | parameter. | |
8394 | (stop_callback): Enforce preconditions on template parameter. Replace | |
8395 | base class with data member of new _Cb_impl type. | |
8396 | (stop_callback::stop_callback(const stop_token&, Cb&&)) | |
8397 | (stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race. | |
8398 | (stop_callback::_Cb_impl): New type wrapping _Callback member and | |
8399 | defining the _S_execute member function. | |
8400 | * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New | |
8401 | test. | |
8402 | * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test. | |
8403 | * testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test. | |
8404 | * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc: | |
8405 | New test. | |
8406 | * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New | |
8407 | test. | |
8408 | * testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test. | |
8409 | * testsuite/30_threads/stop_token/stop_source/assign.cc: New test. | |
8410 | * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New | |
8411 | test. | |
8412 | ||
8413 | * libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use | |
8414 | three_way_comparable_with. | |
8415 | (__detail::__3way_cmp_with): Remove workaround for fixed bug. | |
8416 | (compare_three_way::operator()): Remove redundant constraint from | |
8417 | requires-clause. | |
8418 | (__detail::_Synth3way::operator()): Use three_way_comparable_with | |
8419 | instead of workaround. | |
8420 | * testsuite/18_support/comparisons/object/93479.cc: Prune extra | |
8421 | output due to simplified constraints on compare_three_way::operator(). | |
8422 | ||
8423 | PR libstdc++/93479 | |
8424 | * libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid. | |
8425 | * testsuite/18_support/comparisons/object/93479.cc: New test. | |
8426 | ||
8427 | * testsuite/std/ranges/access/end.cc: Do not assume test_range::end() | |
8428 | returns the same type as test_range::begin(). Add comments. | |
8429 | * testsuite/std/ranges/access/rbegin.cc: Likewise. | |
8430 | * testsuite/std/ranges/access/rend.cc: Likewise. | |
8431 | * testsuite/std/ranges/range.cc: Do not assume the sentinel for | |
8432 | test_range is the same as its iterator type. | |
8433 | * testsuite/util/testsuite_iterators.h (test_range::sentinel): Add | |
8434 | operator- overloads to satisfy sized_sentinel_for when the iterator | |
8435 | satisfies random_access_iterator. | |
8436 | ||
8437 | 2020-01-28 Jonathan Wakely <jwakely@redhat.com> | |
8438 | ||
8439 | PR libstdc++/93470 | |
8440 | * include/bits/refwrap.h (reference_wrapper::operator()): Restrict | |
8441 | static assertion to object types. | |
8442 | ||
8443 | PR libstdc++/93325 | |
8444 | * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for | |
8445 | clock_gettime instead of explicit glibc version check. | |
8446 | * configure: Regenerate. | |
8447 | ||
8448 | 2020-01-28 Martin Liska <mliska@suse.cz> | |
8449 | ||
8450 | PR libstdc++/93478 | |
8451 | * include/std/atomic: Fix typo. | |
8452 | * include/std/optional: Likewise. | |
8453 | ||
8454 | 2020-01-27 Andrew Burgess <andrew.burgess@embecosm.com> | |
8455 | ||
8456 | * configure: Regenerate. | |
8457 | ||
8458 | 2020-01-27 Jonathan Wakely <jwakely@redhat.com> | |
8459 | ||
8460 | PR libstdc++/93426 | |
8461 | * include/std/span (span): Fix deduction guide. | |
8462 | * testsuite/23_containers/span/deduction.cc: New test. | |
8463 | ||
8464 | 2020-01-24 Jonathan Wakely <jwakely@redhat.com> | |
8465 | ||
8466 | * libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type. | |
8467 | (__cmp_cat::_Ord::equivalent): Add enumerator. | |
8468 | (__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less | |
8469 | and greater. | |
8470 | (partial_ordering, weak_ordering, strong_ordering): Remove | |
8471 | constructors taking __cmp_cat::_Eq parameters. Use renamed | |
8472 | enumerators. | |
8473 | ||
8474 | 2020-01-24 Maciej W. Rozycki <macro@wdc.com> | |
8475 | ||
8476 | * acinclude.m4: Handle `--with-toolexeclibdir='. | |
8477 | * Makefile.in: Regenerate. | |
8478 | * aclocal.m4: Regenerate. | |
8479 | * configure: Regenerate. | |
8480 | * doc/Makefile.in: Regenerate. | |
8481 | * include/Makefile.in: Regenerate. | |
8482 | * libsupc++/Makefile.in: Regenerate. | |
8483 | * po/Makefile.in: Regenerate. | |
8484 | * python/Makefile.in: Regenerate. | |
8485 | * src/Makefile.in: Regenerate. | |
8486 | * src/c++11/Makefile.in: Regenerate. | |
8487 | * src/c++17/Makefile.in: Regenerate. | |
8488 | * src/c++98/Makefile.in: Regenerate. | |
8489 | * src/filesystem/Makefile.in: Regenerate. | |
8490 | * testsuite/Makefile.in: Regenerate. | |
8491 | ||
8492 | 2020-01-23 Alexandre Oliva <oliva@adacore.com> | |
8493 | ||
8494 | * crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros. | |
8495 | * configure: Rebuild. | |
8496 | ||
8497 | * testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t. | |
8498 | ||
8499 | 2020-01-23 Jonathan Wakely <jwakely@redhat.com> | |
8500 | ||
8501 | PR libstdc++/91947 | |
8502 | * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify | |
8503 | rule. | |
8504 | * include/Makefile.in: Regenerate. | |
8505 | ||
8506 | 2020-01-20 Jonathan Wakely <jwakely@redhat.com> | |
8507 | ||
8508 | * doc/xml/faq.xml: Fix grammar. | |
8509 | * doc/xml/manual/appendix_contributing.xml: Improve instructions. | |
8510 | * doc/xml/manual/spine.xml: Update copyright years. | |
8511 | * doc/html/*: Regenerate. | |
8512 | ||
8513 | 2020-01-19 Eric S. Raymond <esr@thyrsus.com> | |
8514 | ||
8515 | * doc/xml/faq.xml: Update for SVN -> Git transition. | |
8516 | * doc/xml/manual/appendix_contributing.xml: Likewise. | |
8517 | * doc/xml/manual/status_cxx1998.xml: Likewise. | |
8518 | * doc/xml/manual/status_cxx2011.xml: Likewise. | |
8519 | * doc/xml/manual/status_cxx2014.xml: Likewise. | |
8520 | * doc/xml/manual/status_cxx2017.xml: Likewise. | |
8521 | * doc/xml/manual/status_cxx2020.xml: Likewise. | |
8522 | * doc/xml/manual/status_cxxtr1.xml: Likewise. | |
8523 | * doc/xml/manual/status_cxxtr24733.xml: Likewise. | |
8524 | ||
8525 | 2020-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
8526 | ||
8527 | * include/Makefile.am: Add coroutine to the std set. | |
8528 | * include/Makefile.in: Regenerated. | |
8529 | * include/std/coroutine: New file. | |
8530 | ||
8531 | 2020-01-17 Jonathan Wakely <jwakely@redhat.com> | |
8532 | ||
8533 | PR libstdc++/92376 | |
8534 | * include/bits/c++config: Only do PSTL config when the header is | |
8535 | present, to fix freestanding. | |
8536 | * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation | |
8537 | functions if they were detected by configure. | |
8538 | ||
8539 | 2020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de> | |
8540 | Matthew Bauer <mjbauer95@gmail.com> | |
8541 | Jonathan Wakely <jwakely@redhat.com> | |
8542 | ||
8543 | PR bootstrap/64271 (partial) | |
8544 | * config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type | |
8545 | to unsigned short. | |
8546 | (ctype_base::alpha, ctype_base::digit, ctype_base::xdigit) | |
8547 | (ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync | |
8548 | definitions with NetBSD upstream. | |
8549 | (ctype_base::blank): Use _CTYPE_BL. | |
8550 | * config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove | |
8551 | Declaration. | |
8552 | (ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_. | |
8553 | (ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char | |
8554 | parameters to unsigned char. | |
8555 | * config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise. | |
8556 | ||
8557 | 2020-01-16 François Dumont <fdumont@gcc.gnu.org> | |
8558 | ||
8559 | PR libstdc++/91263 | |
8560 | * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend. | |
8561 | * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>. | |
8562 | (_Equality_base): Remove. | |
8563 | (_Equality<>::_M_equal): Review implementation. Use | |
8564 | std::is_permutation. | |
8565 | * testsuite/23_containers/unordered_multiset/operators/1.cc | |
8566 | (Hash, Equal, test02, test03): New. | |
8567 | * testsuite/23_containers/unordered_set/operators/1.cc | |
8568 | (Hash, Equal, test02, test03): New. | |
8569 | ||
8570 | 2020-01-15 Jonathan Wakely <jwakely@redhat.com> | |
8571 | ||
8572 | PR libstdc++/93267 | |
8573 | * include/bits/iterator_concepts.h (__max_diff_type, __max_size_type): | |
8574 | Move here from <bits/range_access.h> and define using __int128 when | |
8575 | available. | |
8576 | (__is_integer_like, __is_signed_integer_like): Move here from | |
8577 | <bits/range_access.h>. | |
8578 | (weakly_incrementable): Use __is_signed_integer_like. | |
8579 | * include/bits/range_access.h (__max_diff_type, __max_size_type) | |
8580 | (__is_integer_like, __is_signed_integer_like): Move to | |
8581 | <bits/iterator_concepts.h>. | |
8582 | (__make_unsigned_like_t): Move here from <ranges>. | |
8583 | * include/std/ranges (__make_unsigned_like_t): Move to | |
8584 | <bits/range_access.h>. | |
8585 | (iota_view): Replace using-directive with using-declarations. | |
8586 | * testsuite/std/ranges/iota/93267.cc: New test. | |
8587 | * testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory. | |
8588 | ||
8589 | 2020-01-13 Jonathan Wakely <jwakely@redhat.com> | |
8590 | ||
8591 | PR libstdc++/93244 | |
8592 | * include/bits/fs_path.h (path::generic_string<C,A>) | |
8593 | [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash. | |
8594 | * testsuite/27_io/filesystem/path/generic/generic_string.cc: Check | |
8595 | root-dir is converted to forward slash in generic pathname. | |
8596 | * testsuite/27_io/filesystem/path/generic/utf.cc: New test. | |
8597 | * testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test. | |
8598 | ||
8599 | PR libstdc++/58605 | |
8600 | * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization): | |
8601 | Define. | |
8602 | (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>) | |
8603 | (__atomic_float): Add default member initializer for C++20. | |
8604 | * include/std/atomic (atomic): Likewise. | |
8605 | (atomic::atomic()): Remove noexcept-specifier on default constructor. | |
8606 | * include/std/version (__cpp_lib_atomic_value_initialization): Define. | |
8607 | * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line | |
8608 | number. | |
8609 | * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise. | |
8610 | * testsuite/29_atomics/atomic/cons/value_init.cc: New test. | |
8611 | * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test. | |
8612 | * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust | |
8613 | expected result for is_trivially_default_constructible. | |
8614 | * testsuite/29_atomics/atomic_float/requirements.cc: Likewise. | |
8615 | * testsuite/29_atomics/atomic_float/value_init.cc: New test. | |
8616 | * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise. | |
8617 | * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise. | |
8618 | * testsuite/29_atomics/atomic_integral/cons/value_init.cc | |
8619 | * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust | |
8620 | expected results for is_trivially_default_constructible. | |
8621 | * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add | |
8622 | new test generator. | |
8623 | ||
8624 | 2020-01-10 Jonathan Wakely <jwakely@redhat.com> | |
8625 | ||
8626 | * testsuite/util/testsuite_iterators.h: Improve comment. | |
8627 | ||
8628 | * testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11 | |
8629 | initialization syntax. | |
8630 | ||
8631 | PR libstdc++/92285 | |
8632 | * include/bits/streambuf_iterator.h (istreambuf_iterator): Make type | |
8633 | of base class independent of __cplusplus value. | |
8634 | [__cplusplus < 201103L] (istreambuf_iterator::reference): Override the | |
8635 | type defined in the base class | |
8636 | * testsuite/24_iterators/istreambuf_iterator/92285.cc: New test. | |
8637 | * testsuite/24_iterators/istreambuf_iterator/requirements/ | |
8638 | base_classes.cc: Adjust expected base class for C++98. | |
8639 | ||
8640 | 2020-01-09 Olivier Hainque <hainque@adacore.com> | |
8641 | ||
8642 | * doc/xml/manual/appendix_contributing.xml: Document _C2 | |
8643 | as a reserved identifier, by VxWorks. | |
8644 | * include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2. | |
8645 | * include/bits/stl_multimap.h: Likewise. | |
8646 | ||
8647 | 2020-01-09 Jonathan Wakely <jwakely@redhat.com> | |
8648 | ||
8649 | * include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==) | |
8650 | (_ExtPtr_allocator::operator!=): Add missing const qualifiers. | |
8651 | * include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add | |
8652 | partial specialization to disambiguate the two constrained | |
8653 | specializations. | |
8654 | ||
8655 | * include/experimental/type_traits (experimental::is_pod_v): Disable | |
8656 | -Wdeprecated-declarations warnings around reference to std::is_pod. | |
8657 | * include/std/type_traits (is_pod_v): Likewise. | |
8658 | * testsuite/18_support/max_align_t/requirements/2.cc: Also check | |
8659 | is_standard_layout and is_trivial. Do not check is_pod for C++20. | |
8660 | * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc: | |
8661 | Add -Wno-deprecated for C++20. | |
8662 | * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise. | |
8663 | * testsuite/20_util/is_pod/value.cc: Likewise. | |
8664 | * testsuite/experimental/type_traits/value.cc: Likewise. | |
8665 | ||
8666 | 2020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com> | |
8667 | ||
8668 | * include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro. | |
8669 | * include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20. | |
8670 | * testuite/20_util/is_pod/deprecated-2a.cc: New test. | |
8671 | ||
8672 | 2020-01-09 Jonathan Wakely <jwakely@redhat.com> | |
8673 | ||
8674 | PR libstdc++/93205 | |
8675 | * include/bits/random.h (operator>>): Check stream operation succeeds. | |
8676 | * include/bits/random.tcc (operator<<): Remove redundant __ostream_type | |
8677 | typedefs. | |
8678 | (operator>>): Remove redundant __istream_type typedefs. Check stream | |
8679 | operations succeed. | |
8680 | (__extract_params): New function to fill a vector from a stream. | |
8681 | * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line. | |
8682 | ||
8683 | PR libstdc++/93208 | |
8684 | * config/abi/pre/gnu.ver: Add new exports. | |
8685 | * include/std/memory_resource (memory_resource::~memory_resource()): | |
8686 | Do not define inline. | |
8687 | (monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise. | |
8688 | * src/c++17/memory_resource.cc (memory_resource::~memory_resource()): | |
8689 | Define. | |
8690 | (monotonic_buffer_resource::~monotonic_buffer_resource()): Define. | |
8691 | * testsuite/20_util/monotonic_buffer_resource/93208.cc: New test. | |
8692 | ||
8693 | 2020-01-09 François Dumont <fdumont@gcc.gnu.org> | |
8694 | ||
8695 | PR libstdc++/92124 | |
8696 | * include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New | |
8697 | template alias. | |
8698 | (_Hashtable<>::__fwd_value_for): New. | |
8699 | (_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template | |
8700 | parameter. | |
8701 | (_Hashtable<>::_M_assign<>): Add _Ht template parameter. | |
8702 | (_Hashtable<>::operator=(const _Hashtable<>&)): Adapt. | |
8703 | (_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept | |
8704 | with std::move. | |
8705 | (_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt. | |
8706 | (_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)): | |
8707 | Adapt. | |
8708 | (_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)): | |
8709 | Adapt. | |
8710 | * testsuite/23_containers/unordered_set/92124.cc: New. | |
8711 | ||
8712 | 2020-01-08 Jonathan Wakely <jwakely@redhat.com> | |
8713 | ||
8714 | PR libstdc++/93201 | |
8715 | * src/c++17/fs_ops.cc (do_remove_all): New function implementing more | |
8716 | detailed error reporting for remove_all. Check result of recursive | |
8717 | call before incrementing iterator. | |
8718 | (remove_all(const path&), remove_all(const path&, error_code&)): Use | |
8719 | do_remove_all. | |
8720 | * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check | |
8721 | result of recursive call before incrementing iterator. | |
8722 | * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors | |
8723 | are reported correctly. | |
8724 | * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. | |
8725 | ||
8726 | 2020-01-07 Thomas Rodgers <trodgers@redhat.com> | |
8727 | ||
8728 | * include/std/condition_variable | |
8729 | (condition_variable_any::wait_on): Rename to match current draft | |
8730 | standard. | |
8731 | (condition_variable_any::wait_on_until): Likewise. | |
8732 | (condition_variable_any::wait_on_for): Likewise. | |
8733 | * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc: | |
8734 | Adjust tests to account for renamed methods. | |
8735 | ||
8736 | 2020-01-07 François Dumont <fdumont@gcc.gnu.org> | |
8737 | ||
8738 | PR libstdc++/92124 | |
8739 | * include/bits/stl_tree.h | |
8740 | (_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace | |
8741 | std::move_if_noexcept by std::move. | |
8742 | * testsuite/23_containers/map/92124.cc: New. | |
8743 | * testsuite/23_containers/set/92124.cc: New. | |
8744 | ||
8745 | 2020-01-06 Jonathan Wakely <jwakely@redhat.com> | |
8746 | ||
8747 | * include/std/stop_token (stop_token): Remove operator!= (LWG 3254). | |
8748 | (stop_source): Likewise (LWG 3362). | |
8749 | * testsuite/30_threads/stop_token/stop_source.cc: Test equality | |
8750 | comparisons. | |
8751 | ||
8752 | * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp) | |
8753 | (lexicographical_compare_three_way): Do not depend on | |
8754 | __cpp_lib_concepts. | |
8755 | * include/std/version (__cpp_lib_three_way_comparison): Only define | |
8756 | when __cpp_lib_concepts is defined. | |
8757 | * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise. | |
8758 | ||
8759 | 2020-01-03 Jonathan Wakely <jwakely@redhat.com> | |
8760 | ||
8761 | * include/bits/stl_algobase.h (lexicographical_compare_three_way): | |
8762 | Only define four-argument overload when __cpp_lib_concepts is defined. | |
8763 | ||
8764 | 2020-01-01 John David Anglin <danglin@gcc.gnu.org> | |
8765 | ||
8766 | * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. | |
8767 | ||
8768 | 2020-01-01 Jakub Jelinek <jakub@redhat.com> | |
8769 | ||
8770 | Update copyright years. | |
8771 | \f | |
8772 | Copyright (C) 2020 Free Software Foundation, Inc. | |
8773 | ||
8774 | Copying and distribution of this file, with or without modification, | |
8775 | are permitted in any medium without royalty provided the copyright | |
8776 | notice and this notice are preserved. |