https://gcc.gnu.org/g:f48affe7bf3c97b3f3d8cc1bf1901f308b0cb9a7
commit r17-4156-gf48affe7bf3c97b3f3d8cc1bf1901f308b0cb9a7 Author: GCC Administrator <[email protected]> Date: Fri Sep 11 08:56:57 2026 +0000 Daily bump. Diff: --- ChangeLog | 5 + contrib/ChangeLog | 5 + gcc/ChangeLog | 410 ++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/algol68/ChangeLog | 13 ++ gcc/c-family/ChangeLog | 7 + gcc/c/ChangeLog | 13 ++ gcc/cobol/ChangeLog | 11 + gcc/cp/ChangeLog | 50 ++++ gcc/lto/ChangeLog | 6 + gcc/rust/ChangeLog | 480 ++++++++++++++++++++++++++++++++++++++ gcc/testsuite/ChangeLog | 235 +++++++++++++++++++ libgcc/config/avr/libf7/ChangeLog | 9 + libgcobol/ChangeLog | 17 ++ libgomp/ChangeLog | 5 + libstdc++-v3/ChangeLog | 72 ++++++ 16 files changed, 1339 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b977bbd48b87..d3f15ca7059d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2026-09-10 Rohith Kapelli <[email protected]> + + * MAINTAINERS.yml: Add myself to Write After Approval and DCO. + * MAINTAINERS: Regenerate. + 2026-09-04 Arthur Cohen <[email protected]> * MAINTAINERS.yml: Update my email, add a section for inactive emails. diff --git a/contrib/ChangeLog b/contrib/ChangeLog index f5e36f2c5189..6c85f6f49773 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,8 @@ +2026-09-11 Richard Biener <[email protected]> + + * gcc-changelog/git_update_version.py: Remove gcc-13 branch + from active branches. + 2026-09-09 Kyrylo Tkachov <[email protected]> * filter-clang-warnings.py (skip_warning): Match insn-emit rather diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b2d1dd5b5df2..a068d063e90a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,413 @@ +2026-09-11 Kyrylo Tkachov <[email protected]> + + * tree-eh.cc (tree_could_trap_1, tree_could_trap_p): Clarify the + function comments. + (lhs_could_trap_p): Correct the function comment. + +2026-09-11 Richard Biener <[email protected]> + + * tree-pretty-print.cc (dump_generic_node): Adjust -gimple + dumping for clobbers. + +2026-09-11 H.J. Lu <[email protected]> + + PR target/127020 + * config/i386/i386-features.cc + (timode_scalar_chain::compute_convert_gain): Add gain of + COSTS_N_INSNS (1) for pand/pior/pxor loads. + +2026-09-10 Andrea Pinski <[email protected]> + + PR middle-end/127308 + * genmatch.cc (operator==): Move earlier. + (c_code_id::gen_checking): Correct the check for CONVERT_EXPR/NOP_EXPR. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/pdp11/pdp11.cc (pdp11_rtx_costs): Move src assignment + into the blocks that need it. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Fix + two places that returned a cost directly so that they now store + the cost in *total and return true. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/mmix/mmix-protos.h (mmix_eh_return_data_regno): Return + unsigned int rather than int. + * config/mmix/mmix.cc (mmix_eh_return_data_regno): Likewise. + (mmix_initial_elimination_offset): Limit regno variables to + their for loops and use unsigned regnos for EH data queries. + (mmix_use_simple_return): Likewise. + (mmix_expand_prologue): Likewise. + (mmix_expand_epilogue): Likewise. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/gcn/gcn.cc (gcn_init_cumulative_args): Start the + inform message with a lowercase letter. Quote the option name. + +2026-09-10 Aldy Hernandez <[email protected]> + + * tree-ssa-threadbackward.cc (back_threader_profitability): + Remove the note on bb_insns. + (back_threader_profitability::possibly_profitable_path_p): Dump + each block's insn count. + +2026-09-10 Aldy Hernandez <[email protected]> + + * tree-ssa-threadbackward.cc (back_threader_profitability): Add + push_bb, pop_bb, m_loop, unwind_state and m_unwind; add n_insns + to path_stats; replace m_n_insns with a net_insns accessor. + (back_threader_profitability::back_threader_profitability): + Initialize m_loop and m_stats. + (back_threader_profitability::account_bb): Return the number of + insns in the block. + (back_threader_profitability::push_bb): New. + (back_threader_profitability::pop_bb): New. + (back_threader_profitability::possibly_profitable_path_p): Use + the accumulated stats. + (back_threader_profitability::profitable_path_p): Likewise. + (back_threader::find_paths_to_names): Call push_bb/pop_bb. + +2026-09-10 Aldy Hernandez <[email protected]> + + * tree-ssa-threadbackward.cc (back_threader_profitability): Add + path_stats and m_stats; move m_threaded_through_latch, + m_multiway_branch_in_path, m_contains_hot_bb and + m_unprofitable_bb into it. + (back_threader_profitability::account_bb): Adjust. + (back_threader_profitability::possibly_profitable_path_p): + Adjust. + (back_threader_profitability::profitable_path_p): Adjust. + +2026-09-10 Aldy Hernandez <[email protected]> + + * tree-ssa-threadbackward.cc (back_threader_profitability): Add + account_bb and m_unprofitable_bb. + (back_threader_profitability::account_bb): New. + (back_threader_profitability::possibly_profitable_path_p): Use it. + +2026-09-10 Aldy Hernandez <[email protected]> + + * tree-ssa-threadbackward.cc + (back_threader_profitability::possibly_profitable_path_p): Dump + the path after counting it instead of from within the loop. + +2026-09-10 Andrea Pinski <[email protected]> + + * config/aarch64/aarch64-json-tunings-parser.cc (test_json_integers): Initialize params. + (test_json_boolean): Likewise. + (test_json_strings): Likewise. + (test_json_enums): Likewise. + +2026-09-10 Andrea Pinski <[email protected]> + + PR tree-optimization/127052 + * tree-ssa-phiopt.cc (cond_store_replacement_limited): Reject clobbers + for the middle bb store. And Remove the check on ssa name for the rhs + of the middle bb store. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * genopinit.cc (struct pattern_info): New. + (patterns): Use it. + (gen_insn): Record the pattern's C test. + (pattern_cmp): Use pattern_info. + (narrowest_uint_type): New function. + (main): Emit a condition-number table and a loop instead of one + assignment per pattern, and drop the split into 1000-pattern + functions. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/rx/rx.cc (rx_gen_move_template): Fix GET_MODE/GET_CODE typo. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/nds32/nds32.cc (nds32_dwarf_register_span): Remove + unused dwarf_single variable. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/lm32/lm32.cc (lm32_builtin_va_start): Remove unused + variable. + +2026-09-10 Richard Sandiford <[email protected]> + + * config/c6x/c6x.cc (reorg_split_calls): Remove unused uid + and reservation_mask variables. + (hwloop_optimize): Remove unused delayed_splits variable. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * match.pd ((type) MAX ((wide_type) a - (wide_type) b, 0)): New + simplification. + ((type) MIN ((wide_type) a + (wide_type) b, MAX)): Likewise. + +2026-09-10 Roger Sayle <[email protected]> + Hongtao Liu <[email protected]> + + * config/i386/predicates.md (insertps_parallel): New predicate. + * config/i386/sse.md (sse4_1_insertps_<mode>_perm): New + define_insn to implement V4SI or V4SF permute using insertps. + (*sse2_insertps_<mode>_perm): Emulate the above insn on SSE2 + by splitting to one or two of pslldq, psrldq and pshufd. + +2026-09-10 Richard Sandiford <[email protected]> + + * recog.h (recog_data_d): Delete copy and move constructors. + (recog_data_ptr): New variable. + (recog_data): Turn into a macro. + (recog_data_saver): Rename to... + (recog_state_saver): ...this and move into the !GENERATOR_FILE block. + Save and restore which_alternative. Save and restore recog_data_ptr + rather than doing a full recog_data_d copy. + * varasm.cc (assemble_asm): Explicitly initialize n_dups, + n_alternatives, and is_operator. + * recog.cc (recog_data): Replace with... + (main_recog_data, recog_data_ptr): ...these new variables. + * emit-rtl.cc (address_reload_context::emit_autoinc): Update + after the rename. + * reload.cc (can_reload_into): Use recog_state_saver rather than + manually saving and restoring recog_data. + * config/i386/i386.cc (ix86_memory_address_reg_class): Likewise. + (ix86_lea_outperforms): Likewise. + * config/i386/i386-expand.cc (ix86_vector_duplicate_value): Likewise. + * config/sh/sh.cc (sh_recog_treg_set_expr): Likewise. + (sh_split_treg_set_expr): Likewise. + * config/sh/sh.md: Likewise in two peephole2s. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * match-sat-alu.pd (unsigned_integer_sat_add): Recognise comparisons + against the complement of an operand. Also recognise ADD_OVERFLOW + with a separate addition. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * genmatch.cc (case_convert_id_p): New function. + (same_case_p): Likewise. + (operation_has_case_p): Likewise. + (operations_overlap_p): Likewise. + (function_operation_p): Likewise. + (operand_cases_overlap_p): Likewise. + (cmp_operand): Handle conversion cases and function iterators. + (nodes_overlap_p): New function. + (decision_tree::find_node): Do not merge across an overlapping node. + (decision_tree::insert_operand): Assert the recursive lookup result. + (fns_cmp): Remove. + (dt_operand_group): New structure. + (add_operation_cases): New function. + (find_group): Likewise. + (collect_operand_groups): Likewise. + (operation_covers_group_p): Likewise. + (emit_operation_test): Likewise. + (emit_group_labels): Likewise. + (emit_expr_group): Likewise. + (emit_fn_group): Likewise. + (dt_node::gen_kids): Do not sort function nodes. + (dt_node::gen_kids_1): Emit groups with unique case labels. + +2026-09-10 Andrew Stubbs <[email protected]> + + * config/gcn/gcn.md (one_cmpldi2): Use s_not_b64. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc: Spell noce_if_info without the struct keyword throughout. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (count_bb_insns, cheap_bb_rtx_cost_p, first_active_insn, + last_active_insn, find_active_insn_before, find_active_insn_after, + block_fallthru, cond_exec_get_condition, noce_get_condition, + find_if_header, block_jumps_and_fallthru, noce_find_if_block, + noce_emit_move_insn, noce_emit_store_flag, noce_try_move, + noce_try_ifelse_collapse, noce_try_store_flag, noce_try_addcc, + noce_try_store_flag_constants, noce_try_shifted_store_flag, + noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, + noce_get_alt_condition, noce_try_minmax, noce_try_abs, + noce_try_sign_mask): Remove the unused forward declarations. + (noce_emit_cmove): Likewise, and give the definition the default + arguments. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_can_force_operand): Return a bool rather than an + insn_code. + (noce_emit_cmove): Remove ATTRIBUTE_UNUSED from local variables. + (bbs_ok_for_cmove_arith): Drop braces around single statements. + (noce_find_if_block): Value-initialize if_info instead of memsetting it. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_original_region_cost): New function. + (noce_process_if_block): Use it for the multiple-set and the + single-set estimate. Rename old_cost to base_cost and compute + speed_p once. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (cond_move_process_if_block): Make then_regs and else_regs + auto_vec and return directly instead of jumping to a cleanup label. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_seq_clobbers_cc_cmp_p): New function. + (noce_convert_multiple_sets_1): Use it for both candidate sequences. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (MAX_CONDITIONAL_EXECUTE): Add a comment. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (cond_exec_changed_p): Rename to... + (ifcvt_changed_p): ...this, and correct its comment. Adjust all uses. + (noce_finish_if_conversion): Bump num_updated_if_blocks. + (noce_convert_multiple_sets, noce_process_if_block, + cond_move_process_if_block): Drop the bump the helper now does. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_try_store_flag_logical): Pass 0, not false, for the + normalize argument. + (noce_convert_multiple_sets): Use a range-for over insn_info. + (merge_if_block, cond_exec_find_if_block): Drop the elaborated struct + type. + (block_jumps_and_fallthru): Test the insn pointer directly. + (cond_exec_find_if_block): Drop a redundant last_test_bb store. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_splat_to_const): New function. + (noce_try_sign_bit_splat): Use it for both orientations. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (merge_block_into_combo): New function. + (merge_if_block): Use it for the THEN and the ELSE block. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_representable_diff_p): New function. + (noce_try_store_flag_constants): Use it. + (noce_try_cmove): Likewise. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_reversed_cond): New function. + (noce_reversed_cond_code): Use it. + (noce_try_addcc, noce_try_cmove_arith, noce_try_cond_arith): Likewise. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.h (struct ce_if_block): Make and_and_p a bool. + (struct noce_multiple_sets_info): Correct the unmodified_insn and + need_cmov comments. + (struct noce_if_info): Correct the insn_a/insn_b, speed_p and + original_cost comments. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_process_if_block): Remove a redundant else_bb test. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (IFCVT_MULTIPLE_DUMPS): Remove. + (if_convert): Remove its now-vacuous #ifdef guards. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (first_active_insn, find_active_insn_after, block_fallthru, + noce_try_move, noce_try_sign_bit_splat, noce_try_store_flag_mask, + noce_emit_cmove, noce_try_cmove, get_base_reg_or_constant, + noce_try_cond_arith, try_emit_cmove_seq, + noce_convert_multiple_sets_1, init_noce_multiple_sets_info, + check_cond_move_block, find_if_header, block_jumps_and_fallthru, + find_if_case_2, dead_or_predicable): Fix comments. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (dead_or_predicable): Make merge_set, live and return_regs + auto_bitmap and drop the manual BITMAP_FREE calls. + (bbs_ok_for_cmove_arith): Make bba_sets an auto_bitmap. + (bb_valid_for_noce_process_p): Make test_bb_temps an auto_bitmap and + return directly instead of jumping to a cleanup label. + (noce_convert_multiple_sets): Make set_targets an auto_bitmap. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_convert_multiple_sets_1): Take the condition as a + parameter instead of re-decoding it. Remove the unused cond_earliest + local. + (noce_convert_multiple_sets): Pass the decoded condition down. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (enum ifcvt_phase): New. + (ifcvt_pass_phase): New, replacing... + (ifcvt_after_combine): ...this. + (cheap_bb_rtx_cost_p): Test ifcvt_pass_phase. + (if_convert): Take an ifcvt_phase instead of a bool. + (rest_of_handle_if_conversion): Adjust caller. + (pass_if_after_combine, pass_if_after_reload): Remove, folding both + into... + (pass_rtl_ifcvt): ...this, now parameterised on the phase. + (make_pass_rtl_ifcvt, make_pass_if_after_combine, + make_pass_if_after_reload): Construct it with the matching phase. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_commit_sequence): New function. + (noce_try_ifelse_collapse, noce_try_store_flag, + noce_try_sign_bit_splat, noce_try_inverse_constants, + noce_try_shifted_store_flag, noce_try_store_flag_constants, + noce_try_store_flag_logical, noce_try_addcc, + noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, + noce_try_cond_arith, noce_try_sign_mask): Use it. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * ifcvt.cc (noce_finish_if_conversion): New function. + (noce_convert_multiple_sets): Use it. Remove now-unused locals. + (noce_process_if_block): Likewise. + (cond_move_process_if_block): Likewise. + +2026-09-10 Uros Bizjak <[email protected]> + + * config/i386/sse.md (*vec_concatv2sf_sse4_1): Restrict the condition + to accept only CONST0_RTX as operand 2 when operand 1 is MEM. + (*vec_concatv2si_sse4_1): Ditto. + (*vec_concatv2sf_sse): Disable the pattern when SSE4.1 is enabled. + (*vec_concatv2si_sse): Rename from *vec_concatv2si. + +2026-09-10 Shivam Gupta <[email protected]> + + PR tree-optimization/125734 + * tree-ssa-loop-niter.cc (is_rshift_by_1): Remove TYPE_UNSIGNED restriction. + (number_of_iterations_cltz): Use range_on_edge to check non-negativity of + signed preheader input. + (number_of_iterations_cltz_complement): Likewise. + +2026-09-10 Zhongyao Chen <[email protected]> + + * config/riscv/riscv-protos.h (get_vector_units): New. + (get_scalar_units): New. + * config/riscv/generic-ooo.md: Update comments for vector issue width. + * config/riscv/generic-vector-ooo.md (vxu_ooo_issue): Change to reservation over 2 units. + (vxu_ooo_alu): Likewise. + (vxu_ooo_multicycle): Likewise. + * config/riscv/riscv-vector-costs.cc (costs::scale_vector_cost): New. + (costs::add_stmt_cost): Call it. + * config/riscv/riscv-vector-costs.h (costs::scale_vector_cost): New. + * config/riscv/riscv.cc (riscv_tune_param): Add scalar_units and + vector_units. + (generic_ooo_tune_info): Set scalar_units to 4 and vector_units to 2. + 2026-09-09 John David Anglin <[email protected]> PR rtl-optimization/127142 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 890cf9c73f39..59ed0b69b8e7 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20260910 +20260911 diff --git a/gcc/algol68/ChangeLog b/gcc/algol68/ChangeLog index 80a4292a1edb..dc603e8c0908 100644 --- a/gcc/algol68/ChangeLog +++ b/gcc/algol68/ChangeLog @@ -1,3 +1,16 @@ +2026-09-10 Jose E. Marchesi <[email protected]> + + * a68-low-ranges.cc (a68_pop_range): Do not consolidate refs in + last unit in the range's statement list, becuase it has already + been consolidated. + (a68_add_completer): Just call to a68_consolidate_ref and avoid + tsi_delink. + (a68_pop_serial_clause_range): Likewise. + * a68-low-clauses.cc (a68_lower_labeled_unit): Consolidate ref in + second componend of compound expr. + * a68-low.cc (a68_consolidate_ref): Simplify and do not handle + compound expressions in a special way. + 2026-07-20 Jose E. Marchesi <[email protected]> PR algol68/126330 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 7116834fc64f..59575b2accb5 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2026-09-10 Jakub Jelinek <[email protected]> + + P3726R2 + PR c++/125845 + * c-cppbuiltin.cc (c_cpp_builtins): For C++26 predefine + __cpp_trivial_union to 202603L. + 2026-09-03 Josef Melcr <[email protected]> * c-attribs.cc (handle_callback_only_attribute): Add early diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 48044d263985..b2fabc3fdb23 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,16 @@ +2026-09-11 Richard Biener <[email protected]> + + * gimple-parser.cc (c_parser_gimple_statement): Parse + but ignore {v} marker on assignments. + +2026-09-11 Richard Biener <[email protected]> + + * gimple-parser.cc (c_parser_gimple_postfix_expression): + Add ret_type argument, defaulted to error_mark_node. + Add parsing of __CLOBBER. + (c_parser_gimple_binary_expression): Pass ret_type down to + c_parser_gimple_postfix_expression. + 2026-09-08 Kael Andrew Alonzo Franco <[email protected]> PR middle-end/126622 diff --git a/gcc/cobol/ChangeLog b/gcc/cobol/ChangeLog index dcd79000c4ab..d02904b155c7 100644 --- a/gcc/cobol/ChangeLog +++ b/gcc/cobol/ChangeLog @@ -1,3 +1,14 @@ +2026-09-10 Robert Dubner <[email protected]> + + * compare.cc (digiter): Spelling in comment. + * genmath.cc (fast_add): Fix aliasing problem. + (get_fbinary_value): New function for converting fixed-format to + floating point, with rdigit scaling. + (add_floats): Stop using library routines in favor of GENERIC. + (add_format_3): Likewise. + (subtract_floats): Likewise. + (subtract_format_3): Likewise. + 2026-09-09 Robert Dubner <[email protected]> * genmath.cc (all_results_integer): Formatting. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index dbfe817c35d3..bdd2d463f1cb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,53 @@ +2026-09-11 Jakub Jelinek <[email protected]> + + PR c++/127276 + * pt.cc (tsubst_splice_expr): Call convert_from_reference if not + member access and SPLICE_EXPR is a splice expression. + +2026-09-10 Jakub Jelinek <[email protected]> + + P3726R2 + PR c++/125845 + * cp-tree.h: Implement C++26 P3726R2 - Adjustments to Union Lifetime + Rules. Document some generic flags used in C++ specific way on some + trees in the toplevel comment. + (CONSTRUCTOR_OMITTED_NOT_WITHIN_LIFETIME_P): Define. + (enum cp_built_in_function): Add CP_BUILT_IN_START_LIFETIME. + (reduced_constant_expression_p): Add a bool argument defaulted to + false. + * tree.cc (builtin_valid_in_constant_expr_p): Handle + CP_BUILT_IN_START_LIFETIME. + * decl.cc (cxx_init_decl_processing): Create __builtin_start_lifetime + decl. + * cp-gimplify.cc (cp_gimplify_expr): Handle + CP_BUILT_IN_START_LIFETIME. + * semantics.cc (check_frontend_builtin): New function. + (finish_call_expr): Use it. + * constexpr.cc (is_within_lifetime): New function. + (cxx_eval_is_within_lifetime): Use it. Add fun argument and pass it + to that function. + (cxx_eval_start_lifetime): New function. + (cxx_eval_builtin_function_call): Handle CP_BUILT_IN_START_LIFETIME. + Pass fun to cxx_eval_is_within_lifetime. + (is_std_allocator_allocate): Only return true for + std::allocator<T>::allocate and not for std::allocator<T>::deallocate. + (is_std_allocator_allocate_deallocate): New functions. + (cxx_eval_call_expression): Use is_std_allocator_allocate_deallocate + rather than is_std_allocator_allocate. + (reduced_constant_expression_p): Add union_elemental_subobject + argument and propagate it to recursive calls. If set, ignore for + C++26 holes in array initializers which aren't within lifetime. + (modifying_const_object_p): Change != MODIFY_EXPR test to == INIT_EXPR. + (cxx_eval_store_expression): Handle MODOP_EXPR next to INIT_EXPR and + MODIFY_EXPR, meaning start_lifetime. Don't preevaluate init in that + case, return void_node early if *valp is already non-NULL/void_node + and within lifetime. + (cxx_eval_constant_expression): For std::allocator<T>::allocate + start lifetime of the created array but not of its subobjects. + Use is_std_allocator_allocate_deallocate rather than + is_std_allocator_allocate where appropriate. + (potential_constant_expression_1): Likewise. + 2026-09-09 Léo Hardt <[email protected]> * mangle.cc (write_expression): don't call diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 7e54702d7639..c974a9aa084e 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2026-09-10 Tobias Burnus <[email protected]> + + PR middle-end/127273 + * lto.cc (offload_handle_link_vars): Create node and force_output; + avoid creating the same '...$linkptr' var multiple times. + 2026-09-08 Kael Andrew Alonzo Franco <[email protected]> PR middle-end/126622 diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog index 61a4d978ee7d..c75fcadcc136 100644 --- a/gcc/rust/ChangeLog +++ b/gcc/rust/ChangeLog @@ -1,3 +1,483 @@ +2026-09-10 Philip Herron <[email protected]> + + * backend/rust-compile-type.cc (TyTyResolveCompile::visit): make vector + * rust-gcc.cc (struct_field_expression): we use bit field acces for lanes + (constructor_expression): special case VECTOR + (convert_tree): likewise for canonical main variant + +2026-09-10 Philip Herron <[email protected]> + + * backend/rust-constexpr.cc (eval_constant_expression): port over goto + (potential_constant_expression_1): likewise + +2026-09-10 Owen Avery <[email protected]> + + * ast/rust-expr.h (LlvmInlineAsm::LlvmInlineAsm): Initialize + more member variables. + (LlvmInlineAsm::get_dialect): Make function const qualified. + (LlvmInlineAsm::is_stack_aligned): Likewise. + (LlvmInlineAsm::is_volatile): Likewise. + * backend/rust-compile-asm.cc + (CompileLlvmAsm::construct_operands): Handle llvm-specific "=*m" + constraint. + (CompileLlvmAsm::tree_codegen_asm): Handle change from multiple + template strings to a single template string. + * hir/rust-ast-lower-expr.cc (convert_template_str): New + function. + (check_llvm_asm_support): Remove unnecessary parameters and + expand the set of allowed llvm_asm usages. + (ASTLoweringExpr::visit (LlvmInlineAsm)): Adjust lowering. + * hir/tree/rust-hir-expr.h (LlvmInlineAsm::templates): Remove + member variable and replace with... + (LlvmInlineAsm::template_str): ...new member variable. + (LlvmInlineAsm::LlvmInlineAsm): Handle member variable changes. + (LlvmInlineAsm::get_templates): Remove member function and + replace with... + (LlvmInlineAsm::get_template): ...new member function. + * hir/tree/rust-hir-visitor.cc + (DefaultHIRVisitor::walk (LlvmInlineAsm)): Visit outer + attributes. + * typecheck/rust-hir-type-check-expr.cc + (TypeCheckExpr::visit (LlvmInlineAsm)): Adjust comments. + +2026-09-10 Yap Zhi Heng <[email protected]> + + * util/rust-lang-item.h (LangItem::Kind): Add lang item declarations for missing + lang items required for core 1.49 compilation. + * util/rust-lang-item.cc (LangItem::lang_items): Ditto. + +2026-09-10 Owen Avery <[email protected]> + + * rust-diagnostics.cc (rust_debug_fmt_at): New function + definition. + * rust-diagnostics.h (rust_debug_fmt): New function-like macro + definition. + (rust_debug_fmt_at): New function declaration. + +2026-09-10 Philip Herron <[email protected]> + + * typecheck/rust-hir-trait-reference.h: add emit_errors option + * typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::bind_impl_for_projection): new + (AssociatedImplTrait::bind_impl_for_bound): call new validate function + * typecheck/rust-type-util.cc (lookup_associated_impl_block): make this more generic + * typecheck/rust-tyty-call.cc (validate_call_argument_associated_impl_bounds): new + (TypeCheckCallExpr::visit): for each call arg validate and bind + (TypeCheckMethodCallExpr::check): likewise + +2026-09-10 Lucas Ly Ba <[email protected]> + + * checks/errors/rust-unsafe-checker.cc (check_static_mut) + (check_extern_static, check_unsafe_call, check_extern_call) + (check_target_attr): Return whether the operation requires unsafe and + only error outside of an unsafe context. + (UnsafeChecker::mark_unsafe_used): New. + (UnsafeChecker::check_use_of_static) + (UnsafeChecker::check_function_call) + (UnsafeChecker::check_function_attr): Mark the unsafe block as used. + (UnsafeChecker::visit): Mark used and warn on unnecessary unsafe block. + * checks/errors/rust-unsafe-checker.h (UnsafeChecker): Add + mark_unsafe_used and used_unsafe_blocks. + +2026-09-10 Owen Avery <[email protected]> + + * hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Check if a + statement is an item before warning. + +2026-09-10 Philip Herron <[email protected]> + + * backend/rust-constexpr.cc (maybe_fold_reference_address_to_pointer): port over from cp + (eval_binary_expression): likewise + +2026-09-10 Philip Herron <[email protected]> + + * parse/rust-parse-impl.hxx: + * typecheck/rust-hir-type-check-base.cc: + +2026-09-10 Philip Herron <[email protected]> + + * ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): missing visitor + * ast/rust-ast-visitor.h: prototype + +2026-09-10 Enes Cevik <[email protected]> + + * backend/rust-compile-expr.cc (CompileExpr::visit): Handle Box + receivers correctly during dynamic dispatch. + * typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): + Extract the inner type of a Box to resolve trait methods. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Register + dispatch_from_dyn to the BiMap. + * util/rust-lang-item.h (class LangItem): Add DISPATCH_FROM_DYN + to the Kind enum. + +2026-09-10 Enes Cevik <[email protected]> + + * backend/rust-compile-expr.cc (compile_box): Remove DST guard. + (build_box_inner_ptr): Add fat pointer control. + (CompileExpr::visit): Add auto-deref for box. + (HIRCompileBase::resolve_deref_adjustment): Return fat or thin + pointer. + * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): + Add auto-deref for box. + * typecheck/rust-tyty.cc (ADTType::is_box): New function. + * typecheck/rust-tyty.h (class BaseType): New declaration. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): + New. + * checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit): + New. + +2026-09-10 Owen Avery <[email protected]> + + * ast/rust-ast-collector.cc + (TokenCollector::visit (LlvmInlineAsm)): Improve accuracy of + token collection. + * ast/rust-ast-pointer-visitor.cc + (PointerVisitor::visit (LlvmInlineAsm)): Visit outer attributes. + * ast/rust-ast-visitor.cc + (DefaultASTVisitor::visit (LlvmInlineAsm)): Likewise. + * ast/rust-expr.h (LlvmInlineAsm::templates): Remove member + variable and replace with... + (LlvmInlineAsm::template_str): ...new member variable. + (LlvmInlineAsm::LlvmInlineAsm): Initialize template_str. + (LlvmInlineAsm::get_templates): Remove member function. + (LlvmInlineAsm::set_template): New member function. + (LlvmInlineAsm::get_template): Likewise. + * expand/rust-macro-builtins-asm.cc (parse_llvm_templates): + Rename to... + (parse_llvm_template): ...here and adjust to not expect multiple + template strings. + (parse_llvm_asm): Handle rename of parse_llvm_templates to + parse_llvm_template. + * hir/rust-ast-lower-expr.cc (check_llvm_asm_support): Handle + changes to LlvmInlineAsm. + (ASTLoweringExpr::visit (LlvmInlineAsm)): Likewise. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * typecheck/rust-hir-type-check-item.cc + (check_repr_c_enum_discriminants): New. + (TypeCheckItem::visit): Check repr(C) enum discriminants. + +2026-09-10 Lishin <[email protected]> + + * backend/rust-compile-drop.cc + (CompileDrop::build_current_scope_drop_cleanup): Skip definitely + dead Drop candidates. + * checks/errors/borrowck/rust-bir-drop-analysis.cc + (DropAnalysis::get): New function. + (DropAnalysis::clear): Likewise. + (DropAnalysis::is_definitely_dead): Likewise. + (DropAnalysis::analyze): Record dead whole-local HirIds. + * checks/errors/borrowck/rust-bir-drop-analysis.h + (DropAnalysis::get): New declaration. + (DropAnalysis::clear): Likewise. + (DropAnalysis::is_definitely_dead): Likewise. + (DropAnalysis::definitely_dead): New member. + * checks/errors/borrowck/rust-borrow-checker.cc + (BorrowChecker::go): Clear old Drop analysis results and analyze + each BIR function. + +2026-09-10 Enes Cevik <[email protected]> + + * backend/rust-compile-expr.cc (CompileExpr::visit): Add + indirect field access for DST's and new borrow approach for fat + pointers. + (resolve_unsized_adt_adjustment): Correct GIMPLE generation for + nested unsized ADTs. + * backend/rust-compile-type.cc (TyTyResolveCompile::visit): Add + DST ADT support. + (TyTyResolveCompile::create_dyn_adt_record): New function. + * backend/rust-compile-type.h (create_dyn_adt_record): New + declaration. + * backend/rust-intrinsic-handlers.cc (get_inner_dst): New + function. + (size_of_val_handler): Add DST ADT support. + (min_align_of_val_handler): Likewise. + * typecheck/rust-coercion.cc + (TypeCoercionRules::coerce_unsized_adt): Skip zero-sized fields + during coercion. + * backend/rust-compile.cc (HIRCompileBase::coerce_to_dyn_object): + Remove unnecessary ref wrapping. + * typecheck/rust-tyty.cc (ADTType::is_unsized): New function. + (ReferenceType::is_dyn_object): Add DST ADT support. + (ReferenceType::is_dyn_adt_type): New function. + (PointerType::is_dyn_object): Add DST ADT support. + (PointerType::is_dyn_adt_type): New function. + * typecheck/rust-tyty.h (is_unsized): New declaration. + +2026-09-10 Enes Cevik <[email protected]> + + * backend/rust-compile-base.h (resolve_adjustments): Fix typo. + (resolve_unsized_adt_adjustment): New declaration. + * backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo. + (HIRCompileBase::resolve_unsized_adt_adjustment): New function. + (HIRCompileBase::resolve_unsized_adjustment): Use it. + (CompileExpr::generate_possible_fn_trait_call): Likewise. + (HIRCompileBase::coercion_site): Fix typo. + * typecheck/rust-coercion.cc + (TypeCoercionRules::coerce_unsized): Use helper functions. + (TypeCoercionRules::unwrap_ptrs_and_refs): New function. + (TypeCoercionRules::coerce_unsized_array_to_slice): Likewise. + (TypeCoercionRules::coerce_unsized_dyn): Likewise. + (TypeCoercionRules::coerce_unsized_adt): Liksewise. + (TypeCoercionRules::apply_reborrow_adjustment): Likewise. + * typecheck/rust-coercion.h (struct CoercionSetup): New struct. + (coerce_unsized): Add is_inner parameter. + (unwrap_ptrs_and_refs): New declaration. + (coerce_unsized_array_to_slice): Likewise. + (coerce_unsized_dyn): Likewise. + (coerce_unsized_adt): Likewise. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add + coerce_unsized to the BiMap. + * util/rust-lang-item.h (class LangItem): Add COERCE_UNSIZED to + the Kind enum. + +2026-09-10 Enes Cevik <[email protected]> + + * typecheck/rust-coercion.cc + (TypeCoercionRules::coerce_unsized): Add array-to-slice coercion + support. + +2026-09-10 Enes Cevik <[email protected]> + + * typecheck/rust-tyty.cc (BaseType::unsize_to): New function. + (BaseType::satisfies_bound): Use it. + * typecheck/rust-tyty.h (class BaseType): New declaration. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add + unsize to the BiMap. + * util/rust-lang-item.h (class LangItem): Add UNSIZE to the Kind + enum. + +2026-09-10 Lishin <[email protected]> + + * checks/errors/borrowck/rust-bir-drop-analysis.cc + (BasicBlockIdHash): New helper. + (DropAnalysis::analyze): Use unordered_set for visited block tracking. + * checks/errors/borrowck/rust-bir-drop-analysis.h: Include rust-bir.h + directly and remove Function forward declaration. + * checks/errors/borrowck/rust-bir-place.h + (IndexVec::IndexVec): Add comment for sized constructor. + +2026-09-10 Lishin <[email protected]> + + * Make-lang.in: Add rust-bir-drop-analysis.o. + * checks/errors/borrowck/rust-bir.h: + (Statement::DropStyle): New enum. + (Statement::Kind): Add DROP. + (Statement::make_drop): New function. + (Statement::get_drop_style): Likewise. + (Statement::set_drop_style): Likewise. + * checks/errors/borrowck/rust-bir-builder-internal.h: + (AbstractBuilder::declare_argument): New function. + (AbstractBuilder::push_drop): Likewise. + (AbstractBuilder::push_function_argument_drops): Likewise. + (AbstractBuilder::pop_scope): Schedule Drop statements. + (AbstractBuilder::unwind_until): Likewise. + (AbstractBuilder::push_return): Schedule function argument drops. + * checks/errors/borrowck/rust-bir-builder.h + (Builder::handle_param): Use declare_argument for function + parameters. + * checks/errors/borrowck/rust-bir-dump.cc (Dump::visit): Dump + Drop classifications. + * checks/errors/borrowck/rust-bir-fact-collector.h + (FactCollector::visit): Handle Drop statements. + * checks/errors/borrowck/rust-borrow-checker.cc + (BorrowChecker::go): Run BIR Drop analysis. + * checks/errors/borrowck/rust-bir-drop-analysis.cc: New file. + * checks/errors/borrowck/rust-bir-drop-analysis.h: New file. + +2026-09-10 Lishin <[email protected]> + + * checks/errors/borrowck/rust-bir-place.h + (IndexVec::IndexVec): Create the requested number of elements. + +2026-09-10 Utkarsh Bahuguna <[email protected]> + + * util/rust-hir-map.h (Mappings::insert_extern_crate_id) + (Mappings::is_extern_crate): New declaration. + (Mappings::extern_crate_ids): New member. + * util/rust-hir-map.cc (Mappings::insert_extern_crate_id) + (Mappings::is_extern_crate): New function. + * resolve/rust-toplevel-name-resolver-2.0.h + (TopLevel::visit (ExternCrate)): New declaration. + * resolve/rust-toplevel-name-resolver-2.0.cc + (TopLevel::check_multiple_insertion_error): Select E0259, E0260 or + E0428 based on the colliding declarations. + (TopLevel::visit (ExternCrate)): New function definition. + +2026-09-10 Lishin <[email protected]> + + * backend/rust-compile-block.cc (is_control_flow_expr): New helper. + (CompileBlock::visit): Emit tail-position break and continue + expressions as statements. + * backend/rust-compile-expr.cc (CompileExpr::visit): Return the + translated expression for unlabeled break instead of emitting it + directly. + +2026-09-10 Owen Avery <[email protected]> + + * backend/rust-compile-pattern.cc + (CompilePatternBindings::visit (SlicePattern)): Assert that the + rest pattern isn't bound (currently unsupported). + * checks/errors/borrowck/rust-bir-builder-pattern.cc + (PatternBindingBuilder::visit (SlicePattern)): Handle bound rest + pattern. + * checks/errors/rust-ast-validation.cc + (ASTValidation::visit (AST::SlicePattern)): Likewise. + * hir/rust-ast-lower-pattern.cc + (ASTLoweringPattern::visit (AST::SlicePattern)): Likewise. + * hir/rust-hir-dump.cc (Dump::visit (SlicePatternItemsHasRest)): + Likewise. + * hir/tree/rust-hir-pattern.h + (SlicePatternItemsHasRest::rest_bind): New member variable. + (SlicePatternItemsHasRest::SlicePatternItemsHasRest): Initialize + rest_bind. + (SlicePatternItemsHasRest::operator=): Likewise. + (SlicePatternItemsHasRest::has_rest_bind): New member function. + (SlicePatternItemsHasRest::get_rest_bind): Likewise. + * hir/tree/rust-hir-visitor.cc + (DefaultHIRVisitor::walk (SlicePatternItemsHasRest)): Handle + bound rest pattern. + * hir/tree/rust-hir.cc (SlicePatternItemsHasRest::to_string): + Likewise. + * typecheck/rust-hir-type-check-pattern.cc + (TypeCheckPattern::visit (SlicePattern)): Assert that the rest + pattern isn't bound (currently unsupported). + +2026-09-10 Yap Zhi Heng <[email protected]> + + * typecheck/rust-tyty.h (ADTType::ReprKind): Add new SIMD variant. + * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Parse + #[repr(simd)] attribute, rename inline_option to repr_option. + * typecheck/rust-hir-type-check-item.h (TypeCheckItem::validate_repr_simd): New + function. + * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::validate_repr_simd): + Implement type-checking of #[repr(simd)] structs. + (TypeCheckItem::visit (HIR::TupleStruct)): Support type-checking simd representation. + (TypeCheckItem::visit (HIR::StructStruct)): Ditto. + +2026-09-10 Enes Cevik <[email protected]> + + * resolve/rust-early-name-resolver-2.0.cc + (Early::resolve_rebind_import): Use the final segment's NodeId + for 'self' imports instead of the parent's to avoid clashing with + glob imports. + +2026-09-10 Enes Cevik <[email protected]> + + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add pin + and unpin lang items to the BiMap. + * util/rust-lang-item.h (class LangItem): Add PIN and UNPIN to + the Kind enum. + +2026-09-10 Enes Cevik <[email protected]> + + * typecheck/rust-tyty-bounds.cc + (TypeBoundsProbe::add_trait_bound): Check all fields of an ADT. + * typecheck/rust-tyty.cc (BaseType::satisfies_bound): Reject + trait if there is a negative impl. + +2026-09-10 Aiman Najjar <[email protected]> + + * checks/lints/unused/rust-unused-checker.cc + (UnusedChecker::visit): Update logic for checking unused + assignments. + * checks/lints/unused/rust-unused-context.cc + (UnusedContext::add_assign): Use new set to track unused + assignments. + (UnusedContext::remove_assign): Update to track only last + assignment. + (UnusedContext::is_variable_assigned): Likewise. + (UnusedContext::is_assign_unused): New helper function to + check if given id was marked as unused by collector. + * checks/lints/unused/rust-unused-context.h: + (class UnusedContext): Add new set to track unused assignments and + changed current structure to track only last assignment per + variable (one to one map). + +2026-09-10 Arthur Cohen <[email protected]> + + * ast/rust-desugar-apit.cc (DesugarApit::visit): Call DefaultASTVisitor::visit + on the function we're currently visiting. + +2026-09-10 Arthur Cohen <[email protected]> + + * hir/rust-ast-lower-type.h: New enum, change API to use it. + * hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Use the new ImplTrait enum. + * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise. + * hir/rust-ast-lower-type.cc (ASTLoweringType::ASTLoweringType): Likewise. + (ASTLoweringType::translate): Likewise. + (ASTLoweringType::visit): Likewise. + +2026-09-10 Arthur Cohen <[email protected]> + + * util/rust-lang-item.h: Add enum value for VaListImpl. + * util/rust-lang-item.cc: Register it. + +2026-09-10 Arthur Cohen <[email protected]> + + * util/rust-lang-item.h: Add enum value for Freeze. + * util/rust-lang-item.cc: Register it. + +2026-09-10 Arthur Cohen <[email protected]> + + * util/rust-attributes.h: Change Attributes::is_known API to return an enum, add + AttributeKnowledge result enum. + * util/rust-attribute-values.h: Add more known tool attributes. + * util/rust-attributes.cc (Attributes::is_known): Check for tool attributes and + adapt return type. + * hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Use new + API and ignore tool attributes. + * resolve/rust-early-name-resolver-2.0.cc (Early::visit): Likewise. + +2026-09-10 Arthur Cohen <[email protected]> + + * ast/rust-collect-lang-items.cc (get_lang_item_attr): Remove attribute checking + code as this will be done during lowering. + * hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Mention + the attribute which is unknown. + +2026-09-10 Arthur Cohen <[email protected]> + + * ast/rust-ast-builder.h: Add new parameter to Builder::new_type_param to avoid + recreating default type parameters when building the new type parameter. + * ast/rust-ast-builder.cc: Implement the change. + * expand/rust-derive.cc: Use it in setup_impl_generics. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): + New. + * checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit): + New. + +2026-09-10 Owen Avery <[email protected]> + + * expand/rust-expand-visitor.cc + (ExpandVisitor::expand_struct_fields): Remove function + definition. + (ExpandVisitor::expand_tuple_fields): Likewise. + (ExpandVisitor::visit (Function)): Visit outer attributes, add + comment about inner attribute visiting. + (ExpandVisitor::visit (StructStruct)): Remove function + definition. + (ExpandVisitor::visit (TupleStruct)): Likewise. + (ExpandVisitor::visit (EnumItemTuple)): Likewise. + (ExpandVisitor::visit (EnumItemStruct)): Likewise. + (ExpandVisitor::visit (Union)): Likewise. + (ExpandVisitor::visit (ExternalStaticItem)): Likewise. + * expand/rust-expand-visitor.h + (ExpandVisitor::visit (StructStruct)): Remove function + declaration. + (ExpandVisitor::visit (TupleStruct)): Likewise. + (ExpandVisitor::visit (EnumItemTuple)): Likewise. + (ExpandVisitor::visit (EnumItemStruct)): Likewise. + (ExpandVisitor::visit (Union)): Likewise. + (ExpandVisitor::visit (ExternalStaticItem)): Likewise. + (ExpandVisitor::expand_fields): Likewise. + 2026-09-08 Kael Andrew Alonzo Franco <[email protected]> PR middle-end/126622 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c2f38570597a..e71d30e4f913 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,238 @@ +2026-09-11 Jakub Jelinek <[email protected]> + + * gcc.target/i386/vperm-v4sf-3.c: New test. + * gcc.target/i386/vperm-v4si-3.c: New test. + +2026-09-11 Jakub Jelinek <[email protected]> + + PR c++/127276 + * g++.dg/reflect/pr127276.C: New test. + +2026-09-11 Richard Biener <[email protected]> + + * gcc.dg/gimplefe-61.c: New file. + +2026-09-11 Richard Biener <[email protected]> + + * gcc.dg/gimplefe-60.c: New testcase. + +2026-09-11 H.J. Lu <[email protected]> + + PR target/127020 + * gcc.target/i386/sse2-stv-3.c: Adjusted. + * gcc.target/i386/sse2-stv-8.c: New test. + * gcc.target/i386/sse2-stv-9.c: Likewise. + +2026-09-10 Andrea Pinski <[email protected]> + + PR tree-optimization/127052 + * gcc.dg/tree-ssa/cselim-6.c: New test. + * gcc.dg/tree-ssa/cselim-7.c: New test. + +2026-09-10 Jakub Jelinek <[email protected]> + + P3726R2 + PR c++/125845 + * g++.dg/cpp26/feat-cxx26.C: Adjust __cpp_trivial_union checking. + * g++.dg/cpp26/trivial-union3.C: New test. + * g++.dg/cpp26/trivial-union4.C: New test. + * g++.dg/cpp26/trivial-union5.C: New test. + * g++.dg/cpp26/trivial-union6.C: New test. + * g++.dg/cpp26/within-lifetime3.C: Remove #if 0 and #endif. + * g++.dg/cpp26/within-lifetime8.C: New test. + * g++.dg/cpp26/within-lifetime9.C: New test. + * g++.dg/cpp29/feat-cxx29.C: Adjust __cpp_trivial_union checking. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-4794.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-1553.rs: New test. + +2026-09-10 Lishin <[email protected]> + + * rust/execute/drop-explicit-return.rs: Test parameter drops on explicit + return. + * rust/execute/drop-function-boundary-moves.rs: New test. + * rust/execute/drop-function-params.rs: Test multiple parameter drop + order. + * rust/execute/drop-if-else-local.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-4678.rs: New test. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * rust/compile/unused-unsafe_0.rs: New test. + +2026-09-10 Owen Avery <[email protected]> + + * rust/compile/unreachable.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-4631.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-4157-1.rs: New test. + * rust/compile/issue-4157-2.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-4173-1.rs: New test. + * rust/compile/issue-4173-2.rs: New test. + * rust/compile/issue-4173-3.rs: New test. + +2026-09-10 Philip Herron <[email protected]> + + * rust/compile/issue-3585-1.rs: New test. + * rust/compile/issue-3585-2.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/execute/box-dispatch-from-dyn.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/execute/box-dispatch-1.rs: New test. + * rust/execute/box-dispatch-2.rs: New test. + * rust/execute/unsized-adt-size.rs: Format test. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * rust/compile/break-with-label-and-loop_0.rs: New test. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * rust/compile/repr-c-enums-larger-than-int_0.rs: New test. + +2026-09-10 Lishin <[email protected]> + + * rust/execute/drop-whole-local-move.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/execute/unsized-adt-nested-coercion.rs: New test. + * rust/execute/unsized-adt-size.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/compile/coercion2.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/compile/coercion.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/compile/unsize2.rs: New test. + +2026-09-10 Lishin <[email protected]> + + * rust/borrowck/drop_analysis_whole_move.rs: New test. + +2026-09-10 Utkarsh Bahuguna <[email protected]> + + * rust/link/extern_crate_alias_0.rs: New test. + * rust/link/extern_crate_alias_1.rs: New test. + * rust/link/extern_crate_dup_0.rs: New test. + * rust/link/extern_crate_dup_1.rs: New test. + * rust/link/extern_crate_item_conflict_0.rs: New test. + * rust/link/extern_crate_item_conflict_1.rs: New test. + +2026-09-10 Lishin <[email protected]> + + * rust/execute/drop-unlabeled-break-continue.rs: New test. + +2026-09-10 Owen Avery <[email protected]> + + * rust/compile/slice_rest_pattern_2.rs: New test. + +2026-09-10 Yap Zhi Heng <[email protected]> + + * rust/compile/repr_simd.rs: New file. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/compile/issue-4689-1.rs: New test. + * rust/compile/issue-4689-2.rs: New test. + +2026-09-10 Enes Cevik <[email protected]> + + * rust/compile/lang-pin-unpin.rs: New test. + +2026-09-10 Aiman Najjar <[email protected]> + + * rust/compile/issue-4747.rs: New test. + +2026-09-10 Arthur Cohen <[email protected]> + + * rust/compile/apit-in-inner-fn.rs: New test. + +2026-09-10 Arthur Cohen <[email protected]> + + * rust/compile/va_list-lang-item.rs: New test. + +2026-09-10 Arthur Cohen <[email protected]> + + * rust/compile/freeze-lang-item.rs: New test. + +2026-09-10 Arthur Cohen <[email protected]> + + * rust/compile/tool-attribute1.rs: New test. + +2026-09-10 Arthur Cohen <[email protected]> + + * rust/compile/derive-with-default-types.rs: New test. + +2026-09-10 Lucas Ly Ba <[email protected]> + + * rust/compile/double-negations_0.rs: New test. + +2026-09-10 Owen Avery <[email protected]> + + * rust/compile/doc_macro_2.rs: New test. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * gcc.target/aarch64/sat_u_promoted-1.c: New test. + * gcc.target/aarch64/sat_u_promoted-2.c: New test. + * gcc.target/aarch64/sat_u_promoted-3.c: New test. + * g++.target/aarch64/sat_u_promoted-vector-1.C: New test. + +2026-09-10 Jose E. Marchesi <[email protected]> + + * algol68/execute/labeled-unit-1.a68: New test. + * algol68/execute/plusab-5.a68: Likewise. + +2026-09-10 Roger Sayle <[email protected]> + Hongtao Liu <[email protected]> + + * gcc.target/i386/sse4_1-insertps-8.c: New test case. + * gcc.target/i386/sse4_1-insertps-9.c: Likewise. + * gcc.target/i386/vperm-v4sf-3-sse4.c: Likewise. + * gcc.target/i386/vperm-v4sf-3.c: Likewise. + * gcc.target/i386/vperm-v4si-3-sse4.c: Likewise. + * gcc.target/i386/vperm-v4si-3.c: Likewise. + +2026-09-10 Kyrylo Tkachov <[email protected]> + + * gcc.target/aarch64/sat_u_add_not_cmp-1.c: New test. + * gcc.target/aarch64/sat_u_add_not_cmp-2.c: New test. + +2026-09-10 Uros Bizjak <[email protected]> + + * gcc.target/i386/vec-concatv2sf.c: New test. + +2026-09-10 Shivam Gupta <[email protected]> + + PR tree-optimization/125734 + * gcc.dg/tree-ssa/pr125734.c: New test. + 2026-09-09 Iain Sandoe <[email protected]> * lib/target-supports.exp (natural_alignment_32) Remove diff --git a/libgcc/config/avr/libf7/ChangeLog b/libgcc/config/avr/libf7/ChangeLog index a0cfd5e91e87..5b6ff5901534 100644 --- a/libgcc/config/avr/libf7/ChangeLog +++ b/libgcc/config/avr/libf7/ChangeLog @@ -1,3 +1,12 @@ +2026-09-10 Georg-Johann Lay <[email protected]> + + PR target/127032 + * libf7-asm.sx (config.h): Include it. + (DALIAS) [sizeof(double)==8 && HAVE_AS_AVR_GNU_ATTRIBUTE]: + Add .gnu_attribute 8,64. + (LALIAS) [sizeof(long double)==8 && HAVE_AS_AVR_GNU_ATTRIBUTE]: + Add .gnu_attribute 12,64. + 2026-08-25 Georg-Johann Lay <[email protected]> PR target/127071 diff --git a/libgcobol/ChangeLog b/libgcobol/ChangeLog index 38cb6898101c..a9e352533ee7 100644 --- a/libgcobol/ChangeLog +++ b/libgcobol/ChangeLog @@ -1,3 +1,20 @@ +2026-09-10 Robert Dubner <[email protected]> + + * gmath.cc (__gg__conditional_stash_float): New routine supporting + faster GENERIC arithmetic. + (__gg__add_fixed_phase1): Remove obsolete function. + (__gg__addf1_fixed_phase2): Likewise. + (__gg__fixed_phase2_assign_to_c): Likewise. + (__gg__add_float_phase1): Likewise. + (__gg__addf1_float_phase2): Likewise. + (__gg__float_phase2_assign_to_c): Likewise. + (__gg__addf3): Likewise. + (__gg__subtractf1_fixed_phase2): Likewise. + (__gg__subtractf2_fixed_phase1): Likewise. + (__gg__subtractf1_float_phase2): Likewise. + (__gg__subtractf2_float_phase1): Likewise. + (__gg__subtractf3): Likewise. + 2026-09-09 Robert Dubner <[email protected]> * common-defs.h (enum cbl_round_t): Ensure storage is 'int' diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 72d1ac7d3fcf..f7da37ff6687 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2026-09-10 Tobias Burnus <[email protected]> + + PR middle-end/127273 + * testsuite/libgomp.c/usm_env_handling-1-self.c: Remove 'dg-ice'. + 2026-09-09 Tobias Burnus <[email protected]> PR middle-end/122205 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c282fe3af266..b3c6d8308c4c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,75 @@ +2026-09-11 Jakub Jelinek <[email protected]> + + * include/std/bit: Implement C++29 P3793R2 - Better shifting. + (std::__signed_or_unsigned_integer): New concept. + (std::shl, std::shr): New function templates. + * include/bits/version.def (bitops): Add different value for C++29. + * include/bits/version.h: Regenerate. + * src/c++23/std.cc.in (std::shl, std::shr): Export for C++29. + * testsuite/26_numerics/bit/bit.shift/shl.cc: New test. + * testsuite/26_numerics/bit/bit.shift/shr.cc: New test. + +2026-09-11 Avi Kivity <[email protected]> + + PR libstdc++/127325 + * include/std/inplace_vector: replace is_trivial_v with + is_trivially_default_constructible_v and is_trivially_copyable_v. + +2026-09-10 Iain Sandoe <[email protected]> + + * acinclude.m4: Do not gate the use of 'timespec' with + _POSIX_TIMERS > 0. For the auto case, set ac_has_clock_monotonic + and ac_has_clock_realtime for Darwin versions that implement them. + * configure: Regenerate. + +2026-09-10 Iain Sandoe <[email protected]> + + PR libstdc++/126807 + * include/bits/simd_details.h: Make the math_errhandling + macro into a default template argument. + +2026-09-10 Jakub Jelinek <[email protected]> + + P3726R2 + PR c++/125845 + * include/bits/version.def (start_lifetime): New. + * include/bits/version.h: Regenerate. + * include/bits/stl_construct.h (std::start_lifetime): New function + template. + * include/std/memory: Define __glibcxx_want_start_lifetime before + including bits/version.h. + * src/c++23/std.cc.in: Add export std::start_lifetime. + +2026-09-10 Tomasz Kamiński <[email protected]> + Marco Falke <[email protected]> + + PR libstdc++/126949 + * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash) + (_Hashtable_base::_M_equal, _Hashtable_alloc::_M_alloc): + Value initialized members in NSDMI. + * testsuite/23_containers/unordered_map/cons/default.cc: Check + default construction with an hash, equality and allocator with + explicit constructor. + * testsuite/23_containers/unordered_set/cons/default.cc: Likewise. + +2026-09-10 Jonathan Wakely <[email protected]> + + PR libstdc++/127220 + * include/std/format (__format::_Arg_t): Move definition + earlier. + (basic_format_parse_context::check_dynamic_spec): Construct + array of _Arg_t from template parameter list. + (basic_format_parse_context::check_dynamic_spec_integral): + Construct array of _Arg_t based on supported types. + (basic_format_parse_context::check_dynamic_spec_string): + Likewise. + (basic_format_parse_context::__check_dynamic_spec): Replace + template parameter list with span<const _Arg_t> function + parameter and simplify accordingly. Define in class body. + (basic_format_parse_context::_Scan_parse_context): New struct + the replaces _Scanner::_Parse_context. + (__format::_Scanner::_M_pc): Change type to _Scan_parse_context. + 2026-09-09 Sammy Al Hashemi <[email protected]> PR libstdc++/122071
