mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-20 01:25:03 +08:00
333 lines
12 KiB
Plaintext
333 lines
12 KiB
Plaintext
2022-01-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
|
||
directive.
|
||
|
||
2022-01-12 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/103955
|
||
* src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
|
||
Track the excess precision separately from the effective
|
||
precision. Avoid overflow in bounds check by splitting it into
|
||
two checks.
|
||
(__floating_to_chars_precision): Avoid overflow in bounds checks
|
||
similarly.
|
||
* testsuite/20_util/to_chars/103955.cc: New test.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103726
|
||
* include/Makefile.am: Install <source_location> for
|
||
freestanding.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/std/version (__cpp_lib_source_location): Define for
|
||
freestanding.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
|
||
Add neoxcept (LWG 3593).
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/ranges (ranges::__detail::__box): Add constexpr to
|
||
assignment operators (LWG 3572).
|
||
* testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
|
||
view that uses copyable-box.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103726
|
||
* include/Makefile.am: Install <coroutine> for freestanding.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/std/coroutine: Adjust headers and preprocessor
|
||
conditions.
|
||
(__coroutine_traits_impl): Use concepts when available.
|
||
[_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/ostream (operator<<(basic_ostream&, charT)):
|
||
Use unformatted input if no padding is needed.
|
||
(operator<<(basic_ostream<char>&, char)): Likewise.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103891
|
||
* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
|
||
Define.
|
||
* include/std/variant (__cpp_lib_variant): Only define C++20
|
||
value when the compiler is known to support conditionally
|
||
trivial destructors.
|
||
* include/std/version (__cpp_lib_variant): Likewise.
|
||
|
||
2022-01-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_iterator.h (common_iterator): Add constexpr
|
||
to all member functions (LWG 3574).
|
||
* testsuite/24_iterators/common_iterator/1.cc: Evaluate some
|
||
tests as constant expressions.
|
||
* testsuite/24_iterators/common_iterator/2.cc: Likewise.
|
||
|
||
2022-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/77760
|
||
* include/bits/locale_facets_nonio.h (__time_get_state): New struct.
|
||
(time_get::_M_extract_via_format): Declare new method with
|
||
__time_get_state& as an extra argument.
|
||
* include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
|
||
__state argument, set various fields in it while parsing. Handle %j,
|
||
%U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
|
||
for %p immediately. Add a wrapper around the method without the
|
||
__state argument for backwards compatibility.
|
||
(_M_extract_num): Remove all __len == 4 special cases.
|
||
(time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
|
||
initialize __state, pass it to _M_extract_via_format and finalize it
|
||
at the end.
|
||
(do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
|
||
69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
|
||
(get): If do_get isn't overloaded from the locale_facets_nonio.tcc
|
||
version, don't call do_get but call _M_extract_via_format instead to
|
||
pass around state.
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
|
||
with extra __time_get_state and __time_get_state::_M_finalize_state.
|
||
* src/c++98/locale_facets.cc (is_leap, day_of_the_week,
|
||
day_of_the_year): New functions in anon namespace.
|
||
(mon_yday): New var in anon namespace.
|
||
(__time_get_state::_M_finalize_state): Define.
|
||
* testsuite/22_locale/time_get/get/char/4.cc: New test.
|
||
* testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
|
||
* testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
|
||
as year 197AD instead of error.
|
||
* testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
|
||
year 2001 instead of error.
|
||
* testsuite/22_locale/time_get/get_year/char/6.cc: New test.
|
||
* testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
|
||
197 as year 197AD instead of error.
|
||
* testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
|
||
1 as year 2001 instead of error.
|
||
* testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
|
||
|
||
2022-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103866
|
||
* acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
|
||
nothing for freestanding builds.
|
||
(GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
|
||
* configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
|
||
with --without-headers. Do not use GCC_HEADER_STDINT for
|
||
freestanding builds.
|
||
* libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
|
||
for freestanding builds.
|
||
* configure: Regenerate.
|
||
* Makefile.in: Regenerate.
|
||
* doc/Makefile.in: Regenerate.
|
||
* include/Makefile.in: Regenerate.
|
||
* libsupc++/Makefile.in: Regenerate.
|
||
* po/Makefile.in: Regenerate.
|
||
* python/Makefile.in: Regenerate.
|
||
* src/Makefile.in: Regenerate.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++20/Makefile.in: Regenerate.
|
||
* src/c++98/Makefile.in: Regenerate.
|
||
* src/filesystem/Makefile.in: Regenerate.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
2022-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
|
||
Add dg-timeout-factor directive.
|
||
* testsuite/28_regex/basic_regex/84110.cc: Likewise.
|
||
* testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
|
||
* testsuite/28_regex/match_results/102667.cc: Likewise.
|
||
|
||
2022-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/using.xml: Update documentation around default
|
||
-std option.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2022-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/100017
|
||
* src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
|
||
2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* testsuite/18_support/type_info/constexpr.cc: Add explicit
|
||
-fdelete-null-pointer-checks option.
|
||
|
||
2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103853
|
||
* include/bits/forward_list.tcc (forward_list::merge): Check for
|
||
self-merge.
|
||
* testsuite/23_containers/forward_list/operations/merge.cc: New test.
|
||
|
||
2022-01-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex.h (basic_regex, match_results): Qualify
|
||
name in friend declaration, to work around Clang bug.
|
||
|
||
2022-01-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
|
||
|
||
2022-01-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103911
|
||
* include/std/charconv (__from_chars_alpha_to_num): Return
|
||
char instead of unsigned char. Change invalid return value to
|
||
127 instead of using numeric trait.
|
||
(__from_chars_alnum): Fix comment. Do not use std::isdigit.
|
||
Change type of variable to char.
|
||
|
||
2022-01-05 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/68303
|
||
* include/bits/hashtable_policy.h
|
||
(_Hashtable_hash_traits<_Hash>): New.
|
||
(_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
|
||
(_Hashtable_base<>::_M_key_equals): New.
|
||
(_Hashtable_base<>::_M_equals): Use latter.
|
||
(_Hashtable_base<>::_M_key_equals_tr): New.
|
||
(_Hashtable_base<>::_M_equals_tr): Use latter.
|
||
* include/bits/hashtable.h
|
||
(_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
|
||
(_Hashtable<>::find): Loop through elements to look for key if size is lower
|
||
than __small_size_threshold().
|
||
(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
|
||
(_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
|
||
(_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
|
||
(_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
|
||
(_Hashtable<>::_M_find_before_node(const key_type&)): New.
|
||
(_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
|
||
(_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
|
||
* src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
|
||
* testsuite/util/testsuite_performance.h
|
||
(report_performance): Use 9 width to display memory.
|
||
* testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
|
||
New performance test case.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103919
|
||
* include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
|
||
Relax constraints on string_view parameter.
|
||
* include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
|
||
ARM EABI.
|
||
* include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
|
||
* include/std/version (__cpp_lib_constexpr_typeinfo): Define.
|
||
* libsupc++/tinfo.cc: Add #error to ensure non-inline definition
|
||
is emitted.
|
||
(type_info::__equal): Define alias symbol.
|
||
* libsupc++/typeinfo (type_info::before): Combine different
|
||
implementations into one.
|
||
(type_info::operator==): Likewise. Use address equality for
|
||
constant evaluation. Call __equal for targets that require the
|
||
definition to be non-inline.
|
||
* testsuite/18_support/type_info/constexpr.cc: New test.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++11/cxx11-ios_failure.cc (io_error_category): Define
|
||
class and virtual functions as 'final'.
|
||
(io_category_instance): Use constinit union to make the object
|
||
immortal.
|
||
* src/c++11/future.cc (future_error_category): Define class and
|
||
virtual functions as 'final'.
|
||
(future_category_instance): Use constinit union.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
|
||
versioned namespace from the type name that is printed.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
|
||
printer for std::regex NFA states.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/23_containers/forward_list/operations/1.cc: Fill in
|
||
placeholders in comments.
|
||
* testsuite/23_containers/forward_list/operations/2.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/forward_list/operations/3.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/forward_list/operations/4.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/forward_list/operations/5.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/forward_list/operations/6.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/forward_list/operations/7.cc:
|
||
Likewise.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103848
|
||
* include/bits/stl_deque.h (operator-): Do not use 0 as null
|
||
pointer constant.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
|
||
Use std::_Construct for construct.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/103877
|
||
* doc/xml/faq.xml: Add '-x c++' to preprocessor command.
|
||
* doc/html/faq.html: Regenerate.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex.h (__regex_algo_impl): Change __policy and
|
||
__match_mode template parameters to be function parameters.
|
||
(regex_match, regex_search): Pass policy and match mode as
|
||
function arguments.
|
||
* include/bits/regex.tcc (__regex_algo_impl): Change template
|
||
parameters to function parameters.
|
||
* include/bits/regex_compiler.h (_RegexTranslatorBase): Use
|
||
'if constexpr' for conditions using template parameters.
|
||
(_RegexTranslator): Likewise.
|
||
* include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
|
||
Likewise.
|
||
* testsuite/util/testsuite_regex.h (regex_match_debug)
|
||
(regex_search_debug): Move template arguments to function
|
||
arguments.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_regex.h (regex_match_debug): Compare
|
||
results even if the match failed.
|
||
|
||
2022-01-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/regex_compiler.tcc: Adjust all calls to
|
||
__throw_regex_error.
|
||
* include/bits/regex_error.h (__throw_regex_error): Add noreturn
|
||
attribute.
|
||
* include/bits/regex_scanner.tcc: Likewise.
|
||
* src/c++11/regex.cc (desc): New helper function.
|
||
(regex_error::regex_error(error_type)): Use desc to get a string
|
||
corresponding to the error code.
|
||
|
||
|
||
Copyright (C) 2022 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|