]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Daily bump.
authorGCC Administrator <gccadmin@gcc.gnu.org>
Thu, 7 Sep 2023 00:17:36 +0000 (00:17 +0000)
committerGCC Administrator <gccadmin@gcc.gnu.org>
Thu, 7 Sep 2023 00:17:36 +0000 (00:17 +0000)
gcc/ChangeLog
gcc/DATESTAMP
gcc/analyzer/ChangeLog
gcc/c-family/ChangeLog
gcc/c/ChangeLog
gcc/cp/ChangeLog
gcc/testsuite/ChangeLog
libcpp/ChangeLog
libgcc/ChangeLog
libstdc++-v3/ChangeLog

index 08705e1aafefc90abb9c8bd976aa89f53317526a..1797b17a7e99e0ba3050c62285e46c50901cbfea 100644 (file)
@@ -1,3 +1,313 @@
+2023-09-06  Ian Lance Taylor  <iant@golang.org>
+
+       PR go/111310
+       * godump.cc (go_format_type): Handle BITINT_TYPE.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * tree.cc (build_one_cst, build_minus_one_cst): Handle BITINT_TYPE
+       like INTEGER_TYPE.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * gimple-lower-bitint.cc (bitint_large_huge::if_then_else,
+       bitint_large_huge::if_then_if_then_else): Use make_single_succ_edge
+       rather than make_edge, initialize bb->count.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * doc/libgcc.texi (Bit-precise integer arithmetic functions):
+       Document general rules for _BitInt support library functions
+       and document __mulbitint3 and __divmodbitint4.
+       (Conversion functions): Document __fix{s,d,x,t}fbitint,
+       __floatbitint{s,d,x,t,h,b}f, __bid_fix{s,d,t}dbitint and
+       __bid_floatbitint{s,d,t}d.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * glimits.h (BITINT_MAXWIDTH): Define if __BITINT_MAXWIDTH__ is
+       predefined.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * internal-fn.cc (expand_ubsan_result_store): Add LHS, MODE and
+       DO_ERROR arguments.  For non-mode precision BITINT_TYPE results
+       check if all padding bits up to mode precision are zeros or sign
+       bit copies and if not, jump to DO_ERROR.
+       (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
+       Adjust expand_ubsan_result_store callers.
+       * ubsan.cc: Include target.h and langhooks.h.
+       (ubsan_encode_value): Pass BITINT_TYPE values which fit into pointer
+       size converted to pointer sized integer, pass BITINT_TYPE values
+       which fit into TImode (if supported) or DImode as those integer types
+       or otherwise for now punt (pass 0).
+       (ubsan_type_descriptor): Handle BITINT_TYPE.  For pstyle of
+       UBSAN_PRINT_FORCE_INT use TK_Integer (0x0000) mode with a
+       TImode/DImode precision rather than TK_Unknown used otherwise for
+       large/huge BITINT_TYPEs.
+       (instrument_si_overflow): Instrument BITINT_TYPE operations even when
+       they don't have mode precision.
+       * ubsan.h (enum ubsan_print_style): New enumerator.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * config/i386/i386.cc (classify_argument): Handle BITINT_TYPE.
+       (ix86_bitint_type_info): New function.
+       (TARGET_C_BITINT_TYPE_INFO): Redefine.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * Makefile.in (OBJS): Add gimple-lower-bitint.o.
+       * passes.def: Add pass_lower_bitint after pass_lower_complex and
+       pass_lower_bitint_O0 after pass_lower_complex_O0.
+       * tree-pass.h (PROP_gimple_lbitint): Define.
+       (make_pass_lower_bitint_O0, make_pass_lower_bitint): Declare.
+       * gimple-lower-bitint.h: New file.
+       * tree-ssa-live.h (struct _var_map): Add bitint member.
+       (init_var_map): Adjust declaration.
+       (region_contains_p): Handle map->bitint like map->outofssa_p.
+       * tree-ssa-live.cc (init_var_map): Add BITINT argument, initialize
+       map->bitint and set map->outofssa_p to false if it is non-NULL.
+       * tree-ssa-coalesce.cc: Include gimple-lower-bitint.h.
+       (build_ssa_conflict_graph): Call build_bitint_stmt_ssa_conflicts if
+       map->bitint.
+       (create_coalesce_list_for_region): For map->bitint ignore SSA_NAMEs
+       not in that bitmap, and allow res without default def.
+       (compute_optimized_partition_bases): In map->bitint mode try hard to
+       coalesce any SSA_NAMEs with the same size.
+       (coalesce_bitint): New function.
+       (coalesce_ssa_name): In map->bitint mode, or map->bitmap into
+       used_in_copies and call coalesce_bitint.
+       * gimple-lower-bitint.cc: New file.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * tree.def (BITINT_TYPE): New type.
+       * tree.h (TREE_CHECK6, TREE_NOT_CHECK6): Define.
+       (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Include
+       BITINT_TYPE.
+       (BITINT_TYPE_P): Define.
+       (CONSTRUCTOR_BITFIELD_P): Return true even for BLKmode bit-fields if
+       they have BITINT_TYPE type.
+       (tree_check6, tree_not_check6): New inline functions.
+       (any_integral_type_check): Include BITINT_TYPE.
+       (build_bitint_type): Declare.
+       * tree.cc (tree_code_size, wide_int_to_tree_1, cache_integer_cst,
+       build_zero_cst, type_hash_canon_hash, type_cache_hasher::equal,
+       type_hash_canon): Handle BITINT_TYPE.
+       (bitint_type_cache): New variable.
+       (build_bitint_type): New function.
+       (signed_or_unsigned_type_for, verify_type_variant, verify_type):
+       Handle BITINT_TYPE.
+       (tree_cc_finalize): Free bitint_type_cache.
+       * builtins.cc (type_to_class): Handle BITINT_TYPE.
+       (fold_builtin_unordered_cmp): Handle BITINT_TYPE like INTEGER_TYPE.
+       * cfgexpand.cc (expand_debug_expr): Punt on BLKmode BITINT_TYPE
+       INTEGER_CSTs.
+       * convert.cc (convert_to_pointer_1, convert_to_real_1,
+       convert_to_complex_1): Handle BITINT_TYPE like INTEGER_TYPE.
+       (convert_to_integer_1): Likewise.  For BITINT_TYPE don't check
+       GET_MODE_PRECISION (TYPE_MODE (type)).
+       * doc/generic.texi (BITINT_TYPE): Document.
+       * doc/tm.texi.in (TARGET_C_BITINT_TYPE_INFO): New.
+       * doc/tm.texi: Regenerated.
+       * dwarf2out.cc (base_type_die, is_base_type, modified_type_die,
+       gen_type_die_with_usage): Handle BITINT_TYPE.
+       (rtl_for_decl_init): Punt on BLKmode BITINT_TYPE INTEGER_CSTs or
+       handle those which fit into shwi.
+       * expr.cc (expand_expr_real_1): Define EXTEND_BITINT macro, reduce
+       to bitfield precision reads from BITINT_TYPE vars, parameters or
+       memory locations.  Expand large/huge BITINT_TYPE INTEGER_CSTs into
+       memory.
+       * fold-const.cc (fold_convert_loc, make_range_step): Handle
+       BITINT_TYPE.
+       (extract_muldiv_1): For BITINT_TYPE use TYPE_PRECISION rather than
+       GET_MODE_SIZE (SCALAR_INT_TYPE_MODE).
+       (native_encode_int, native_interpret_int, native_interpret_expr):
+       Handle BITINT_TYPE.
+       * gimple-expr.cc (useless_type_conversion_p): Make BITINT_TYPE
+       to some other integral type or vice versa conversions non-useless.
+       * gimple-fold.cc (gimple_fold_builtin_memset): Punt for BITINT_TYPE.
+       (clear_padding_unit): Mention in comment that _BitInt types don't need
+       to fit either.
+       (clear_padding_bitint_needs_padding_p): New function.
+       (clear_padding_type_may_have_padding_p): Handle BITINT_TYPE.
+       (clear_padding_type): Likewise.
+       * internal-fn.cc (expand_mul_overflow): For unsigned non-mode
+       precision operands force pos_neg? to 1.
+       (expand_MULBITINT, expand_DIVMODBITINT, expand_FLOATTOBITINT,
+       expand_BITINTTOFLOAT): New functions.
+       * internal-fn.def (MULBITINT, DIVMODBITINT, FLOATTOBITINT,
+       BITINTTOFLOAT): New internal functions.
+       * internal-fn.h (expand_MULBITINT, expand_DIVMODBITINT,
+       expand_FLOATTOBITINT, expand_BITINTTOFLOAT): Declare.
+       * match.pd (non-equality compare simplifications from fold_binary):
+       Punt if TYPE_MODE (arg1_type) is BLKmode.
+       * pretty-print.h (pp_wide_int): Handle printing of large precision
+       wide_ints which would buffer overflow digit_buffer.
+       * stor-layout.cc (finish_bitfield_representative): For bit-fields
+       with BITINT_TYPE, prefer representatives with precisions in
+       multiple of limb precision.
+       (layout_type): Handle BITINT_TYPE.  Handle COMPLEX_TYPE with BLKmode
+       element type and assert it is BITINT_TYPE.
+       * target.def (bitint_type_info): New C target hook.
+       * target.h (struct bitint_info): New type.
+       * targhooks.cc (default_bitint_type_info): New function.
+       * targhooks.h (default_bitint_type_info): Declare.
+       * tree-pretty-print.cc (dump_generic_node): Handle BITINT_TYPE.
+       Handle printing large wide_ints which would buffer overflow
+       digit_buffer.
+       * tree-ssa-sccvn.cc: Include target.h.
+       (eliminate_dom_walker::eliminate_stmt): Punt for large/huge
+       BITINT_TYPE.
+       * tree-switch-conversion.cc (jump_table_cluster::emit): For more than
+       64-bit BITINT_TYPE subtract low bound from expression and cast to
+       64-bit integer type both the controlling expression and case labels.
+       * typeclass.h (enum type_class): Add bitint_type_class enumerator.
+       * varasm.cc (output_constant): Handle BITINT_TYPE INTEGER_CSTs.
+       * vr-values.cc (check_for_binary_op_overflow): Use widest2_int rather
+       than widest_int.
+       (simplify_using_ranges::simplify_internal_call_using_ranges): Use
+       unsigned_type_for rather than build_nonstandard_integer_type.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       PR target/111296
+       * config/riscv/riscv.cc (riscv_modes_tieable_p): Fix incorrect mode
+       tieable for RVV modes.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       PR target/111295
+       * config/riscv/riscv-vsetvl.cc (insert_vsetvl): Bug fix.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       * config/riscv/riscv-vector-switch.def (VLS_ENTRY): Remove TARGET_64BIT
+
+2023-09-06  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+
+       * config/xtensa/xtensa.cc (xtensa_expand_scc):
+       Add code for particular constants (only 0 and INT_MIN for now)
+       for EQ/NE boolean evaluation in SImode.
+       * config/xtensa/xtensa.md (*eqne_INT_MIN): Remove because its
+       implementation has been integrated into the above.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       PR target/111232
+       * config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>):
+       Delete.
+       (*pred_widen_mulsu<mode>): Delete.
+       (*pred_single_widen_mul<mode>): Delete.
+       (*dual_widen_<any_widen_binop:optab><any_extend:su><mode>):
+       Add new combine patterns.
+       (*single_widen_sub<any_extend:su><mode>): Ditto.
+       (*single_widen_add<any_extend:su><mode>): Ditto.
+       (*single_widen_mult<any_extend:su><mode>): Ditto.
+       (*dual_widen_mulsu<mode>): Ditto.
+       (*dual_widen_mulus<mode>): Ditto.
+       (*dual_widen_<optab><mode>): Ditto.
+       (*single_widen_add<mode>): Ditto.
+       (*single_widen_sub<mode>): Ditto.
+       (*single_widen_mult<mode>): Ditto.
+       * config/riscv/autovec.md (<optab><mode>3):
+       Change define_expand to define_insn_and_split.
+       (<optab><mode>2): Ditto.
+       (abs<mode>2): Ditto.
+       (smul<mode>3_highpart): Ditto.
+       (umul<mode>3_highpart): Ditto.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * config/riscv/riscv-protos.h (riscv_declare_function_name): Add protos.
+       (riscv_asm_output_alias): Ditto.
+       (riscv_asm_output_external): Ditto.
+       * config/riscv/riscv.cc (riscv_asm_output_variant_cc):
+       Output .variant_cc directive for vector function.
+       (riscv_declare_function_name): Ditto.
+       (riscv_asm_output_alias): Ditto.
+       (riscv_asm_output_external): Ditto.
+       * config/riscv/riscv.h (ASM_DECLARE_FUNCTION_NAME):
+       Implement ASM_DECLARE_FUNCTION_NAME.
+       (ASM_OUTPUT_DEF_FROM_DECLS): Implement ASM_OUTPUT_DEF_FROM_DECLS.
+       (ASM_OUTPUT_EXTERNAL): Implement ASM_OUTPUT_EXTERNAL.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls): Pass riscv_cc.
+       * config/riscv/riscv.cc (struct riscv_frame_info): Add new fileds.
+       (riscv_frame_info::reset): Reset new fileds.
+       (riscv_call_tls_get_addr): Pass riscv_cc.
+       (riscv_function_arg): Return riscv_cc for call patterm.
+       (get_riscv_cc): New function return riscv_cc from rtl call_insn.
+       (riscv_insn_callee_abi): Implement TARGET_INSN_CALLEE_ABI.
+       (riscv_save_reg_p): Add vector callee-saved check.
+       (riscv_stack_align): Add vector save area comment.
+       (riscv_compute_frame_info): Ditto.
+       (riscv_restore_reg): Update for type change.
+       (riscv_for_each_saved_v_reg): New function save vector registers.
+       (riscv_first_stack_step): Handle funciton with vector callee-saved registers.
+       (riscv_expand_prologue): Ditto.
+       (riscv_expand_epilogue): Ditto.
+       (riscv_output_mi_thunk): Pass riscv_cc.
+       (TARGET_INSN_CALLEE_ABI): Implement TARGET_INSN_CALLEE_ABI.
+       * config/riscv/riscv.h (get_riscv_cc): Export get_riscv_cc function.
+       * config/riscv/riscv.md: Add CALLEE_CC operand for call pattern.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * config/riscv/riscv-protos.h (builtin_type_p): New function for checking vector type.
+       * config/riscv/riscv-vector-builtins.cc (builtin_type_p): Ditto.
+       * config/riscv/riscv.cc (struct riscv_arg_info): New fields.
+       (riscv_init_cumulative_args): Setup variant_cc field.
+       (riscv_vector_type_p): New function for checking vector type.
+       (riscv_hard_regno_nregs): Hoist declare.
+       (riscv_get_vector_arg): Subroutine of riscv_get_arg_info.
+       (riscv_get_arg_info): Support vector cc.
+       (riscv_function_arg_advance): Update cum.
+       (riscv_pass_by_reference): Handle vector args.
+       (riscv_v_abi): New function return vector abi.
+       (riscv_return_value_is_vector_type_p): New function for check vector arguments.
+       (riscv_arguments_is_vector_type_p): New function for check vector returns.
+       (riscv_fntype_abi): Implement TARGET_FNTYPE_ABI.
+       (TARGET_FNTYPE_ABI): Implement TARGET_FNTYPE_ABI.
+       * config/riscv/riscv.h (GCC_RISCV_H): Define macros for vector abi.
+       (MAX_ARGS_IN_VECTOR_REGISTERS): Ditto.
+       (MAX_ARGS_IN_MASK_REGISTERS): Ditto.
+       (V_ARG_FIRST): Ditto.
+       (V_ARG_LAST): Ditto.
+       (enum riscv_cc): Define all RISCV_CC variants.
+       * config/riscv/riscv.opt: Add --param=riscv-vector-abi.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * config/riscv/autovec-opt.md (*cond_<optab><mode>):
+       Add sqrt + vcond_mask combine pattern.
+       * config/riscv/autovec.md (<optab><mode>2):
+       Change define_expand to define_insn_and_split.
+
+2023-09-06  Jason Merrill  <jason@redhat.com>
+
+       * common.opt: Update -fabi-version=19.
+
+2023-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
+
+       * config/riscv/zicond.md: Add closing parent to a comment.
+
+2023-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
+
+       * config/riscv/riscv.cc (riscv_expand_conditional_move): Force
+       large constant cons/alt into a register.
+
 2023-09-05  Christoph Müllner  <christoph.muellner@vrull.eu>
 
        * config/riscv/riscv.cc (riscv_build_integer_1): Don't
