+2025-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
+ Guard VF-based costing with !m_costing_for_scalar.
+
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
+ * internal-fn.def (ACCESS_WITH_SIZE): Update comments.
+ * tree-object-size.cc (access_with_size_object_size): Update comments.
+ Adjust the arguments per the new design.
+
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ PR middle-end/121000
+ * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
+ * internal-fn.def (ACCESS_WITH_SIZE): Update comments.
+ * tree-object-size.cc (access_with_size_object_size): Update comments.
+ Get the element_size from the 6th argument directly.
+
+2025-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-sve2.md (aarch64_gather_ld1q): Replace with...
+ (@aarch64_gather_ld1q<mode>): ...this, parameterizing based on mode.
+ * config/aarch64/aarch64-sve-builtins-sve2.cc
+ (svld1q_gather_impl::expand): Update accordingly.
+ (svst1q_scatter_impl::expand): Use aarch64_sve_reinterpret
+ instead of force_lowpart_subreg.
+
+2025-07-10 Jan Hubicka <hubicka@ucw.cz>
+
+ * auto-profile.cc: Include output.h.
+ (function_instance::set_call_location): Also sanity check
+ that location is known.
+ (raw_symbol_name): Two new static functions.
+ (dump_inline_stack): Use it.
+ (string_table::get_index_by_decl): Likewise.
+ (function_instance::get_cgraph_node): Likewise.
+ (function_instance::get_function_instance_by_decl): Fix typo
+ in warning; use raw names; fix lineno decoding.
+ (match_with_target): Add containing funciton parameter;
+ correctly output function and call location in warning.
+ (function_instance::lookup_count): Fix warning locations.
+ (function_instance::match): Fix warning locations; avoid
+ crash with mismatched callee; do not warn about broken callsites
+ twice.
+ (autofdo_source_profile::offline_external_functions): Use
+ raw_assembler_name.
+ (walk_block): Use raw_assembler_name.
+
+2025-07-10 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR target/121014
+ * cfgexpand.cc (expand_debug_expr): Assert FLOAT_MODE_P.
+ * optabs-tree.cc (optab_for_tree_code): Assert FLOAT_TYPE_P.
+ * tree-vect-loop.cc (vect_get_loop_len): Use EXACT_DIV_EXPR.
+
+2025-07-10 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR target/118734
+ * config/riscv/constraints.md (Wdm): Use tunable for Wdm
+ constraint.
+ * config/riscv/riscv-protos.h (emit_avltype_insn): Declare.
+ (can_be_broadcasted_p): Rename to...
+ (can_be_broadcast_p): ...this.
+ * config/riscv/predicates.md: Use renamed function.
+ (strided_load_broadcast_p): Declare.
+ * config/riscv/riscv-selftests.cc (run_broadcast_selftests):
+ Only run broadcast selftest if strided broadcasts are OK.
+ * config/riscv/riscv-v.cc (emit_avltype_insn): New function.
+ (sew64_scalar_helper): Only emit a pred_broadcast if the new
+ tunable says so.
+ (can_be_broadcasted_p): Rename to...
+ (can_be_broadcast_p): ...this and use new tunable.
+ * config/riscv/riscv.cc (struct riscv_tune_param): Add strided
+ broad tunable.
+ (strided_load_broadcast_p): Implement.
+ * config/riscv/vector.md: Use strided_load_broadcast_p () and
+ work around 64-bit broadcast on rv32 targets.
+
+2025-07-10 Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+
+ * config/riscv/riscv.cc (riscv_fusion_pairs): Add new cases.
+ (riscv_set_is_add): New function.
+ (riscv_set_is_addi, riscv_set_is_adduw, riscv_set_is_shNadd): Likewise.
+ (riscv_set_is_shNadduw): Likewise.
+ (riscv_macro_fusion_pair_p): Add new fusion cases.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.cc (vect_analyze_slp): Fail for non-canonical
+ gconds.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.cc (vect_build_slp_instance): Do not use
+ SLP_TREE_VECTYPE to determine the conversion back to the
+ reduction IV.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vectorizable_reduction): Avoid
+ vect_is_simple_use and record a vector type if we come
+ up with one.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-stmts.cc (get_load_store_type): Do not use
+ vect_is_simple_use to fill gather/scatter offset operand
+ vectype and dt.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vect_model_reduction_cost): Get SLP
+ node instead of stmt_info and use that when recording costs.
+
+2025-07-10 Kyrylo Tkachov <ktkachov@nvidia.com>
+
+ PR target/120999
+ * config/aarch64/aarch64-sve2.md (*aarch64_sve2_nor<mode>):
+ Adjust movprfx alternative.
+
+2025-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * doc/sourcebuild.texi (aarch64_sve2_hw, aarch64_sve2p1_hw): Document.
+ * config/aarch64/aarch64.cc (aarch64_evpc_hvla): Extend to
+ BYTES_BIG_ENDIAN.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vect_analyze_stmt): Remove stmt-info
+ and need_to_vectorize arguments.
+ * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
+ Adjust.
+ * tree-vect-stmts.cc (can_vectorize_live_stmts): Remove
+ stmt_info argument and remove non-SLP path.
+ (vect_analyze_stmt): Remove stmt_info and need_to_vectorize
+ argument and prune paths no longer reachable.
+ (vect_transform_stmt): Adjust.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/x86-tune.def: Change "Tunning the" to "tuning" in
+ comment and use semicolon instead of dot in comment.
+ * loop-unroll.cc (decide_unroll_stupid): Comment spelling fix,
+ tunning -> tuning.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-vect-loop.cc (scale_profile_for_vect_loop): Comment
+ spelling fix: bellow -> below.
+ * ipa-polymorphic-call.cc (record_known_type): Likewise.
+ * config/i386/x86-tune.def: Likewise.
+ * config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend):
+ Likewise.
+ * tree-scalar-evolution.cc (iv_can_overflow_p): Likewise.
+ * ipa-devirt.cc (add_type_duplicate): Likewise.
+ * tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Likewise.
+ * gimple-ssa-sccopy.cc: Likewise.
+ * cgraphunit.cc: Likewise.
+ * graphite.h (struct poly_dr): Likewise.
+ * ipa-reference.cc (ignore_edge_p): Likewise.
+ * tree-ssa-alias.cc (ao_compare::compare_ao_refs): Likewise.
+ * profile-count.h (profile_probability::probably_reliable_p):
+ Likewise.
+ * ipa-inline-transform.cc (inline_call): Likewise.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Remove.
+ (vect_analyze_loop_2): Do not call it.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vect_active_double_reduction_p): Remove.
+ (vect_analyze_loop_operations): Remove.
+ (vect_analyze_loop_2): Do not call it.
+
+2025-07-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vect_determine_vf_for_stmt_1): Rename
+ to ...
+ (vect_determine_vectype_for_stmt_1): ... this and only set
+ STMT_VINFO_VECTYPE. Fail for single-element vector types.
+ (vect_determine_vf_for_stmt): Rename to ...
+ (vect_determine_vectype_for_stmt): ... this and only set
+ STMT_VINFO_VECTYPE. Fail for single-element vector types.
+ (vect_determine_vectorization_factor): Rename to ...
+ (vect_set_stmts_vectype): ... this and only set STMT_VINFO_VECTYPE.
+ (vect_update_vf_for_slp): Remove.
+ (vect_analyze_loop_operations): Remove walk over stmts.
+ (vect_analyze_loop_2): Call vect_set_stmts_vectype instead of
+ vect_determine_vectorization_factor. Set vectorization factor
+ from LOOP_VINFO_SLP_UNROLLING_FACTOR. Fail if vect_detect_hybrid_slp
+ detects hybrid stmts or when vect_make_slp_decision finds
+ nothing to SLP.
+ * tree-vect-slp.cc (vect_detect_hybrid_slp): Move check
+ whether we have any hybrid stmts here from vect_update_vf_for_slp
+ * tree-vect-stmts.cc (vect_analyze_stmt): Remove loop over
+ stmts.
+ * tree-vectorizer.h (vect_detect_hybrid_slp): Update.
+
2025-07-09 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Account
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * par-load.adb: Comment spelling fix: bellow -> below.
+ * libgnarl/s-taskin.ads: Likewise.
+
2025-07-04 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/Make-lang.in (ACATSDIR): Change to acats-4.
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/117785
+ * c-cppbuiltin.cc (c_cpp_builtins): Predefine
+ __cpp_constexpr_exceptions=202411L for C++26.
+
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ * c-ubsan.cc (get_bound_from_access_with_size): Adjust the position
+ of the arguments per the new design.
+
2025-07-07 Qing Zhao <qing.zhao@oracle.com>
Revert:
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ * c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
+ Adjust the arguments per the new design.
+
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ PR middle-end/121000
+ * c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
+ Pass TYPE_SIZE_UNIT of the element as the 6th argument.
+
2025-07-07 Qing Zhao <qing.zhao@oracle.com>
Revert:
+2025-07-10 James K. Lowden <jklowden@cobolworx.com>
+
+ PR cobol/120765
+ * cdf.y: Extend grammar for new CDF syntax, relocate dictionary.
+ * cdfval.h (cdf_dictionary): Use new CDF dictionary.
+ * dts.h: Remove useless assignment, note incorrect behavior.
+ * except.cc: Remove obsolete EC state.
+ * gcobol.1: Document CDF in its own section.
+ * genapi.cc (parser_statement_begin): Use new EC state function.
+ (parser_file_merge): Same.
+ (parser_check_fatal_exception): Same.
+ * genutil.cc (get_and_check_refstart_and_reflen): Same.
+ (get_depending_on_value_from_odo): Same.
+ (get_data_offset): Same.
+ (process_this_exception): Same.
+ * lexio.cc (check_push_pop_directive): New function.
+ (check_source_format_directive): Restrict regex search to 1 line.
+ (cdftext::free_form_reference_format): Use new function.
+ * parse.y: Define new CDF tokens, use new CDF state.
+ * parse_ante.h (cdf_tokens): Use new CDF state.
+ (redefined_token): Same.
+ (class prog_descr_t): Remove obsolete CDF state.
+ (class program_stack_t): Same.
+ (current_call_convention): Same.
+ * scan.l: Recognize new CDF tokens.
+ * scan_post.h (is_cdf_token): Same.
+ * symbols.h (cdf_current_tokens): Change current_call_convention to return void.
+ * token_names.h: Regenerate.
+ * udf/stored-char-length.cbl: Use new PUSH/POP CDF functionality.
+ * util.cc (class cdf_directives_t): Define cdf_directives_t.
+ (current_call_convention): Same.
+ (cdf_current_tokens): Same.
+ (cdf_dictionary): Same.
+ (cdf_enabled_exceptions): Same.
+ (cdf_push): Same.
+ (cdf_push_call_convention): Same.
+ (cdf_push_current_tokens): Same.
+ (cdf_push_dictionary): Same.
+ (cdf_push_enabled_exceptions): Same.
+ (cdf_push_source_format): Same.
+ (cdf_pop): Same.
+ (cdf_pop_call_convention): Same.
+ (cdf_pop_current_tokens): Same.
+ (cdf_pop_dictionary): Same.
+ (cdf_pop_enabled_exceptions): Same.
+ (cdf_pop_source_format): Same.
+ * util.h (cdf_push): Declare cdf_directives_t.
+ (cdf_push_call_convention): Same.
+ (cdf_push_current_tokens): Same.
+ (cdf_push_dictionary): Same.
+ (cdf_push_enabled_exceptions): Same.
+ (cdf_push_source_format): Same.
+ (cdf_pop): Same.
+ (cdf_pop_call_convention): Same.
+ (cdf_pop_current_tokens): Same.
+ (cdf_pop_dictionary): Same.
+ (cdf_pop_source_format): Same.
+ (cdf_pop_enabled_exceptions): Same.
+
2025-07-09 Robert Dubner <rdubner@symas.com>
James K. Lowden <jklowden@cobolworx.com>
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * cp-tree.h (struct lang_type): Add comment before key_method.
+ Remove lambda_expr.
+ (CLASSTYPE_KEY_METHOD): Give NULL_TREE if not TYPE_POLYMORPHIC_P.
+ (SET_CLASSTYPE_KEY_METHOD): Define.
+ (CLASSTYPE_LAMBDA_EXPR): Give NULL_TREE if TYPE_POLYMORPHIC_P.
+ Use key_method member instead of lambda_expr.
+ (SET_CLASSTYPE_LAMBDA_EXPR): Define.
+ * class.cc (determine_key_method): Use SET_CLASSTYPE_KEY_METHOD
+ macro.
+ * decl.cc (xref_tag): Use SET_CLASSTYPE_LAMBDA_EXPR macro.
+ * lambda.cc (begin_lambda_type): Likewise.
+ * module.cc (trees_in::read_class_def): Use SET_CLASSTYPE_LAMBDA_EXPR
+ and SET_CLASSTYPE_KEY_METHOD macros, assert lambda is NULL if
+ TYPE_POLYMORPHIC_P and otherwise assert key_method is NULL.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120628
+ * parser.cc (cp_parser_elaborated_type_specifier): Use
+ cp_parser_nth_token_starts_class_definition_p with extra argument 1
+ instead of cp_parser_next_token_starts_class_definition_p.
+ (cp_parser_class_property_specifier_seq_opt): For final conditional
+ keyword in C++98 check if the token after it isn't
+ cp_parser_nth_token_starts_class_definition_p nor CPP_NAME and in
+ that case break without consuming it nor warning.
+ (cp_parser_class_head): Use
+ cp_parser_nth_token_starts_class_definition_p with extra argument 1
+ instead of cp_parser_next_token_starts_class_definition_p.
+ (cp_parser_next_token_starts_class_definition_p): Renamed to ...
+ (cp_parser_nth_token_starts_class_definition_p): ... this. Add N
+ argument. Use cp_lexer_peek_nth_token instead of cp_lexer_peek_token.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120569
+ * parser.cc (cp_parser_class_property_specifier_seq_opt): New
+ function.
+ (cp_parser_class_head): Use it instead of
+ cp_parser_property_specifier_seq_opt. Don't diagnose
+ VIRT_SPEC_OVERRIDE here. Formatting fix.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/117785
+ * constexpr.cc: Implement C++26 P3068R5 - constexpr exceptions.
+ (class constexpr_global_ctx): Add caught_exceptions and
+ uncaught_exceptions members.
+ (constexpr_global_ctx::constexpr_global_ctx): Initialize
+ uncaught_exceptions.
+ (returns, breaks, continues, switches): Move earlier.
+ (throws): New function.
+ (exception_what_str, diagnose_std_terminate,
+ diagnose_uncaught_exception): New functions.
+ (enum cxa_builtin): New type.
+ (cxx_cxa_builtin_fn_p, cxx_eval_cxa_builtin_fn): New functions.
+ (cxx_eval_builtin_function_call): Add jump_target argument. Call
+ cxx_eval_cxa_builtin_fn for __builtin_eh_ptr_adjust_ref. Adjust
+ cxx_eval_constant_expression calls, if it results in jmp_target,
+ set *jump_target to it and return.
+ (cxx_bind_parameters_in_call): Add jump_target argument. Pass
+ it through to cxx_eval_constant_expression. If it sets *jump_target,
+ break.
+ (fold_operand): Adjust cxx_eval_constant_expression caller.
+ (cxx_eval_assert): Likewise. If it set jmp_target, return true.
+ (cxx_eval_internal_function): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression. Return early if *jump_target
+ after recursing on args.
+ (cxx_eval_dynamic_cast_fn): Likewise. Don't set reference_p for
+ C++26 with -fexceptions.
+ (cxx_eval_thunk_call): Add jump_target argument. Pass it through
+ to cxx_eval_constant_expression.
+ (cxx_set_object_constness): Likewise. Don't set TREE_READONLY if
+ throws (jump_target).
+ (cxx_eval_call_expression): Add jump_target argument. Pass it
+ through to cxx_eval_internal_function, cxx_eval_builtin_function_call,
+ cxx_eval_thunk_call, cxx_eval_dynamic_cast_fn and
+ cxx_set_object_constness. Pass it through also
+ cxx_eval_constant_expression on arguments, cxx_bind_parameters_in_call
+ and cxx_fold_indirect_ref and for those cases return early
+ if *jump_target. Call cxx_eval_cxa_builtin_fn for cxx_cxa_builtin_fn_p
+ functions. For cxx_eval_constant_expression on body, pass address of
+ cleared jmp_target automatic variable, if it throws propagate
+ to *jump_target and make it non-cacheable. For C++26 don't diagnose
+ calls to non-constexpr functions before cxx_bind_parameters_in_call
+ could report some argument throwing an exception.
+ (cxx_eval_unary_expression): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression and return early
+ if *jump_target after the call.
+ (cxx_fold_pointer_plus_expression): Likewise.
+ (cxx_eval_binary_expression): Likewise and similarly for
+ cxx_fold_pointer_plus_expression call.
+ (cxx_eval_conditional_expression): Pass jump_target to
+ cxx_eval_constant_expression on first operand and return early
+ if *jump_target after the call.
+ (cxx_eval_vector_conditional_expression): Add jump_target argument.
+ Pass it through to cxx_eval_constant_expression for all 3 arguments
+ and return early if *jump_target after any of those calls.
+ (get_array_or_vector_nelts): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression.
+ (eval_and_check_array_index): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression calls and return early after
+ each of them if *jump_target.
+ (cxx_eval_array_reference): Likewise.
+ (cxx_eval_component_reference): Likewise.
+ (cxx_eval_bit_field_ref): Likewise.
+ (cxx_eval_bit_cast): Likewise. Assert CHECKING_P call doesn't
+ throw or return.
+ (cxx_eval_logical_expression): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression calls and return early after
+ each of them if *jump_target.
+ (cxx_eval_bare_aggregate): Likewise.
+ (cxx_eval_vec_init_1): Add jump_target argument. Pass it through
+ to cxx_eval_bare_aggregate and recursive call. Pass it through
+ to get_array_or_vector_nelts and cxx_eval_constant_expression
+ and return early after it if *jump_target.
+ (cxx_eval_vec_init): Add jump_target argument. Pass it through
+ to cxx_eval_constant_expression and cxx_eval_vec_init_1.
+ (cxx_union_active_member): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression and return early after it
+ if *jump_target.
+ (cxx_fold_indirect_ref_1): Add jump_target argument. Pass it
+ through to cxx_union_active_member and recursive calls.
+ (cxx_eval_indirect_ref): Add jump_target argument. Pass it through
+ to cxx_fold_indirect_ref_1 calls and to recursive call, in which
+ case return early after it if *jump_target.
+ (cxx_fold_indirect_ref): Add jump_target argument. Pass it through
+ to cxx_fold_indirect_ref and cxx_eval_constant_expression calls and
+ return early after those if *jump_target.
+ (cxx_eval_trinary_expression): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression calls and return early after
+ those if *jump_target.
+ (cxx_eval_store_expression): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression and eval_and_check_array_index
+ calls and return early after those if *jump_target.
+ (cxx_eval_increment_expression): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression calls and return early after
+ those if *jump_target.
+ (label_matches): Handle VAR_DECL case.
+ (cxx_eval_statement_list): Remove local_target variable and
+ !jump_target handling. Handle throws (jump_target) like returns or
+ breaks.
+ (cxx_eval_loop_expr): Remove local_target variable and !jump_target
+ handling. Pass it through to cxx_eval_constant_expression. Handle
+ throws (jump_target) like returns.
+ (cxx_eval_switch_expr): Pass jump_target through to
+ cxx_eval_constant_expression on cond, return early after it
+ if *jump_target.
+ (build_new_constexpr_heap_type): Add jump_target argument. Pass it
+ through to cxx_eval_constant_expression calls, return early after
+ those if *jump_target.
+ (merge_jump_target): New function.
+ (cxx_eval_constant_expression): Make jump_target argument no longer
+ defaulted, don't test jump_target for NULL. Pass jump_target
+ through to recursive calls, cxx_eval_call_expression,
+ cxx_eval_store_expression, cxx_eval_indirect_ref,
+ cxx_eval_unary_expression, cxx_eval_binary_expression,
+ cxx_eval_logical_expression, cxx_eval_array_reference,
+ cxx_eval_component_reference, cxx_eval_bit_field_ref,
+ cxx_eval_vector_conditional_expression, cxx_eval_bare_aggregate,
+ cxx_eval_vec_init, cxx_eval_trinary_expression, cxx_fold_indirect_ref,
+ build_new_constexpr_heap_type, cxx_eval_increment_expression,
+ cxx_eval_bit_cast and return earlyu after some of those
+ if *jump_target as needed.
+ (cxx_eval_constant_expression) <case TARGET_EXPR>: For C++26 push
+ also CLEANUP_EH_ONLY cleanups, with NULL_TREE marker after them.
+ (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't
+ override *jump_target if throws (jump_target).
+ (cxx_eval_constant_expression) <case TRY_CATCH_EXPR, case TRY_BLOCK,
+ case MUST_NOT_THROW_EXPR, case TRY_FINALLY_EXPR, case CLEANUP_STMT>:
+ Handle C++26 constant expressions.
+ (cxx_eval_constant_expression) <case CLEANUP_POINT_EXPR>: For C++26
+ with throws (jump_target) evaluate the CLEANUP_EH_ONLY cleanups as
+ well, and if not throws (jump_target) skip those. Set *jump_target
+ if some of the cleanups threw.
+ (cxx_eval_constant_expression) <case THROW_EXPR>: Recurse on operand
+ for C++26.
+ (cxx_eval_outermost_constant_expr): Diagnose uncaught exceptions both
+ from main expression and cleanups, diagnose also
+ break/continue/returns from the main expression. Handle
+ CLEANUP_EH_ONLY cleanup markers. Don't diagnose mutable poison stuff
+ if non_constant_p. Use different diagnostics for non-deleted heap
+ allocations if they were allocated by __cxa_allocate_exception.
+ (callee_might_throw): New function.
+ (struct check_for_return_continue_data): Add could_throw field.
+ (check_for_return_continue): Handle AGGR_INIT_EXPR and CALL_EXPR and
+ set d->could_throw if they could throw.
+ (potential_constant_expression_1): For CALL_EXPR allow
+ cxx_dynamic_cast_fn_p calls. For C++26 set *jump_target to void_node
+ for calls that could throw. For C++26 if call to non-constexpr call
+ is seen, try to evaluate arguments first and if they could throw,
+ don't diagnose call to non-constexpr function nor return false.
+ Adjust check_for_return_continue_data initializers and
+ set *jump_target to void_node if data.could_throw_p. For C++26
+ recurse on THROW_EXPR argument. Add comment explaining TRY_BLOCK
+ handling with C++26 exceptions. Handle throws like returns in some
+ cases.
+ * cp-tree.h (MUST_NOT_THROW_NOEXCEPT_P, MUST_NOT_THROW_THROW_P,
+ MUST_NOT_THROW_CATCH_P, DECL_EXCEPTION_REFCOUNT): Define.
+ (DECL_LOCAL_DECL_P): Fix comment typo, VARIABLE_DECL -> VAR_DECL.
+ (enum cp_built_in_function): Add CP_BUILT_IN_EH_PTR_ADJUST_REF,
+ (handler_match_for_exception_type): Declare.
+ * call.cc (handler_match_for_exception_type): New function.
+ * except.cc (initialize_handler_parm): Set MUST_NOT_THROW_CATCH_P
+ on newly created MUST_NOT_THROW_EXPR.
+ (begin_eh_spec_block): Set MUST_NOT_THROW_NOEXCEPT_P.
+ (wrap_cleanups_r): Set MUST_NOT_THROW_THROW_P.
+ (build_throw): Add another TARGET_EXPR whose scope spans
+ until after the __cxa_throw call and copy pointer value from ptr
+ to it and use it in __cxa_throw argument.
+ * tree.cc (builtin_valid_in_constant_expr_p): Handle
+ CP_BUILT_IN_EH_PTR_ADJUST_REF.
+ * decl.cc (cxx_init_decl_processing): Initialize
+ __builtin_eh_ptr_adjust_ref FE builtin.
+ * pt.cc (tsubst_stmt) <case MUST_NOT_THROW_EXPR>: Copy the
+ MUST_NOT_THROW_NOEXCEPT_P, MUST_NOT_THROW_THROW_P and
+ MUST_NOT_THROW_CATCH_P flags.
+ * cp-gimplify.cc (cp_gimplify_expr) <case CALL_EXPR>: Error on
+ non-folded CP_BUILT_IN_EH_PTR_ADJUST_REF calls.
+
2025-07-09 Jason Merrill <jason@redhat.com>
PR c++/121012
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120628
+ * g++.dg/cpp0x/final1.C: New test.
+ * g++.dg/cpp0x/final2.C: New test.
+ * g++.dg/cpp0x/override6.C: New test.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/120569
+ * g++.dg/cpp0x/override2.C: Expect different diagnostics with
+ override or duplicate final.
+ * g++.dg/cpp0x/override5.C: New test.
+ * g++.dg/cpp0x/duplicate1.C: Expect different diagnostics with
+ duplicate final.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/117785
+ * g++.dg/cpp0x/constexpr-ellipsis2.C: Expect different diagnostics for
+ C++26.
+ * g++.dg/cpp0x/constexpr-throw.C: Likewise.
+ * g++.dg/cpp1y/constexpr-84192.C: Expect different diagnostics.
+ * g++.dg/cpp1y/constexpr-throw.C: Expect different diagnostics for
+ C++26.
+ * g++.dg/cpp1z/constexpr-asm-5.C: Likewise.
+ * g++.dg/cpp26/constexpr-eh1.C: New test.
+ * g++.dg/cpp26/constexpr-eh2.C: New test.
+ * g++.dg/cpp26/constexpr-eh3.C: New test.
+ * g++.dg/cpp26/constexpr-eh4.C: New test.
+ * g++.dg/cpp26/constexpr-eh5.C: New test.
+ * g++.dg/cpp26/constexpr-eh6.C: New test.
+ * g++.dg/cpp26/constexpr-eh7.C: New test.
+ * g++.dg/cpp26/constexpr-eh8.C: New test.
+ * g++.dg/cpp26/constexpr-eh9.C: New test.
+ * g++.dg/cpp26/constexpr-eh10.C: New test.
+ * g++.dg/cpp26/constexpr-eh11.C: New test.
+ * g++.dg/cpp26/constexpr-eh12.C: New test.
+ * g++.dg/cpp26/constexpr-eh13.C: New test.
+ * g++.dg/cpp26/constexpr-eh14.C: New test.
+ * g++.dg/cpp26/constexpr-eh15.C: New test.
+ * g++.dg/cpp26/feat-cxx26.C: Change formatting in __cpp_pack_indexing
+ and __cpp_pp_embed test. Add __cpp_constexpr_exceptions test.
+ * g++.dg/cpp26/static_assert1.C: Expect different diagnostics for
+ C++26.
+ * g++.dg/cpp2a/consteval34.C: Likewise.
+ * g++.dg/cpp2a/consteval-memfn1.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic4.C: For C++26 add std::exception and
+ std::bad_cast definitions and expect different diagnostics.
+ * g++.dg/cpp2a/constexpr-dynamic6.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic7.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic8.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic9.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic11.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic14.C: Likewise.
+ * g++.dg/cpp2a/constexpr-dynamic18.C: Likewise.
+ * g++.dg/cpp2a/constexpr-new27.C: New test.
+ * g++.dg/cpp2a/constexpr-typeid5.C: New test.
+
+2025-07-10 Qing Zhao <qing.zhao@oracle.com>
+
+ PR middle-end/121000
+ * gcc.dg/flex-array-counted-by-pr121000.c: New test.
+
+2025-07-10 Mikael Morin <mikael@gcc.gnu.org>
+
+ * gfortran.dg/asan/array_constructor_1.f90: Allocate array
+ before using it.
+
+2025-07-10 Jan Hubicka <hubicka@ucw.cz>
+
+ * gcc.dg/tree-prof/afdo-inline.c: Add user symbol names.
+
+2025-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/pfalse-binary.c: Add -funwind-tables.
+ * gcc.target/aarch64/sve/pfalse-binary_int_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binary_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binary_opt_single_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binary_rotate.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binary_uint64_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binary_uint_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-binaryxn.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-clast.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-compare_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-compare_wide_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-count_pred.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-fold_left.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_ext.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_ext_gather_index.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_ext_gather_offset.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_gather_sv.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_gather_vs.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-load_replicate.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-prefetch.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-prefetch_gather_index.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-prefetch_gather_offset.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-ptest.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-rdffr.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-reduction.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-reduction_wide.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-shift_right_imm.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-store.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-store_scatter_index.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-store_scatter_offset.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-storexn.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-ternary_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-ternary_rotate.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary_convert_narrowt.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary_convertxn.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary_n.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary_pred.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unary_to_uint.c: Likewise.
+ * gcc.target/aarch64/sve/pfalse-unaryxn.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_int_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_int_opt_single_n.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_opt_single_n.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_to_uint.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_uint_opt_n.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-binary_wide.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-compare.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-load_ext_gather_index_restricted.c,
+ * gcc.target/aarch64/sve2/pfalse-load_ext_gather_offset_restricted.c,
+ * gcc.target/aarch64/sve2/pfalse-load_gather_sv_restricted.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-load_gather_vs.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-shift_left_imm_to_uint.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-shift_right_imm.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-store_scatter_index_restricted.c,
+ * gcc.target/aarch64/sve2/pfalse-store_scatter_offset_restricted.c,
+ * gcc.target/aarch64/sve2/pfalse-unary.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-unary_convert.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-unary_convert_narrowt.c: Likewise.
+ * gcc.target/aarch64/sve2/pfalse-unary_to_int.c: Likewise.
+
+2025-07-10 Kyrylo Tkachov <ktkachov@nvidia.com>
+
+ PR target/120999
+ * gcc.target/aarch64/sve2/pr120999.c: New test.
+
+2025-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ * lib/target-supports.exp (check_effective_target_aarch64_sve2p1_hw):
+ New proc.
+ * gcc.target/aarch64/sve2/dupq_1.c: Extend to big-endian. Add
+ noipa attributes.
+ * gcc.target/aarch64/sve2/extq_1.c: Likewise.
+ * gcc.target/aarch64/sve2/uzpq_1.c: Likewise.
+ * gcc.target/aarch64/sve2/zipq_1.c: Likewise.
+ * gcc.target/aarch64/sve2/dupq_1_run.c: New test.
+ * gcc.target/aarch64/sve2/extq_1_run.c: Likewise.
+ * gcc.target/aarch64/sve2/uzpq_1_run.c: Likewise.
+ * gcc.target/aarch64/sve2/zipq_1_run.c: Likewise.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortran.dg/g77/980310-3.f: Comment spelling fix: bellow -> below.
+ * jit.dg/test-debuginfo.c: Likewise.
+
+2025-07-10 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/sat/sat_s_add-run-1-i16.c: Take rv32 || rv64
+ instead of riscv_v for scalar run test.
+ * gcc.target/riscv/sat/sat_s_add-run-1-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-1-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-1-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-2-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-2-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-2-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-2-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-3-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-3-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-3-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-3-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-4-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-4-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-4-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_add-run-4-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-1-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-1-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-1-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-1-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-2-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-2-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-2-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-2-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-3-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-3-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-3-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-3-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-4-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-4-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-4-i64.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_sub-run-4-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i16-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i16.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i32.c: Ditto.
+ * gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-1-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-1-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-1-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-1-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-2-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-2-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-2-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-2-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-3-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-3-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-3-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-3-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-4-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-4-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-4-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-4-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-5-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-5-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-5-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-5-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-6-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-6-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-6-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-6-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-1-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-1-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-1-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-1-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-10-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-10-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-10-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-10-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-11-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-11-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-11-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-11-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-12-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-12-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-12-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-12-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-2-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-2-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-2-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-2-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-3-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-3-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-3-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-3-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-4-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-4-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-4-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-4-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-5-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-5-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-5-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-5-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-6-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-6-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-6-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-6-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-7-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-7-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-7-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-7-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-8-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-8-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-8-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-8-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-9-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-9-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-9-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub-run-9-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-1-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-2-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-3-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_sub_imm-run-4-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-1-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-1-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-1-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-1-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-2-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-2-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-2-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-2-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-3-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-3-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-3-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-3-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-4-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-4-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-4-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-4-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-5-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-5-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-5-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-5-u8.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-6-u16.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-6-u32.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-6-u64.c: Ditto.
+ * gcc.target/riscv/sat/sat_u_trunc-run-6-u8.c: Ditto.
+
2025-07-09 Jason Merrill <jason@redhat.com>
PR c++/120243
+2025-07-10 Jan Dubiec <jdx@o2.pl>
+
+ PR target/116363
+ * libgcc2.c (__fixunssfDI): Fix SFtype to UDWtype conversion for targets
+ without LIBGCC2_HAS_DF_MODE defined
+
2025-05-27 Jakub Jelinek <jakub@redhat.com>
* config/t-softfp (softfp_bid_list): Don't guard with
+2025-07-10 James K. Lowden <jklowden@cobolworx.com>
+
+ * common-defs.h (cdf_enabled_exceptions): Use new CDF state.
+
2025-07-09 Robert Dubner <rdubner@symas.com>
James K. Lowden <jklowden@cobolworx.com>
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/117785
+ * include/bits/version.def (constexpr_exceptions): New.
+ * include/bits/version.h: Regenerate.
+ * libsupc++/exception (std::bad_exception::bad_exception): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_exception::~bad_exception, std::bad_exception::what): For
+ C++26 add constexpr and define inline.
+ * libsupc++/exception.h (std::exception::exception,
+ std::exception::operator=): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception::~exception, std::exception::what): For C++26 add
+ constexpr and define inline.
+ * libsupc++/exception_ptr.h (std::make_exception_ptr): Add
+ _GLIBCXX26_CONSTEXPR. For if consteval use just throw with
+ current_exception() in catch.
+ (std::exception_ptr::exception_ptr(void*)): For C++26 add constexpr
+ and define inline.
+ (std::exception_ptr::exception_ptr()): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::exception_ptr(const exception_ptr&)): Likewise.
+ Use __builtin_eh_ptr_adjust_ref if consteval and compiler has it
+ instead of _M_addref.
+ (std::exception_ptr::exception_ptr(nullptr_t)): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::exception_ptr(exception_ptr&&)): Likewise.
+ (std::exception_ptr::operator=): Likewise.
+ (std::exception_ptr::~exception_ptr): Likewise. Use
+ __builtin_eh_ptr_adjust_ref if consteval and compiler has it
+ instead of _M_release.
+ (std::exception_ptr::swap): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::operator bool): Likewise.
+ (std::exception_ptr::operator==): Likewise.
+ * libsupc++/nested_exception.h
+ (std::nested_exception::nested_exception): Add _GLIBCXX26_CONSTEXPR.
+ (std::nested_exception::operator=): Likewise.
+ (std::nested_exception::~nested_exception): For C++26 add constexpr
+ and define inline.
+ (std::nested_exception::rethrow_if_nested): Add _GLIBCXX26_CONSTEXPR.
+ (std::nested_exception::nested_ptr): Likewise.
+ (std::_Nested_exception::_Nested_exception): Likewise.
+ (std::throw_with_nested, std::rethrow_if_nested): Likewise.
+ * libsupc++/new (std::bad_alloc::bad_alloc): Likewise.
+ (std::bad_alloc::operator=): Likewise.
+ (std::bad_alloc::~bad_alloc): For C++26 add constexpr and define
+ inline.
+ (std::bad_alloc::what): Likewise.
+ (std::bad_array_new_length::bad_array_new_length): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_array_new_length::~bad_array_new_length): For C++26 add
+ constexpr and define inline.
+ (std::bad_array_new_length::what): Likewise.
+ * libsupc++/typeinfo (std::bad_cast::bad_cast): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_cast::~bad_cast): For C++26 add constexpr and define inline.
+ (std::bad_cast::what): Likewise.
+ (std::bad_typeid::bad_typeid): Add _GLIBCXX26_CONSTEXPR.
+ (std::bad_typeid::~bad_typeid): For C++26 add constexpr and define
+ inline.
+ (std::bad_typeid::what): Likewise.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/22_locale/codecvt/codecvt_unicode.h
+ (ucs2_to_utf8_out_error): Comment spelling fix: bellow -> below.
+ (utf16_to_ucs2_in_error): Likewise.
+
2025-07-09 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_uninitialized.h (__uninitialized_default):