From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2168) id 950803858D38; Sat, 15 Oct 2022 00:19:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 950803858D38 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1665793140; bh=QAL83SuswuDeqd5vrZ2aY9U7PB0ErylQsqDVbQeUvjA=; h=From:To:Subject:Date:From; b=aSvlhD6thLpl7g1LN0WvJGPD1frhaeXOObnoerH02aGpFcl6SsQGOWDwDGplKSy8J tkv4x9ef4pG62itH0O9mQNJS7WwgYyI1P+huaVQVi230RMGp2tI6kM8U9ECrDJTkIo oVZj0wPSFK4sYy2BRpHzXk6CzzR+7YLInWjuYXWA= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: GCC Administrator To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-3311] Daily bump. X-Act-Checkin: gcc X-Git-Author: GCC Administrator X-Git-Refname: refs/heads/master X-Git-Oldrev: 36d20fa4a83d1a294462c2622ca76eac93465c2c X-Git-Newrev: baeec7cc83b19b46d1c73523f06efa7ea2b30390 Message-Id: <20221015001900.950803858D38@sourceware.org> Date: Sat, 15 Oct 2022 00:19:00 +0000 (GMT) List-Id: https://gcc.gnu.org/g:baeec7cc83b19b46d1c73523f06efa7ea2b30390 commit r13-3311-gbaeec7cc83b19b46d1c73523f06efa7ea2b30390 Author: GCC Administrator Date: Sat Oct 15 00:17:38 2022 +0000 Daily bump. Diff: --- gcc/ChangeLog | 92 ++++++++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/c-family/ChangeLog | 19 ++++++++ gcc/c/ChangeLog | 23 ++++++++++ gcc/cp/ChangeLog | 76 ++++++++++++++++++++++++++++++++ gcc/fortran/ChangeLog | 6 +++ gcc/testsuite/ChangeLog | 115 ++++++++++++++++++++++++++++++++++++++++++++++++ libcpp/ChangeLog | 17 +++++++ libgcc/ChangeLog | 21 +++++++++ libiberty/ChangeLog | 8 ++++ libstdc++-v3/ChangeLog | 24 ++++++++++ 11 files changed, 402 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 93fd9ef1bb2..c1fc2ecb628 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,95 @@ +2022-10-14 Aldy Hernandez + + * value-range.cc (frange::set): Implement distinction between + HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS. + +2022-10-14 Aldy Hernandez + + * gimple-range-op.cc (class cfn_copysign): New. + (gimple_range_op_handler::maybe_builtin_call): Add + CFN_BUILT_IN_COPYSIGN*. + +2022-10-14 Aldy Hernandez + + * real.h (real_isdenormal): Check rvc_normal. + * value-range.cc (range_tests_floats): New test. + +2022-10-14 Aldy Hernandez + + * gimple-range-op.cc + (gimple_range_op_handler::maybe_builtin_call): Replace + CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN. + +2022-10-14 Aldy Hernandez + + * value-range.cc (frange::set): Normalize ranges for both bounds. + +2022-10-14 Aldy Hernandez + + * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS. + +2022-10-14 Aldy Hernandez + + * gimple-range-op.cc + (gimple_range_op_handler::maybe_builtin_call): Add + CFN_BUILT_IN_SIGNBIT[FL]* entries. + +2022-10-14 Richard Biener + + PR tree-optimization/107254 + * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): + For permutes also analyze live lanes. + (vect_schedule_slp_node): For permutes also code generate + live lane extracts. + +2022-10-14 Eric Botcazou + + PR target/107248 + * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame + blockage for leaf functions. + (sparc_flat_expand_prologue): Emit frame instead of full blockage. + (sparc_expand_epilogue): Emit a frame blockage for leaf functions. + (sparc_flat_expand_epilogue): Emit frame instead of full blockage. + +2022-10-14 Jakub Jelinek + + * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE. + * tree.h (bfloat16_type_node): Define. + * tree.cc (excess_precision_type): Promote bfloat16_type_mode + like float16_type_mode. + (build_common_tree_nodes): Initialize bfloat16_type_node if + BFmode is supported. + * expmed.h (maybe_expand_shift): Declare. + * expmed.cc (maybe_expand_shift): No longer static. + * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF + conversions. If there is no optab, handle BF -> {DF,XF,TF,HF} + conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add + -ffast-math generic implementation for BF -> SF and SF -> BF + conversions. + * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New. + * builtins.def (BUILT_IN_NANSF16B): New builtin. + * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B. + * config/i386/i386.cc (classify_argument): Handle E_BCmode. + (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode + for -msse2. + (ix86_mangle_type): Mangle BFmode as DF16b. + (ix86_invalid_conversion, ix86_invalid_unary_op, + ix86_invalid_binary_op): Remove. + (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP, + TARGET_INVALID_BINARY_OP): Don't redefine. + * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove. + (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than + ix86_bf16_type_node, only create it if still NULL. + * config/i386/i386-builtin-types.def (BFLOAT16): Likewise. + * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders. + +2022-10-14 Jakub Jelinek + + PR middle-end/323 + PR c++/107097 + * doc/invoke.texi (-fexcess-precision=standard): Mention that the + option now also works in C++. + 2022-10-13 Eric Botcazou * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 66947c0b32d..88e8f3fec27 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20221014 +20221015 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index df4dcf2895f..2047e2e65ec 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,22 @@ +2022-10-14 Jakub Jelinek + + * c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node, + predefine __BFLT16_*__ macros and for C++23 also + __STDCPP_BFLOAT16_T__. Predefine bfloat16_type_node related + macros for -fbuilding-libgcc. + * c-lex.cc (interpret_float): Handle CPP_N_BFLOAT16. + +2022-10-14 Jakub Jelinek + + PR middle-end/323 + PR c++/107097 + * c-common.def (EXCESS_PRECISION_EXPR): Remove comment part about + the tree being specific to C/ObjC. + * c-opts.cc (c_common_post_options): Handle flag_excess_precision + in C++ the same as in C. + * c-lex.cc (interpret_float): Set const_type to excess_precision () + even for C++. + 2022-10-13 Joseph Myers * c-cppbuiltin.cc (builtin_define_float_constants): Do not use diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index a25e1b454c3..d28585b768b 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,26 @@ +2022-10-14 Jakub Jelinek + + * c-typeck.cc (convert_arguments): Don't promote __bf16 to + double. + +2022-10-14 Joseph Myers + + * c-decl.cc (build_compound_literal): Add parameter scspecs. + Handle storage class specifiers. + * c-parser.cc (c_token_starts_compound_literal) + (c_parser_compound_literal_scspecs): New. + (c_parser_postfix_expression_after_paren_type): Add parameter + scspecs. Call pedwarn_c11 for use of storage class specifiers. + Update call to build_compound_literal. + (c_parser_cast_expression, c_parser_sizeof_expression) + (c_parser_alignof_expression): Handle storage class specifiers for + compound literals. Update calls to + c_parser_postfix_expression_after_paren_type. + (c_parser_postfix_expression): Update syntax comment. + * c-tree.h (build_compound_literal): Update prototype. + * c-typeck.cc (c_mark_addressable): Diagnose taking address of + register compound literal. + 2022-10-07 Qing Zhao * c-decl.cc (flexible_array_member_type_p): New function. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 24bb33f3581..a9983c13466 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,79 @@ +2022-10-14 Patrick Palka + + PR c++/106304 + * constexpr.cc (cxx_dynamic_cast_fn_p): Check for abi_node + instead of global_namespace. + * rtti.cc (build_dynamic_cast_1): Set DECL_CONTEXT and + DECL_SOURCE_LOCATION when building dynamic_cast_node. Push + it into the namespace. + +2022-10-14 Jakub Jelinek + + * cp-tree.h (extended_float_type_p): Return true for + bfloat16_type_node. + * typeck.cc (cp_compare_floating_point_conversion_ranks): Set + extended{1,2} if mv{1,2} is bfloat16_type_node. Adjust comment. + +2022-10-14 Jakub Jelinek + + PR c/82071 + PR c/87390 + PR c++/107097 + * cp-tree.h (cp_ep_convert_and_check): Remove. + * cvt.cc (cp_ep_convert_and_check): Remove. + * call.cc (build_conditional_expr): Use excess precision for ?: with + one arm floating and another integral. Don't convert first to + semantic result type from integral types. + (convert_like_internal): Don't call cp_ep_convert_and_check, instead + just strip EXCESS_PRECISION_EXPR before calling cp_convert_and_check + or cp_convert. + * typeck.cc (cp_build_binary_op): Set may_need_excess_precision + for comparisons or SPACESHIP_EXPR with at least one operand integral. + Don't compute semantic_result_type if build_type is non-NULL. Call + cp_convert_and_check instead of cp_ep_convert_and_check. + +2022-10-14 Jakub Jelinek + + PR middle-end/323 + PR c++/107097 + * parser.cc (cp_parser_primary_expression): Handle + EXCESS_PRECISION_EXPR with REAL_CST operand the same as REAL_CST. + * cvt.cc (cp_ep_convert_and_check): New function. + * call.cc (build_conditional_expr): Add excess precision support. + When type_after_usual_arithmetic_conversions returns error_mark_node, + use gcc_checking_assert that it is because of uncomparable floating + point ranks instead of checking all those conditions and make it + work also with complex types. + (convert_like_internal): Likewise. Add NESTED_P argument, pass true + to recursive calls to convert_like. + (convert_like): Add NESTED_P argument, pass it through to + convert_like_internal. For other overload pass false to it. + (convert_like_with_context): Pass false to NESTED_P. + (convert_arg_to_ellipsis): Add excess precision support. + (magic_varargs_p): For __builtin_is{finite,inf,inf_sign,nan,normal} + and __builtin_fpclassify return 2 instead of 1, document what it + means. + (build_over_call): Don't handle former magic 2 which is no longer + used, instead for magic 1 remove EXCESS_PRECISION_EXPR. + (perform_direct_initialization_if_possible): Pass false to NESTED_P + convert_like argument. + * constexpr.cc (cxx_eval_constant_expression): Handle + EXCESS_PRECISION_EXPR. + (potential_constant_expression_1): Likewise. + * pt.cc (tsubst_copy, tsubst_copy_and_build): Likewise. + * cp-tree.h (cp_ep_convert_and_check): Declare. + * cp-gimplify.cc (cp_fold): Handle EXCESS_PRECISION_EXPR. + * typeck.cc (cp_common_type): For COMPLEX_TYPEs, return error_mark_node + if recursive call returned it. + (convert_arguments): For magic 1 remove EXCESS_PRECISION_EXPR. + (cp_build_binary_op): Add excess precision support. When + cp_common_type returns error_mark_node, use gcc_checking_assert that + it is because of uncomparable floating point ranks instead of checking + all those conditions and make it work also with complex types. + (cp_build_unary_op): Likewise. + (cp_build_compound_expr): Likewise. + (build_static_cast_1): Remove EXCESS_PRECISION_EXPR. + 2022-10-13 Jason Merrill * cp-tree.h: Fix whitespace. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index fa03b33cfe6..8b802427e40 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2022-10-14 Harald Anlauf + + PR fortran/100971 + * resolve.cc (resolve_transfer): Extend check for permissibility + of polymorphic elements in a data transfer to arrays. + 2022-10-12 Harald Anlauf PR fortran/107217 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a9854785eae..f71761463f2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,118 @@ +2022-10-14 Joseph Myers + + * gcc.dg/cpp/c2x-ucnid-1-utf8.c, gcc.dg/cpp/c2x-ucnid-1.c: New + tests. + +2022-10-14 Harald Anlauf + + PR fortran/100971 + * gfortran.dg/der_io_5.f90: New test. + +2022-10-14 Tobias Burnus + + * gfortran.dg/c-interop/deferred-character-2.f90: Use 'dg-do run'. + +2022-10-14 Patrick Palka + + PR c++/106304 + * g++.dg/modules/pr106304_a.C: New test. + * g++.dg/modules/pr106304_b.C: New test. + +2022-10-14 Richard Biener + + PR tree-optimization/107254 + * gfortran.dg/vect/pr107254.f90: New testcase. + +2022-10-14 Jørgen Kvalsvik + + * gcc.misc-tests/gcov-4.c: New testcase. + +2022-10-14 Jørgen Kvalsvik + + * g++.dg/gcov/gcov-1.C: Add line count check. + * gcc.misc-tests/gcov-4.c: Likewise. + +2022-10-14 Jakub Jelinek + + * lib/target-supports.exp (check_effective_target_bfloat16, + check_effective_target_bfloat16_runtime, add_options_for_bfloat16): + New. + * gcc.dg/torture/bfloat16-basic.c: New test. + * gcc.dg/torture/bfloat16-builtin.c: New test. + * gcc.dg/torture/bfloat16-builtin-issignaling-1.c: New test. + * gcc.dg/torture/bfloat16-complex.c: New test. + * gcc.dg/torture/builtin-issignaling-1.c: Allow to be includable + from bfloat16-builtin-issignaling-1.c. + * gcc.dg/torture/floatn-basic.h: Allow to be includable from + bfloat16-basic.c. + * gcc.target/i386/vect-bfloat16-typecheck_2.c: Adjust expected + diagnostics. + * gcc.target/i386/sse2-bfloat16-scalar-typecheck.c: Likewise. + * gcc.target/i386/vect-bfloat16-typecheck_1.c: Likewise. + * g++.target/i386/bfloat_cpp_typecheck.C: Likewise. + +2022-10-14 Jakub Jelinek + + PR c/82071 + PR c/87390 + PR c++/107097 + * gcc.target/i386/excess-precision-8.c: For C++ wrap abort and + exit declarations into extern "C" block. + * gcc.target/i386/excess-precision-10.c: Likewise. + * g++.target/i386/excess-precision-7.C: Remove. + * g++.target/i386/excess-precision-8.C: New test. + * g++.target/i386/excess-precision-9.C: Remove. + * g++.target/i386/excess-precision-10.C: New test. + * g++.target/i386/excess-precision-12.C: New test. + +2022-10-14 Jakub Jelinek + + PR middle-end/323 + PR c++/107097 + * gcc.target/i386/excess-precision-1.c: For C++ wrap abort and + exit declarations into extern "C" block. + * gcc.target/i386/excess-precision-2.c: Likewise. + * gcc.target/i386/excess-precision-3.c: Likewise. Remove + check_float_nonproto and check_double_nonproto tests for C++. + * gcc.target/i386/excess-precision-7.c: For C++ wrap abort and + exit declarations into extern "C" block. + * gcc.target/i386/excess-precision-9.c: Likewise. + * g++.target/i386/excess-precision-1.C: New test. + * g++.target/i386/excess-precision-2.C: New test. + * g++.target/i386/excess-precision-3.C: New test. + * g++.target/i386/excess-precision-4.C: New test. + * g++.target/i386/excess-precision-5.C: New test. + * g++.target/i386/excess-precision-6.C: New test. + * g++.target/i386/excess-precision-7.C: New test. + * g++.target/i386/excess-precision-9.C: New test. + * g++.target/i386/excess-precision-11.C: New test. + * c-c++-common/dfp/convert-bfp-10.c: Add -fexcess-precision=fast + as dg-additional-options. + * c-c++-common/dfp/compare-eq-const.c: Likewise. + * g++.dg/cpp1z/constexpr-96862.C: Likewise. + * g++.dg/cpp1z/decomp12.C (main): Use 2.25 instead of 2.3 to + avoid excess precision differences. + * g++.dg/other/thunk1.C: Add -fexcess-precision=fast + as dg-additional-options. + * g++.dg/vect/pr64410.cc: Likewise. + * g++.dg/cpp1y/pr68180.C: Likewise. + * g++.dg/vect/pr89653.cc: Likewise. + * g++.dg/cpp0x/variadic-tuple.C: Likewise. + * g++.dg/cpp0x/nsdmi-union1.C: Use 4.25 instead of 4.2 to + avoid excess precision differences. + * g++.old-deja/g++.brendan/copy9.C: Add -fexcess-precision=fast + as dg-additional-options. + * g++.old-deja/g++.brendan/overload7.C: Likewise. + +2022-10-14 Joseph Myers + + * gcc.dg/c11-complit-1.c, gcc.dg/c11-complit-2.c, + gcc.dg/c11-complit-3.c, gcc.dg/c2x-complit-2.c, + gcc.dg/c2x-complit-3.c, gcc.dg/c2x-complit-4.c, + gcc.dg/c2x-complit-5.c, gcc.dg/c2x-complit-6.c, + gcc.dg/c2x-complit-7.c, gcc.dg/c90-complit-2.c, + gcc.dg/gnu2x-complit-1.c, gcc.dg/gnu2x-complit-2.c: New tests. + 2022-10-13 Eric Botcazou * gcc.dg/Wstringop-overflow-89.c: New test. diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 3b41845eee7..3a1b4996bce 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,20 @@ +2022-10-14 Joseph Myers + + * charset.cc (ucn_valid_in_identifier): Check xid_identifiers not + cplusplus to determine whether to use CXX23 and NXX23 flags. + * include/cpplib.h (struct cpp_options): Add xid_identifiers. + * init.cc (struct lang_flags, lang_defaults): Add xid_identifiers. + (cpp_set_lang): Set xid_identifiers. + * lex.cc (warn_about_normalization): Add parameter identifier. + Only pedwarn about non-NFC for identifiers, not pp-numbers. + (_cpp_lex_direct): Update calls to warn_about_normalization. + +2022-10-14 Jakub Jelinek + + * include/cpplib.h (CPP_N_BFLOAT16): Define. + * expr.cc (interpret_float_suffix): Handle bf16 and BF16 suffixes for + C++. + 2022-09-28 Eugene Rozenfeld * include/line-map.h: Add discriminator to location_adhoc_data. diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 48a328af0ff..f756eb5b733 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,24 @@ +2022-10-14 Jakub Jelinek + + * config/i386/t-softfp (softfp_extensions): Add bfsf. + (softfp_truncations): Add tfbf xfbf dfbf sfbf hfbf. + (CFLAGS-extendbfsf2.c, CFLAGS-truncsfbf2.c, CFLAGS-truncdfbf2.c, + CFLAGS-truncxfbf2.c, CFLAGS-trunctfbf2.c, CFLAGS-trunchfbf2.c): Add + -msse2. + * config/i386/libgcc-glibc.ver (GCC_13.0.0): Export + __extendbfsf2 and __trunc{s,d,x,t,h}fbf2. + * config/i386/sfp-machine.h (_FP_NANSIGN_B): Define. + * config/i386/64/sfp-machine.h (_FP_NANFRAC_B): Define. + * config/i386/32/sfp-machine.h (_FP_NANFRAC_B): Define. + * soft-fp/brain.h: New file. + * soft-fp/truncsfbf2.c: New file. + * soft-fp/truncdfbf2.c: New file. + * soft-fp/truncxfbf2.c: New file. + * soft-fp/trunctfbf2.c: New file. + * soft-fp/trunchfbf2.c: New file. + * soft-fp/truncbfhf2.c: New file. + * soft-fp/extendbfsf2.c: New file. + 2022-10-12 Martin Liska * libgcov-driver.c: Use new function. diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index b181a690a46..1c8cc5c7ef5 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,11 @@ +2022-10-14 Jakub Jelinek + + * cp-demangle.h (D_BUILTIN_TYPE_COUNT): Increment. + * cp-demangle.c (cplus_demangle_builtin_types): Add std::bfloat16_t + entry. + (cplus_demangle_type): Demangle DF16b. + * testsuite/demangle-expected (_Z3xxxDF16b): New test. + 2022-10-11 Nathan Sidwell * cp-demangle.c (d_prefix): 'M' components are not diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a78e198a524..8166bc909b6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,27 @@ +2022-10-14 Jonathan Wakely + + * libsupc++/eh_alloc.cc [USE_POOL]: New macro. + [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define. + [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max. + (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use + pool. + (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise. + (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]: + Likewise. + (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]: + Likewise. + +2022-10-14 Jonathan Wakely + + * src/c++11/debug.cc (print_raw): Simplify. + (print_word): Print indentation by calling fprintf directly. + (_Error_formatter::_M_error): Print unindented string by calling + fprintf directly. + +2022-10-14 Jonathan Wakely + + * include/std/iostream: Use markdown in Doxygen comment. + 2022-10-12 François Dumont * include/debug/string: Add using _Base::compare.