index 5fa6158d6b7c748d9b464756b0268ca519dfb2b4..11df268bc04716a87f33e47c85aae1b1cee13ade 100644 (file)
@@ -1 +1 @@
-20230906
+20230907
index c9277bf9581badcc2e1febf47cbe46a4395458c5..12c8578aeb89e8f9dbc38aa23dda24c16fb3e9a2 100644 (file)
@@ -1,3 +1,32 @@
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       PR analyzer/105899
+       * kf.cc (class kf_strstr): New.
+       (kf_strstr::impl_call_post): New.
+       (register_known_functions): Register it.
+
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       PR analyzer/105899
+       * kf.cc (class kf_strncpy): New.
+       (kf_strncpy::impl_call_post): New.
+       (register_known_functions): Register it.
+       * region-model.cc (region_model::read_bytes): Handle unknown
+       number of bytes.
+
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       * kf.cc (kf_calloc::impl_call_pre): Pass ctxt to zero_fill_region.
+       (kf_memset::impl_call_pre): Move responsibility for calling
+       check_region_for_write to fill_region.
+       * region-model.cc (region_model::on_assignment): Pass ctxt to
+       zero_fill_region.
+       (region_model::fill_region): Add "ctxt" param, using it to call
+       check_region_for_write.
+       (region_model::zero_fill_region): Likewise.
+       * region-model.h (region_model::fill_region): Add "ctxt" param.
+       (region_model::zero_fill_region): Likewise.
+
 2023-09-01  benjamin priour  <priour.be@gmail.com>
 
        PR analyzer/105948
