aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog310
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/analyzer/ChangeLog29
-rw-r--r--gcc/c-family/ChangeLog52
-rw-r--r--gcc/c/ChangeLog44
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog268
-rw-r--r--libcpp/ChangeLog12
-rw-r--r--libgcc/ChangeLog66
-rw-r--r--libstdc++-v3/ChangeLog6
10 files changed, 793 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 08705e1..1797b17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5fa6158..11df268 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20230906
+20230907
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog
index c9277bf..12c8578 100644
--- a/gcc/analyzer/ChangeLog
+++ b/gcc/analyzer/ChangeLog
@@ -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
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 3559e4c..61720c1 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -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
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index b43d96a..32d133b 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -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
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1d97cc9..c2dcca1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6e086b1..2251e6f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 6197e49..9897dcf 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -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.
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 867a6f1..25561ad 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3cdb26b..8f7b01e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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