index 3559e4ca089dcb7acfe38e25cd7195a82344e575..61720c19400b3eeaddc5b633bacf063ea4c3f48c 100644 (file)
@@ -1,3 +1,55 @@
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * c-attribs.cc (type_valid_for_vector_size): Reject vector types
+       with BITINT_TYPE elements even if they have mode precision and
+       suitable size.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * c-common.cc (c_common_reswords): Add _BitInt as keyword.
+       (unsafe_conversion_p): Handle BITINT_TYPE like INTEGER_TYPE.
+       (c_common_signed_or_unsigned_type): Handle BITINT_TYPE.
+       (c_common_truthvalue_conversion, c_common_get_alias_set,
+       check_builtin_function_arguments): Handle BITINT_TYPE like
+       INTEGER_TYPE.
+       (sync_resolve_size): Add ORIG_FORMAT argument.  If
+       FETCH && !ORIG_FORMAT, type is BITINT_TYPE, return -1 if size isn't
+       one of 1, 2, 4, 8 or 16 or if it is 16 but TImode is not supported.
+       (atomic_bitint_fetch_using_cas_loop): New function.
+       (resolve_overloaded_builtin): Adjust sync_resolve_size caller.  If
+       -1 is returned, use atomic_bitint_fetch_using_cas_loop to lower it.
+       Formatting fix.
+       (keyword_begins_type_specifier): Handle RID_BITINT.
+       * c-common.h (enum rid): Add RID_BITINT enumerator.
+       * c-cppbuiltin.cc (c_cpp_builtins): For C call
+       targetm.c.bitint_type_info and predefine __BITINT_MAXWIDTH__
+       and for -fbuilding-libgcc also __LIBGCC_BITINT_LIMB_WIDTH__ and
+       __LIBGCC_BITINT_ORDER__ macros if _BitInt is supported.
+       * c-lex.cc (interpret_integer): Handle CPP_N_BITINT.
+       * c-pretty-print.cc (c_pretty_printer::simple_type_specifier,
+       c_pretty_printer::direct_abstract_declarator,
+       c_pretty_printer::direct_declarator, c_pretty_printer::declarator):
+       Handle BITINT_TYPE.
+       (pp_c_integer_constant): Handle printing of large precision wide_ints
+       which would buffer overflow digit_buffer.
+       * c-warn.cc (conversion_warning, warnings_for_convert_and_check,
+       warnings_for_convert_and_check): Handle BITINT_TYPE like
+       INTEGER_TYPE.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * c-ubsan.cc (ubsan_instrument_shift): Use UBSAN_PRINT_FORCE_INT
+       for type0 type descriptor.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-lex.cc (interpret_float): For C diagnostics on FN and FNx suffixes
+       append " before C2X" to diagnostics text and follow behavior of
+       pedwarn_c11.
+
 2023-09-01  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/111069
index b43d96a4f24bc33180cf94b858226f786c2de712..32d133b07631e1f564747e41c537a2e838fbbd03 100644 (file)
@@ -1,3 +1,47 @@
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * c-decl.cc (finish_declspecs): Emit pedwarn_c11 on _BitInt.
+       * c-typeck.cc (c_common_type): Emit sorry for common type between
+       _Complex integer and larger _BitInt and return the _Complex integer.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * c-convert.cc (c_convert): Handle BITINT_TYPE like INTEGER_TYPE.
+       * c-decl.cc (check_bitfield_type_and_width): Allow BITINT_TYPE
+       bit-fields.
+       (finish_struct): Prefer to use BITINT_TYPE for BITINT_TYPE bit-fields
+       if possible.
+       (declspecs_add_type): Formatting fixes.  Handle cts_bitint.  Adjust
+       for added union in *specs.  Handle RID_BITINT.
+       (finish_declspecs): Handle cts_bitint.  Adjust for added union
+       in *specs.
+       * c-parser.cc (c_keyword_starts_typename, c_token_starts_declspecs,
+       c_parser_declspecs, c_parser_gnu_attribute_any_word): Handle
+       RID_BITINT.
+       (c_parser_omp_clause_schedule): Handle BITINT_TYPE like INTEGER_TYPE.
+       * c-tree.h (enum c_typespec_keyword): Mention _BitInt in comment.
+       Add cts_bitint enumerator.
+       (struct c_declspecs): Move int_n_idx and floatn_nx_idx into a union
+       and add bitint_prec there as well.
+       * c-typeck.cc (c_common_type, comptypes_internal):
+       Handle BITINT_TYPE.
+       (perform_integral_promotions): Promote BITINT_TYPE bit-fields to
+       their declared type.
+       (build_array_ref, build_unary_op, build_conditional_expr,
+       build_c_cast, convert_for_assignment, digest_init, build_binary_op):
+       Handle BITINT_TYPE.
+       * c-fold.cc (c_fully_fold_internal): Handle BITINT_TYPE like
+       INTEGER_TYPE.
+       * c-aux-info.cc (gen_type): Handle BITINT_TYPE.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-decl.cc (declspecs_add_type): Use pedwarn_c11 rather than pedwarn
+       for _FloatN{,x} diagnostics and append " before C2X" to the diagnostic
+       text.
+
 2023-09-05  Tobias Burnus  <tobias@codesourcery.com>
 
        * c-parser.cc (c_parser_omp_clause_allocate): Handle
index 1d97cc9416d8405c87c173a0ed72b10db16bb8a6..c2dcca12af65ff2205e35c15767fc87d971dd073 100644 (file)
@@ -1,3 +1,8 @@
+2023-09-06  Jason Merrill  <jason@redhat.com>
+
+       * class.cc (check_subobject_offset): Check
+       same_type_ignoring_top_level_qualifiers_p.
+
 2023-09-05  Marek Polacek  <polacek@redhat.com>
 
        PR c++/91483
index 6e086b180de67eeee05f6d74d0da8fd6edc6102d..2251e6fb739d60675d1f90242a54558ff887a391 100644 (file)
@@ -1,3 +1,271 @@
+2023-09-06  Ian Lance Taylor  <iant@golang.org>
+
+       PR go/111310
+       * gcc.misc-tests/godump-1.c: Add _BitInt test cases.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * gcc.dg/bitint-2.c (foo): Add tests for constexpr var or enumerator
+       arguments of _BitInt.
+       * gcc.dg/bitint-31.c: Remove forgotten 0 &&.
+       * gcc.dg/bitint-32.c: New test.
+       * gcc.dg/bitint-33.c: New test.
+       * gcc.dg/bitint-34.c: New test.
+       * gcc.dg/bitint-35.c: New test.
+       * gcc.dg/bitint-36.c: New test.
+       * gcc.dg/fixed-point/bitint-1.c: New test.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * gcc.dg/torture/bitint-21.c (main): Add tests for -1 for signed only,
+       -1 + epsilon, another (-1, 0) range value and -0.
+       * gcc.dg/torture/bitint-22.c (main): Likewise.
+       * gcc.dg/bitint-28.c: New test.
+       * gcc.dg/bitint-29.c: New test.
+       * gcc.dg/bitint-30.c: New test.
+       * gcc.dg/bitint-31.c: New test.
+       * gcc.dg/dfp/bitint-1.c (main): Add tests for -1 for signed only,
+       -1 + epsilon and -0.
+       * gcc.dg/dfp/bitint-2.c (main): Likewise.
+       * gcc.dg/dfp/bitint-3.c (main): Likewise.
+       * gcc.dg/dfp/bitint-7.c: New test.
+       * gcc.dg/dfp/bitint-8.c: New test.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * gcc.dg/bitint-19.c: New test.
+       * gcc.dg/bitint-20.c: New test.
+       * gcc.dg/bitint-21.c: New test.
+       * gcc.dg/bitint-22.c: New test.
+       * gcc.dg/bitint-23.c: New test.
+       * gcc.dg/bitint-24.c: New test.
+       * gcc.dg/bitint-25.c: New test.
+       * gcc.dg/bitint-26.c: New test.
+       * gcc.dg/bitint-27.c: New test.
+       * g++.dg/ext/bitint1.C: New test.
+       * g++.dg/ext/bitint2.C: New test.
+       * g++.dg/ext/bitint3.C: New test.
+       * g++.dg/ext/bitint4.C: New test.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * gcc.dg/torture/bitint-20.c: New test.
+       * gcc.dg/torture/bitint-21.c: New test.
+       * gcc.dg/torture/bitint-22.c: New test.
+       * gcc.dg/torture/bitint-23.c: New test.
+       * gcc.dg/torture/bitint-24.c: New test.
+       * gcc.dg/torture/bitint-25.c: New test.
+       * gcc.dg/torture/bitint-26.c: New test.
+       * gcc.dg/torture/bitint-27.c: New test.
+       * gcc.dg/torture/bitint-28.c: New test.
+       * gcc.dg/torture/bitint-29.c: New test.
+       * gcc.dg/torture/bitint-30.c: New test.
+       * gcc.dg/torture/bitint-31.c: New test.
+       * gcc.dg/torture/bitint-32.c: New test.
+       * gcc.dg/torture/bitint-33.c: New test.
+       * gcc.dg/torture/bitint-34.c: New test.
+       * gcc.dg/torture/bitint-35.c: New test.
+       * gcc.dg/torture/bitint-36.c: New test.
+       * gcc.dg/torture/bitint-37.c: New test.
+       * gcc.dg/torture/bitint-38.c: New test.
+       * gcc.dg/torture/bitint-39.c: New test.
+       * gcc.dg/torture/bitint-40.c: New test.
+       * gcc.dg/torture/bitint-41.c: New test.
+       * gcc.dg/torture/bitint-42.c: New test.
+       * gcc.dg/atomic/stdatomic-bitint-1.c: New test.
+       * gcc.dg/atomic/stdatomic-bitint-2.c: New test.
+       * gcc.dg/dfp/bitint-1.c: New test.
+       * gcc.dg/dfp/bitint-2.c: New test.
+       * gcc.dg/dfp/bitint-3.c: New test.
+       * gcc.dg/dfp/bitint-4.c: New test.
+       * gcc.dg/dfp/bitint-5.c: New test.
+       * gcc.dg/dfp/bitint-6.c: New test.
+       * gcc.dg/ubsan/bitint-1.c: New test.
+       * gcc.dg/ubsan/bitint-2.c: New test.
+       * gcc.dg/ubsan/bitint-3.c: New test.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * lib/target-supports.exp (check_effective_target_bitint,
+       check_effective_target_bitint128, check_effective_target_bitint575):
+       New effective targets.
+       * gcc.dg/bitint-1.c: New test.
+       * gcc.dg/bitint-2.c: New test.
+       * gcc.dg/bitint-3.c: New test.
+       * gcc.dg/bitint-4.c: New test.
+       * gcc.dg/bitint-5.c: New test.
+       * gcc.dg/bitint-6.c: New test.
+       * gcc.dg/bitint-7.c: New test.
+       * gcc.dg/bitint-8.c: New test.
+       * gcc.dg/bitint-9.c: New test.
+       * gcc.dg/bitint-10.c: New test.
+       * gcc.dg/bitint-11.c: New test.
+       * gcc.dg/bitint-12.c: New test.
+       * gcc.dg/bitint-13.c: New test.
+       * gcc.dg/bitint-14.c: New test.
+       * gcc.dg/bitint-15.c: New test.
+       * gcc.dg/bitint-16.c: New test.
+       * gcc.dg/bitint-17.c: New test.
+       * gcc.dg/bitint-18.c: New test.
+       * gcc.dg/torture/bitint-1.c: New test.
+       * gcc.dg/torture/bitint-2.c: New test.
+       * gcc.dg/torture/bitint-3.c: New test.
+       * gcc.dg/torture/bitint-4.c: New test.
+       * gcc.dg/torture/bitint-5.c: New test.
+       * gcc.dg/torture/bitint-6.c: New test.
+       * gcc.dg/torture/bitint-7.c: New test.
+       * gcc.dg/torture/bitint-8.c: New test.
+       * gcc.dg/torture/bitint-9.c: New test.
+       * gcc.dg/torture/bitint-10.c: New test.
+       * gcc.dg/torture/bitint-11.c: New test.
+       * gcc.dg/torture/bitint-12.c: New test.
+       * gcc.dg/torture/bitint-13.c: New test.
+       * gcc.dg/torture/bitint-14.c: New test.
+       * gcc.dg/torture/bitint-15.c: New test.
+       * gcc.dg/torture/bitint-16.c: New test.
+       * gcc.dg/torture/bitint-17.c: New test.
+       * gcc.dg/torture/bitint-18.c: New test.
+       * gcc.dg/torture/bitint-19.c: New test.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       PR target/111296
+       * g++.target/riscv/rvv/base/pr111296.C: New test.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       PR target/111295
+       * gcc.target/riscv/rvv/autovec/pr111295.c: New test.
+
+2023-09-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
+
+       * gcc.target/riscv/rvv/autovec/partial/slp-9.c: Adapt test.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl1024b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl2048b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl256b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl4096b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32f_zvl512b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl1024b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl2048b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl256b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl4096b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve32x_zvl512b-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve64d-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve64f-1.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/zve64x-1.c: Ditto.
+
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       PR analyzer/105899
+       * c-c++-common/analyzer/strstr-1.c: New test.
+
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       PR analyzer/105899
+       * c-c++-common/analyzer/null-terminated-strings-2.c: New test.
+       * c-c++-common/analyzer/overlapping-buffers.c: Update dg-bogus
+       directives to avoid clashing with note from <string.h> that might
+       happen to have the same line number.  Add strpncpy test coverage.
+       * c-c++-common/analyzer/strncpy-1.c: New test.
+       * gcc.dg/analyzer/null-terminated-strings-1.c
+       (test_filled_nonzero): New.
+       (void test_filled_zero): New.
+       (test_filled_symbolic): New.
+
+2023-09-06  David Malcolm  <dmalcolm@redhat.com>
+
+       * gcc.dg/plugin/analyzer_cpython_plugin.c: Pass ctxt to
+       zero_fill_region.
+
+2023-09-06  Pan Li  <pan2.li@intel.com>
+
+       * gcc.target/riscv/rvv/intrisinc-vrgatherei16.c: Moved to...
+       * gcc.target/riscv/rvv/base/intrisinc-vrgatherei16.c: ...here.
+
+2023-09-06  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+       * gcc.target/riscv/xtheadbb-li-rotr.c: Don't run for RV32.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       PR target/111232
+       * gcc.target/riscv/rvv/autovec/widen/widen-4.c: Add more testcases.
+       * gcc.target/riscv/rvv/autovec/widen/widen-complicate-4.c: Ditto.
+       * gcc.target/riscv/rvv/autovec/pr111232.c: New test.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * gcc.target/riscv/rvv/base/abi-call-variant_cc.c: New test.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-1.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: New test.
+       * gcc.target/riscv/rvv/base/abi-callee-saved-2.c: New test.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * gcc.target/riscv/rvv/base/abi-call-args-1-run.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-1.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-2-run.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-2.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-3-run.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-3.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-4-run.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-args-4.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-error-1.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-return-run.c: New test.
+       * gcc.target/riscv/rvv/base/abi-call-return.c: New test.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.dg/c11-floatn-1.c: New test.
+       * gcc.dg/c11-floatn-2.c: New test.
+       * gcc.dg/c11-floatn-3.c: New test.
+       * gcc.dg/c11-floatn-4.c: New test.
+       * gcc.dg/c11-floatn-5.c: New test.
+       * gcc.dg/c11-floatn-6.c: New test.
+       * gcc.dg/c11-floatn-7.c: New test.
+       * gcc.dg/c11-floatn-8.c: New test.
+       * gcc.dg/c2x-floatn-1.c: New test.
+       * gcc.dg/c2x-floatn-2.c: New test.
+       * gcc.dg/c2x-floatn-3.c: New test.
+       * gcc.dg/c2x-floatn-4.c: New test.
+       * gcc.dg/c2x-floatn-5.c: New test.
+       * gcc.dg/c2x-floatn-6.c: New test.
+       * gcc.dg/c2x-floatn-7.c: New test.
+       * gcc.dg/c2x-floatn-8.c: New test.
+
+2023-09-06  Lehua Ding  <lehua.ding@rivai.ai>
+
+       * gcc.target/riscv/rvv/autovec/cond/cond_sqrt-1.c: New test.
+       * gcc.target/riscv/rvv/autovec/cond/cond_sqrt-2.c: New test.
+       * gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-1.c: New test.
+       * gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-2.c: New test.
+
+2023-09-06  Jason Merrill  <jason@redhat.com>
+
+       * g++.dg/abi/no_unique_address8.C: New test.
+       * g++.dg/abi/no_unique_address8a.C: New test.
+
+2023-09-06  Tsukasa OI  <research_trasio@irq.a4lg.com>
+
+       * gcc.target/riscv/zicond-ice-2.c: New test.  This is based on
+       an ICE at libat_lock_n func on gcc/libatomic/config/posix/lock.c
+       but heavily minimized.
+
 2023-09-05  Christoph Müllner  <christoph.muellner@vrull.eu>
 
        * gcc.target/riscv/xtheadbb-li-rotr.c: New tests.
index 6197e498a93e20c72960d440e2e3682029ba7024..9897dcf0732767c264f1238050bce68e22b0e61a 100644 (file)
@@ -1,3 +1,15 @@
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * expr.cc (cpp_classify_number): Diagnose wb literal suffixes
+       for -pedantic* before C2X or -Wc11-c2x-compat.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * expr.cc (interpret_int_suffix): Handle wb and WB suffixes.
+       * include/cpplib.h (CPP_N_BITINT): Define.
+
 2023-08-07  Alan Modra  <amodra@gmail.com>
 
        * configure: Regenerate.
index 867a6f115deaf39e266c8390e65551fe280bfd04..25561ad0f7be9b3e89b2773ef23e05afc68e8cc8 100644 (file)
@@ -1,3 +1,69 @@
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * libgcc2.c (bitint_negate): Add function comment.
+       * soft-fp/bitint.h (bitint_negate): Add function comment.
+       (FP_TO_BITINT, FP_FROM_BITINT): Add comment explaining the macros.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * config/aarch64/t-softfp (softfp_extras): Use += rather than :=.
+       * config/i386/64/t-softfp (softfp_extras): Likewise.
+       * config/i386/libgcc-glibc.ver (GCC_14.0.0): Export _BitInt support
+       routines.
+       * config/i386/t-softfp (softfp_extras): Add fixxfbitint and
+       bf, hf and xf mode floatbitint.
+       (CFLAGS-floatbitintbf.c, CFLAGS-floatbitinthf.c): Add -msse2.
+       * config/riscv/t-softfp32 (softfp_extras): Use += rather than :=.
+       * config/rs6000/t-e500v1-fp (softfp_extras): Likewise.
+       * config/rs6000/t-e500v2-fp (softfp_extras): Likewise.
+       * config/t-softfp (softfp_floatbitint_funcs): New.
+       (softfp_bid_list): New.
+       (softfp_func_list): Add sf and df mode from and to _BitInt libcalls.
+       (softfp_bid_file_list): New.
+       (LIB2ADD_ST): Add $(softfp_bid_file_list).
+       * config/t-softfp-sfdftf (softfp_extras): Add fixtfbitint and
+       floatbitinttf.
+       * config/t-softfp-tf (softfp_extras): Likewise.
+       * libgcc2.c (bitint_reduce_prec): New inline function.
+       (BITINT_INC, BITINT_END): Define.
+       (bitint_mul_1, bitint_addmul_1): New helper functions.
+       (__mulbitint3): New function.
+       (bitint_negate, bitint_submul_1): New helper functions.
+       (__divmodbitint4): New function.
+       * libgcc2.h (LIBGCC2_UNITS_PER_WORD): When building _BitInt support
+       libcalls, redefine depending on __LIBGCC_BITINT_LIMB_WIDTH__.
+       (__mulbitint3, __divmodbitint4): Declare.
+       * libgcc-std.ver.in (GCC_14.0.0): Export _BitInt support routines.
+       * Makefile.in (lib2funcs): Add _mulbitint3.
+       (LIB2_DIVMOD_FUNCS): Add _divmodbitint4.
+       * soft-fp/bitint.h: New file.
+       * soft-fp/fixdfbitint.c: New file.
+       * soft-fp/fixsfbitint.c: New file.
+       * soft-fp/fixtfbitint.c: New file.
+       * soft-fp/fixxfbitint.c: New file.
+       * soft-fp/floatbitintbf.c: New file.
+       * soft-fp/floatbitintdf.c: New file.
+       * soft-fp/floatbitinthf.c: New file.
+       * soft-fp/floatbitintsf.c: New file.
+       * soft-fp/floatbitinttf.c: New file.
+       * soft-fp/floatbitintxf.c: New file.
+       * soft-fp/op-common.h (_FP_FROM_INT): Add support for rsize up to
+       4 * _FP_W_TYPE_SIZE rather than just 2 * _FP_W_TYPE_SIZE.
+       * soft-fp/bitintpow10.c: New file.
+       * soft-fp/fixsdbitint.c: New file.
+       * soft-fp/fixddbitint.c: New file.
+       * soft-fp/fixtdbitint.c: New file.
+       * soft-fp/floatbitintsd.c: New file.
+       * soft-fp/floatbitintdd.c: New file.
+       * soft-fp/floatbitinttd.c: New file.
+
+2023-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/102989
+       * soft-fp/bitintpow10.h: New file.
+
 2023-09-05  Yang Yujie  <yangyujie@loongson.cn>
 
        * config.host: add loongarch*-elf target.
index 3cdb26b52a7fce80abd537a54db0360dfd73e439..8f7b01e0563140e27345fef51bea4652e9a1698a 100644 (file)
@@ -1,3 +1,9 @@
+2023-09-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
+       for freestanding.
+       * configure: Regenerate.
+
 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
 
        PR libstdc++/111238