https://gcc.gnu.org/g:e0d35695ca82c40e3f3a71fdac068e789dd871f5
commit r17-3146-ge0d35695ca82c40e3f3a71fdac068e789dd871f5 Author: GCC Administrator <[email protected]> Date: Sat Aug 8 00:17:09 2026 +0000 Daily bump. Diff: --- ChangeLog | 12 + gcc/ChangeLog | 121 ++++++ gcc/DATESTAMP | 2 +- gcc/cobol/ChangeLog | 98 +++++ gcc/rust/ChangeLog | 977 ++++++++++++++++++++++++++++++++++++++++++++++++ gcc/testsuite/ChangeLog | 334 +++++++++++++++++ libgcobol/ChangeLog | 27 ++ libstdc++-v3/ChangeLog | 14 + 8 files changed, 1584 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 17ccafc59c04..1fe36a0d9eae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2026-08-07 Michael Meissner <[email protected]> + + * MAINTAINERS.yml: Update Michael Meissner's information. + * MAINTAINERS: Regenerate. + +2026-08-07 Michael Meissner <[email protected]> + + * MAINTAINERS: Update Michael Meissner to be a PowerPC maintainer. + Update to use [email protected] email address instead of + [email protected]. Drop Michael Meissner being a scheduler maintainer. + * MAINTAINERS.yml: Update. + 2026-08-04 Kyrylo Tkachov <[email protected]> * Makefile.tpl ([+compare-target+]): Run object comparisons through an diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8610582686c0..0d3a46a4b375 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,124 @@ +2026-08-07 Aldy Hernandez <[email protected]> + + PR tree-optimization/126714 + * range-op-float.cc (range_op_float_tests): Guard the signed-zero + == op1_range self-test with HONOR_SIGNED_ZEROS. + +2026-08-07 Jakub Jelinek <[email protected]> + + PR tree-optimization/126534 + * gimple-range-op.cc (cfn_sqrt::op1_range): Widen lb or ub + by further 0.5ulp or 1ulp before squaring it. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/120681 + * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Allow large + code model as well as medium code model. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): + Likewise. + (rs6000_elf_declare_function_name): Don't create the + local/non-local labels for large code model if we are using + PC-relative addressing. + +2026-08-07 Jakub Jelinek <[email protected]> + + PR target/126667 + * config/s390/s390.md (usubc<mode>5): If operands[4] is + an immediate operand other than const0_rtx, force it into reg + before using it in xor<mode>3 insn. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/120528 + * config/rs6000/rs6000.md (zero_extend??ti2 peephole2): Add a + peephole2 to simplify zero extending a QI/HI/SI/DImode value in + memory to a TImode target in a vector register to use the + LXVR{B,H,W,D}X instructins. + +2026-08-07 Jakub Jelinek <[email protected]> + + PR tree-optimization/126641 + * value-range.h (class frange): Declare widen method. + * range-op-float.cc (float_widen_bound): Move to value-range.cc. + (float_widen_lhs_range): Remove. + (operator_plus::op1_range, operator_minus::op1_range, + operator_minus::op2_range, operator_mult::op1_range, + foperator_div::op1_range, foperator_div::op2_range, + operator_cast::op1_range, range_op_float_tests): Replace + X = float_widen_lhs_range (T, R) with X = R; X.widen (T). + * value-range.cc (float_widen_bound): New, moved from + range-op-float.cc. + (frange::widen): New method, partially based on + float_widen_lhs_range, but replace lhs with *this and + avoid using set/union_ to construct range, instead modify + m_pair and m_num_ranges directly. + * real.cc (set_significand_bit, clear_significand_bit, + test_significand_bit): Add + gcc_checking_assert (n < SIGNIFICAND_BITS). + (clear_significand_below): Add + gcc_checking_assert (n <= SIGNIFICAND_BITS). + +2026-08-07 Aldy Hernandez <[email protected]> + + * range-op-float.cc (operator_cast::fold_range): Convert each + integer sub-range and union the results. + (range_op_float_tests): New test. + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * match.pd (((x >> 1) + (y >> 1)) + (x & y & 1)): New simplification + to (x & y) + ((x ^ y) >> 1). + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * match.pd ((X % C1) % C2): New simplification. + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * match.pd (MIN (MAX (X, Y + CST), Y)): New simplification. + (MAX (MIN (X, Y + CST), Y)): Likewise. + +2026-08-07 Michael Meissner <[email protected]> + + * config/rs6000/rs6000.opt (-mblock-ops-vector-pair): Undo change to + make the -mblock-ops-vector-pair option a documented option. + * doc/invoke.texi (RS/6000 and PowerPC Options): Likewise. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/99293 + * config/rs6000/vsx.md (vsx_splat_extract_<mode>): New insn. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/117487 + * config/rs6000/vsx.md (SFmode logical peephoole): Update comments in + the original code that supports power8. + (SFBOOL2_*): New constants. + (power9/power10 define_peephol2): Add a new define_peephole2 to optimize + float and logical operations on power9/power10/power11 similar to the + optimiztion that is done on power8. + +2026-08-07 Michael Meissner <[email protected]> + + * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Enable using load + vector pair and store vector pair instructions for memory and string + built-in functions. + (POWERPC_MASKS): Make -mblock-ops-vector-pair an option that is set by + the -mcpu=<xxx> command line option. + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Disable + -mblock-ops-vector-pair from influencing .machine selection. + * config/rs6000/rs6000.opt (-mblock-ops-vector-pair): Document the + option. + * doc/invoke.texi (RS/6000 and PowerPC Options): Document the + -mblock-ops-vector-pair option. + +2026-08-07 Kael Andrew Alonzo Franco <[email protected]> + + PR tree-optimization/64992 + * match.pd: Fix two typos and format. + 2026-08-06 Kael Andrew Alonzo Franco <[email protected]> PR tree-optimization/126669 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 4d4df8e55738..ac282fe95ef3 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20260807 +20260808 diff --git a/gcc/cobol/ChangeLog b/gcc/cobol/ChangeLog index 37c6841bd5e6..ad94de3d3217 100644 --- a/gcc/cobol/ChangeLog +++ b/gcc/cobol/ChangeLog @@ -1,3 +1,101 @@ +2026-08-07 Robert Dubner <[email protected]> + James K. Lowden <[email protected]> + + * genapi.cc (gg_array_of_field_pointers): Modified to return a + pointer to the first element of the array. + (gg_array_of_uchar_p): Formatting. + (parser_sort): Use updated gg_array_of_field_pointers(). + (parser_file_sort): Likewise. + (parser_file_merge): Likewise. + * genapi.h (parser_compute): New declarations. + * gengen.h (gg_array_of_field_pointers): Modified declaration. + * genmath.cc (parser_compute): New declarations. + * genutil.h (gg_array_of_uchar_p): New declaration. + * move.cc (mh_binary_to_numdisp): Use new __gg__prohibited() + routine. + (parser_move): Formatting. + (parser_move_multi): Formatting. + * parse.y: RPN support. + * parse_ante.h (ast_op): Likewise. + (ast_relop): Likewise. + (struct ast_op_t): Likewise. + (struct refer_list_t): Likewise. + (struct vargs_t): Likewise. + * symbols.h (struct rpn_t): Likewise. + (struct expr_t): Likewise. + +2026-08-07 Robert Dubner <[email protected]> + + * cdf.y: Changes in support of CDF parsing. + * compare.cc (total_digits_tree): Use gg_define_variable(). + (alpha_compare_figconst): Likewise. + (alpha_compare): Likewise. + (numeric_alpha_compare): Likewise. + (addr_of_compare): Likewise. + (compare_class): Likewise. + * genapi.cc (create_cblc_string_variable): Formatting. + (initialize_variable_internal): Use gg_define_variable(). + (enter_program_common): Likewise. + (parser_accept): Likewise. + (parser_display): Likewise. + (parser_exhibit): Likewise. + (parser_assign): Likewise. + (parser_xml_parse): Likewise. + (establish_using): Likewise. + (parser_division): Likewise. + (parser_file_open): Likewise. + (parser_file_delete_file): Likewise. + (inspect_tally): Likewise. + (inspect_replacing): Likewise. + (parser_unstring): Likewise. + (parser_string): Likewise. + (create_and_call): Likewise. + (hijack_for_development): Likewise. + * gengen.cc (gg_declare_variable): Clean up comments. Early return + when "already_defined". Clean up VAR_DECL attributes. + (gg_define_variable): Clean up how gg_declare_variable is used. + (gg_define_volatile_variable): Eliminate. + (gg_define_bool): Eliminate. + (gg_define_char): Eliminate. + (gg_define_uchar): Eliminate. + (gg_define_int): Eliminate. + (gg_define_size_t): Eliminate. + (gg_define_int128): Eliminate. + (gg_define_char_star): Eliminate. + (gg_define_uchar_star): Eliminate. + (gg_define_void_star): Eliminate. + (gg_define_longdouble): Eliminate. + (gg_fprintf): Use gg_define_variable(). + (gg_read): Likewise. + (gg_memdup): Likewise. + * gengen.h (enum gg_variable_scope_t): Eliminate vs_file. + (gg_define_variable): New overloaded declaration. + (gg_define_volatile_variable): Eliminate. + (gg_define_bool): Eliminate. + (gg_define_char): Eliminate. + (gg_define_uchar): Eliminate. + (gg_define_int): Eliminate. + (gg_define_size_t): Eliminate. + (gg_define_int128): Eliminate. + (gg_define_longdouble): Eliminate. + (gg_define_void_star): Eliminate. + (gg_define_char_star): Eliminate. + (gg_define_uchar_star): Eliminate. + (gg_get_address_of): Formatting. + * genmath.cc (set_up_compute_error_label): Use gg_define_variable(). + (add_litN_to_numdisp): Likewise. + * lexio.cc (skip_quoted_literal): Eliminate. + (remove_inline_comment): Change the algorithm. + * parse.y: CDF processing changes. + * scan.l: Likewise. + * scan_ante.h (yyinput): Likewise. + (yyunput): Likewise. + (skip_string): Likewise. + (is_refmod): Likewise. + * show_parse.h (TRACE1_INDENT): Use gg_define_variable(). + * structs.cc: Change comment. + * token_names.h: Updated for CDF changes. + 2026-08-04 Jakub Jelinek <[email protected]> * parse.y (selected_name): Use %<-dialect ibm%> instead of just diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog index 42a37d91ac8d..1779fa1f2d59 100644 --- a/gcc/rust/ChangeLog +++ b/gcc/rust/ChangeLog @@ -1,3 +1,980 @@ +2026-08-07 Arthur Cohen <[email protected]> + + * resolve/rust-forever-stack.h: Declare new cache API. + * resolve/rust-forever-stack.hxx: Implement it and use it within + dfs_cache. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-base.cc + (HIRCompileBase::compile_function): Create separate argument and + function body drop scopes. Register parameter drop candidates in + the argument scope and clean up the function body before the arguments. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * expand/rust-macro-builtins.cc: Made it more explicit that cfg_select! is + backported. + * rust-session-manager.h (Session::should_support_cfg_select): New function to + check whether cfg_select! should be compiled. + * resolve/rust-early-name-resolver-2.0.cc (Early::visit(MacroInvocation)): + Conditionally resolve cfg_select!. + * expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Ditto. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * expand/rust-macro-builtins.h (BuiltinMacro::CfgSelect): New enum variant. + (MacroBuiltin::cfg_select_handler): New function definition. + * expand/rust-macro-builtins.cc (MacroBuiltin::builtins): New cfg_select entry. + (MacroBuiltin::builtin_transcribers): New cfg_select_handler entry. + * expand/rust-macro-builtins-utility.cc (MacroBuiltin::cfg_select_handler): Implement + parsing of compilation configuration predicates and expansion of block expressions based + on which predicate was matched. + +2026-08-07 Enes Cevik <[email protected]> + + * backend/rust-compile-type.cc + (TyTyResolveCompile::visit): If type contains unsafe_cell type, + do not mark it as const. + * typecheck/rust-tyty.cc (ADTType::contains_unsafe_cell): New + function. + (TupleType::contains_unsafe_cell): Likewise. + (ArrayType::contains_unsafe_cell): Likewise. + (SliceType::contains_unsafe_cell): Likewise. + * typecheck/rust-tyty.h (contains_unsafe_cell): New declaration. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add + unsafe_cell to the BiMap. + * util/rust-lang-item.h (class LangItem): Add UNSAFE_CELL to the + Kind enum. + +2026-08-07 Owen Avery <[email protected]> + + * ast/rust-ast-collector.cc + (TokenCollector::visit (SlicePatternItemsNoRest)): Remove + function definition. + (TokenCollector::visit (SlicePatternItemsHasRest)): Likewise. + (TokenCollector::visit (SlicePattern)): Handle sub-patterns. + * ast/rust-ast-collector.h + (TokenCollector::visit (SlicePatternItemsNoRest)): Remove + function declaration. + (TokenCollector::visit (SlicePatternItemsHasRest)): Likewise. + * ast/rust-ast-full-decls.h (class SlicePatternItemsNoRest): + Remove forward declaration. + (class SlicePatternItemsHasRest): Likewise. + * ast/rust-ast-pointer-visitor.cc + (PointerVisitor::visit (SlicePatternItemsNoRest)): Remove + function definition. + (PointerVisitor::visit (SlicePatternItemsHasRest)): Likewise. + (PointerVisitor::visit (SlicePattern)): New function + definition. + * ast/rust-ast-pointer-visitor.h + (PointerVisitor::visit (SlicePatternItemsNoRest)): Remove + function declaration. + (PointerVisitor::visit (SlicePatternItemsHasRest)): Likewise. + (PointerVisitor::visit (SlicePattern)): New function + declaration. + * ast/rust-ast-visitor.cc + (DefaultASTVisitor::visit (SlicePatternItemsNoRest)): Remove + function definition. + (DefaultASTVisitor::visit (SlicePatternItemsHasRest)): Likewise. + (DefaultASTVisitor::visit (SlicePattern)): Handle sub-patterns. + * ast/rust-ast-visitor.h + (ASTVisitor::visit (SlicePatternItemsNoRest)): Remove function + declaration. + (ASTVisitor::visit (SlicePatternItemsHasRest)): Likewise. + (DefaultASTVisitor::visit (SlicePatternItemsNoRest)): Likewise. + (DefaultASTVisitor::visit (SlicePatternItemsHasRest)): Likewise. + * ast/rust-pattern.cc (SlicePatternItemsNoRest::as_string): + Remove function definition. + (SlicePatternItemsHasRest::as_string): Likewise. + (SlicePattern::as_string): Use as_string on sub patterns + directly. + (SlicePatternItemsNoRest::accept_vis): Remove function + definition. + (SlicePatternItemsHasRest::accept_vis): Likewise. + * ast/rust-pattern.h (class SlicePatternItems): Remove. + (class SlicePatternItemsNoRest): Remove. + (class SlicePatternItemsHasRest): Remove. + (SlicePattern::items): Remove member variable. + (SlicePattern::patterns): New member variable. + (SlicePattern::SlicePattern): Adjust to match member variable + adjustments. + (SlicePattern::get_items): Remove function. + (SlicePattern::get_patterns): New function. + (class CloneableDelegate<std::unique_ptr<SlicePatternItems>>): + Remove specialization. + * checks/errors/rust-ast-validation.cc + (ASTValidation::visit (SlicePattern)): New function to check for + too many RestPattern sub-patterns. + * checks/errors/rust-ast-validation.h + (ASTValidation::visit (SlicePattern)): New function declaration. + * expand/rust-cfg-strip.cc + (CfgStrip::visit (SlicePatternItemsNoRest)): Remove function + definition. + (CfgStrip::visit (SlicePatternItemsHasRest)): Likewise. + (CfgStrip::visit (SlicePattern)): Directly visit sub-patterns. + * expand/rust-cfg-strip.h + (CfgStrip::visit (SlicePatternItemsNoRest)): Remove function + declaration. + (CfgStrip::visit (SlicePatternItemsHasRest)): Likewise. + * expand/rust-derive.h + (DeriveVisitor::visit (SlicePatternItemsNoRest)): Remove + function. + (DeriveVisitor::visit (SlicePatternItemsHasRest)): Likewise. + * hir/rust-ast-lower-base.cc + (ASTLoweringBase::visit (SlicePatternItemsNoRest)): Remove + function definition. + (ASTLoweringBase::visit (SlicePatternItemsHasRest)): Likewise. + (ASTLoweringBase::lower_slice_pattern_no_rest): Likewise. + (ASTLoweringBase::lower_slice_pattern_has_rest): Likewise. + * hir/rust-ast-lower-base.h + (ASTLoweringBase::visit (SlicePatternItemsNoRest)): Remove + function declaration. + (ASTLoweringBase::visit (SlicePatternItemsHasRest)): Likewise. + (ASTLoweringBase::lower_slice_pattern_no_rest): Likewise. + (ASTLoweringBase::lower_slice_pattern_has_rest): Likewise. + * hir/rust-ast-lower-pattern.cc (lower_pattern_seq): New + function. + (ASTLoweringPattern::visit (SlicePattern)): Handle changes to + AST SlicePattern. + * parse/rust-parse-impl-pattern.hxx + (Parser::parse_slice_pattern): Likewise. + +2026-08-07 Enes Cevik <[email protected]> + + * hir/rust-ast-lower-base.cc (warn_if_stub_lang_item): New + function. + (ASTLoweringBase::handle_lang_item_attribute): Emit a warning + if lang item is stub. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add new + lang items to the BiMap. + * util/rust-lang-item.h (class LangItem): Add new lang items + to Kind enum. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * expand/rust-derive-clone.cc (DeriveClone::clone_call): Use the + canonical path to Clone. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * ast/rust-ast-dump.cc (Dump::Dump): Add a default indentation level of + four and dump newlines. + * ast/rust-ast-dump.h: Add newline and indentation level configuration + options. + * metadata/rust-export-metadata.cc (ExportContext::emit_crate): Do not + export indentation and newlines. + * rust-session-manager.cc (Session::dump_ast_pretty_internal): Use an + indentation level of 4 and dump newlines. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * ast/rust-collect-lang-items.cc (CollectLangItems::visit): Visit + extern crate's content when collecting lang items. + * ast/rust-collect-lang-items.h: Add function protototype. + * metadata/rust-export-metadata.cc (ExportContext::push_module_scope): + Remove. + (ExportContext::emit_crate): Add a function to export the whole crate. + (ExportContext::pop_module_scope): Remove. + (ExportContext::emit_trait): Likewise. + (ExportContext::emit_use_declaration): Likewise. + (ExportContext::emit_function): Likewise. + (ExportContext::emit_extern_block): Likewise. + (ExportContext::emit_module): Likewise. + (class ExportVisItems): Likewise. + (PublicInterface::gather_export_data): Dump the AST. + * metadata/rust-export-metadata.h: Update prototypes. + +2026-08-07 Aiman Najjar <[email protected]> + + * checks/lints/unused/rust-unused-context.cc + (UnusedContext::remove_assign): Fix issue with duplicate + removal of unused-assignment for the same id. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-default-resolver.cc + (DefaultResolver::visit (Crate)): Call maybe_prelude_import. + (DefaultResolver::visit (Module)): Likewise. + * resolve/rust-default-resolver.h + (DefaultResolver::maybe_prelude_import): New virtual member + function. + * resolve/rust-early-name-resolver-2.0.cc + (Early::maybe_prelude_import): New member function definition. + (Early::finalize_glob_import): Mark visitor as dirty when + first setting ctx.prelude. + * resolve/rust-early-name-resolver-2.0.h + (Early::maybe_prelude_import): New member function declaration. + * resolve/rust-late-name-resolver-2.0.cc + (Late::visit (IdentifierExpr)): Remove ad-hoc prelude import + handling. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-finalize-imports-2.0.cc + (GlobbingVisitor::glob_definitions): Offload details to + Rib::insert_globbed. + (GlobbingVisitor::glob_definition): Remove member function + definition. + * resolve/rust-finalize-imports-2.0.h + (GlobbingVisitor::glob_definition): Remove member function + declaration. + * resolve/rust-rib.cc (Rib::insert_globbed): New member function + definition. + * resolve/rust-rib.h (Rib::insert_globbed): New member function + declaration. + +2026-08-07 Utkarsh Bahuguna <[email protected]> + + * checks/lints/rust-lint-marklive.cc (MarkLive::visit_path_segment): + Mark types in generic arguments as live. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-early-name-resolver-2.0.cc + (Early::resolve_glob_import): Handle glob imports that appear + after other imports in a use declaration. + * resolve/rust-early-name-resolver-2.0.h + (Early::ImportMappings::insert): Remove member functions, as + they're both broken and unused. + * resolve/rust-toplevel-name-resolver-2.0.cc (flatten): Remove + redundant break statement. + +2026-08-07 Enes Cevik <[email protected]> + + * backend/rust-compile-block.h: Remove RangeFromToInclExpr visit. + * backend/rust-compile-expr.cc (CompileExpr::visit): Likewise. + * backend/rust-compile-expr.h: Likewise. + * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc + (ExprStmtBuilder::visit): Likewise. + * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Likewise. + * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: + Likewise. + * checks/errors/borrowck/rust-bir-builder-struct.h: Likewise. + * checks/errors/borrowck/rust-function-collector.h: Likewise. + * checks/errors/privacy/rust-privacy-reporter.cc + (PrivacyReporter::visit): Likewise. + * checks/errors/privacy/rust-privacy-reporter.h: Likewise. + * checks/errors/rust-const-checker.cc (ConstChecker::visit): + Likewise. + * checks/errors/rust-const-checker.h: Likewise. + * checks/errors/rust-hir-pattern-analysis.cc + (PatternChecker::visit): Likewise. + * checks/errors/rust-hir-pattern-analysis.h: Likewise. + * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): + Likewise. + * checks/errors/rust-unsafe-checker.h: Likewise. + * hir/rust-hir-dump.cc (Dump::visit): Likewise. + * hir/rust-hir-dump.h: Likewise. + * hir/tree/rust-hir-expr.cc + (RangeFromToInclExpr::RangeFromToInclExpr): Likewise. + (RangeFromToInclExpr::operator=): Likewise. + * hir/tree/rust-hir-expr.h (class RangeFromToInclExpr): Remove + class. + * hir/tree/rust-hir-full-decls.h (class RangeFromToInclExpr): + Remove forward declaration. + * hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Remove + RangeFromToInclExpr visit. + * hir/tree/rust-hir-visitor.h: Likewise. + * hir/tree/rust-hir.cc (RangeFromToInclExpr::to_string): Remove. + (RangeFromToInclExpr::accept_vis): Remove. + * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): + Remove. + * typecheck/rust-hir-type-check-expr.h: Remove + RangeFromToInclExpr visit. + +2026-08-07 Enes Cevik <[email protected]> + + * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Add + desugaring for range_inclusive_new lang item. + * util/rust-lang-item.cc (Rust::LangItem::lang_items): Add + range_inclusive_new to the BiMap. + * util/rust-lang-item.h (class LangItem): Add RANGE_INCLUSIVE_NEW + to the Kind enum. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-drop-builder.cc + (DropBuilder::get_block_drop_candidate_stack): Remove. + * backend/rust-compile-drop-builder.h + (DropBuilder::get_block_drop_candidate_stack): Remove declaration. + * backend/rust-compile-expr.cc + (CompileExpr::visit (HIR::ReturnExpr &)): Stop emitting drops manually. + Store the return statement in translated. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-drop-builder.cc + (DropBuilder::get_block_drop_candidate_stack): New function returning all + active block drop candidate scopes. + * backend/rust-compile-drop-builder.h + (DropBuilder::get_block_drop_candidate_stack): Declare. + * backend/rust-compile-drop.h: + (CompileDrop::emit_drop_candidate_calls): Declare. + * backend/rust-compile-expr.cc (CompileExpr::visit): Save return values and + emit drops before explicit return statements. + +2026-08-07 Owen Avery <[email protected]> + + * expand/rust-derive.cc (DeriveVisitor::setup_impl_generics): + Create a constant generic argument from a constant generic + parameter. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit(StructStruct)): Update + E0690 error message to use the correct variable for number of fields. + * typecheck/rust-tyty.cc (ArrayType::is_zero_sized): Catch edge case of array's element + type being a ZST with capacity is more than 0. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-early-name-resolver-2.0.cc + (Early::finalize_glob_import): Check if the globbing visitor was + marked dirty. + * resolve/rust-finalize-imports-2.0.cc + (GlobbingVisitor::glob_definitions): Mark dirty if a definition + was inserted. + (GlobbingVisitor::glob_definition): Replace silent failure with + assertion. + * resolve/rust-finalize-imports-2.0.h + (GlobbingVisitor::GlobbingVisitor): Initialize dirty member + variable. + (GlobbingVisitor::is_dirty): New member function. + (GlobbingVisitor::dirty): New member variable. + +2026-08-07 Islam-Imad <[email protected]> + + * backend/rust-compile-context.h (RUST_COMPILE_CONTEXT): loop + labels context functions. + - insert_break_label + - lookup_break_label + - insert_continue_label + - lookup_continue_label + - push/pop/peek end_label (similar to begin_label). + * backend/rust-compile-expr.cc (CompileExpr::visit): handle loop + labels construction in WhileExpr, ForExpr, ContinueExpr and BreakExpr. + (CompileExpr::construct_block_label): construct break label + instead of normal label to unify handling break statement. + (CompileExpr::construct_loop_labels): construct while/for loops + labels (continue label before loop, break label after loop). + * backend/rust-compile-expr.h (RUST_COMPILE_EXPR): + construct_loop_labels function header. + * resolve/rust-default-resolver.cc (DefaultResolver::visit): Fix + labels. + * resolve/rust-default-resolver.h: Fix labels. + * resolve/rust-name-resolution-context.cc (NameResolutionContext::insert): Fix labels. + (NameResolutionContext::insert_shadowable): Fix labels. + (NameResolutionContext::insert_globbed): Fix labels. + (NameResolutionContext::scoped): Fix labels. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-base.cc (HIRCompileBase::compile_function_body): + Stop emitting drops directly in functions. + (HIRCompileBase::compile_function): Use try-finally drop cleanup. + (HIRCompileBase::compile_constant_item): Use try-finally drop cleanup. + * backend/rust-compile-drop.cc + (CompileDrop::emit_current_scope_drop_calls): Remove. + * backend/rust-compile-drop.h: Remove the unused function declaration. + * backend/rust-compile-expr.cc + (CompileExpr::generate_closure_function): Use try-finally drop cleanup. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): + Warn on a no-mangle generic function. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): + Warn on unnecessary braces around an assigned value. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * checks/lints/rust-lint-scan-deadcode.h + (ScanDeadcode::visit(HIR::ConstantItem)) + (ScanDeadcode::visit(HIR::StaticItem)): New. + * checks/lints/unused/rust-unused-checker.cc + (UnusedChecker::visit(HIR::ConstantItem)): Remove unused-item check, + keep visibility lint. + (UnusedChecker::visit(HIR::StaticItem)): Remove unused-item check, + keep naming lint. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * typecheck/rust-tyty.h (BaseType::is_zero_sized): New function. + (TupleType::is_zero_sized): New function. + (ArrayType::is_zero_sized): New function. + (ADTType::is_zero_sized): New function. + * typecheck/rust-tyty.cc (BaseType::is_zero_sized): Implement checking of + whether a type is zero-sized. + (TupleType::is_zero_sized): Ditto. + (ArrayType::is_zero_sized): Ditto. + (ADTType::is_zero_sized): Ditto. + * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit (StructStruct)): Update + transparent repr type-checking to check for zero-sized members. + * backend/rust-compile-type.cc (TyTyResolveCompile::visit (TyTy::ADTType)): Support + compilation of transparent repr structs with more than 1 fields. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust-session-manager.h (Session::LoadedCrate): Add explicit constructor. + +2026-08-07 Egas Ribeiro <[email protected]> + João Novo <[email protected]> + + * checks/errors/rust-hir-pattern-analysis.cc + (PatternChecker::visit): Diagnose refutable patterns in Function + parameters and LetStmt bindings. + * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Remove + pattern kind whitelist; only error on bare literal patterns at + lowering. + +2026-08-07 Egas Ribeiro <[email protected]> + João Novo <[email protected]> + + * Make-lang.in: Add rust-hir-pattern-abstract.o. + * hir/tree/rust-hir-path.h: Add is_refutable overrides. + * hir/tree/rust-hir-pattern-abstract.h (class BaseType): Add + typed is_refutable virtual method. + * hir/tree/rust-hir-pattern.h: Add is_refutable to all pattern + kinds. + * hir/tree/rust-hir-pattern-abstract.cc: New file. Implement + typed is_refutable for PathPattern, SlicePattern, + TupleStructPattern. + +2026-08-07 Egas Ribeiro <[email protected]> + João Novo <[email protected]> + + * hir/tree/rust-hir-pattern.h: Add const overloads. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * expand/rust-macro-expand.cc (transcribe_expression (Parser<MacroInvocLexer>)): + Prevent the same trailing semicolon warning from being generated at the same loc. + +2026-08-07 Enes Cevik <[email protected]> + + * checks/errors/rust-builtin-attribute-checker.cc + (attribute_checking_handlers): Add rustc_conversion_suggestion + attribute to map. + (check_valid_attribute_for_item): Add warning for new attribute. + * util/rust-attribute-values.h (class Attributes): Add + RUSTC_CONVERSION_SUGGESTION constexpr. + * util/rust-attributes.cc (__definitions): Add + BuiltinAttrDefinition for new attribute. + +2026-08-07 Enes Cevik <[email protected]> + + * checks/errors/rust-builtin-attribute-checker.cc + (check_inner_attribute): Add warning for needs_allocator. + * util/rust-attribute-values.h (class Attributes): Add + NEEDS_ALLOCATOR constexpr. + * util/rust-attributes.cc (__definitions): Add + BuiltinAttrDefinition for new attribute. + +2026-08-07 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-08-07 Enes Cevik <[email protected]> + + * backend/rust-compile-intrinsic.cc (generic_intrinsics): Add + assert_zero_valid to map. + * backend/rust-intrinsic-handlers.cc + (assert_zero_valid_handler): New function. + * backend/rust-intrinsic-handlers.h (assert_zero_valid_handler): + New declaration. + * typecheck/rust-hir-type-check-intrinsic.cc + (IntrinsicChecker::intrinsic_rules): Add new signature rule for + assert_zero_valid. + * util/rust-intrinsic-values.h (class Intrinsics): Add + ASSERT_ZERO_VALID constexpr. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-forever-stack.hxx + (ForeverStack::find_starting_point): Handle a final super + segment and super segments after a lowercase self segment. + * resolve/rust-name-resolution-context.hxx + (NameResolutionContext::resolve_path): Handle cases where + find_starting_point resolves the final segment. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-context.h: + (Context::pop_block_impl): Wrap Drop cleanup in an EH_ELSE_EXPR. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-block.cc + (CompileBlock::visit): Build current scope drop cleanup and + pass it when popping the block. + * backend/rust-compile-context.h + (Context::pop_block): Use pop_block_impl. + (Context::pop_block_with_cleanup): New function for popping + a block with cleanup code. + (Context::pop_block_impl): New helper that adds the block + statements directly, or wraps them in TRY_FINALLY_EXPR when + cleanup is present. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-drop.cc + (CompileDrop::build_current_scope_drop_cleanup): New function to + build current scope drop calls as a statement tree. + (CompileDrop::emit_current_scope_drop_calls): Use it. + * backend/rust-compile-drop.h + (CompileDrop::build_current_scope_drop_cleanup): Declare. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Warn on + a trait object with a `Drop` bound. + * rust-lang.cc (grs_langhook_init_options_struct): Enable warn_unused. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-toplevel-name-resolver-2.0.cc + (TopLevel::visit (ExternalTypeItem)): New function definition. + * resolve/rust-toplevel-name-resolver-2.0.h + (TopLevel::visit (ExternalTypeItem)): New function declaration. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-base.cc (HIRCompileBase::compile_function): + Track droppable function parameters in the function scope. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-base.cc + (HIRCompileBase::compile_function_body): Emit current scope drops + for unit tail expressions. + +2026-08-07 Lishin <[email protected]> + + * backend/rust-compile-base.cc + (HIRCompileBase::compile_function_body): Store non-unit tail expression + results before emitting current scope drops. + +2026-08-07 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-08-07 Yap Zhi Heng <[email protected]> + + * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): New + check for `#[repr(align)]` to enforce having a parameter that is a power of 2. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * backend/rust-compile-expr.h (CompileExpr::compile_transparent_field_access): New + helper function. + * backend/rust-compile-expr.cc (CompileExpr::compile_transparent_field_access): + Implement helper function for accessing the field of #[repr(transparent)] ADTs. + (CompileExpr::visit (HIR::StructExprStructFields)): Support struct field construction + properly for #[repr(transparent)] structs. + (CompileExpr::visit (HIR::FieldAccessExpr)): Implement proper compilation of field + access for #[repr(transparent)] ADTs. + * backend/rust-compile-type.cc (TyTyResolveCompile::visit (TyTy::ADTType)): Implement + proper compilation of typing for #[repr(transparent)] ADTs. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * typecheck/rust-tyty.h (TyTy::ADTType::ReprKind): Add TRANSPARENT variant. + * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): + Add parsing of transparent repr, throw error for invalid repr. + * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit (StructStruct)): + Throw error if #[repr(transparent)] struct/enum has more than 1 field. + +2026-08-07 Arthur Cohen <[email protected]> + + * expand/rust-macro-expand.h (struct MacroExpander): Make `crate` member public for + sub-expanders to access its inner attributes. + * ast/rust-ast-builder.h: Add `Source` enum to discriminate between AST node generation + within `core` and within other crates. + * ast/rust-ast-builder.cc: Use the new enum for building paths properly. + * ast/rust-desugar-for-loops.cc (DesugarForLoops::desugar): Likewise. + (DesugarForLoops::go): Likewise. + * ast/rust-desugar-for-loops.h: Likewise. + * ast/rust-desugar-question-mark.cc (DesugarQuestionMark::go): Likewise. + (DesugarQuestionMark::desugar): Likewise. + * ast/rust-desugar-question-mark.h: Likewise. + * ast/rust-desugar-try-block.cc (DesugarTryBlock::go): Likewise. + (DesugarTryBlock::desugar): Likewise. + * ast/rust-desugar-try-block.h: Likewise. + * ast/rust-desugar-while-let.cc (DesugarWhileLet::desugar): Likewise. + (DesugarWhileLet::go): Likewise. + * ast/rust-desugar-while-let.h: Likewise. + * ast/rust-expression-yeast.cc (ExpressionYeast::go): Likewise. + (ExpressionYeast::dispatch_loops): Likewise. + (ExpressionYeast::reseat): Likewise. + * ast/rust-expression-yeast.h (RUST_EXPRESSION_YEAST): Likewise. + * expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Likewise. + * expand/rust-derive-clone.h: Likewise. + * expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise. + * expand/rust-derive-copy.h: Likewise. + * expand/rust-derive-debug.cc (DeriveDebug::DeriveDebug): Likewise. + (DeriveDebug::stub_debug_fn): Likewise. + * expand/rust-derive-debug.h: Likewise. + * expand/rust-derive-default.cc (DeriveDefault::DeriveDefault): Likewise. + (DeriveDefault::default_call): Likewise. + * expand/rust-derive-default.h: Likewise. + * expand/rust-derive-eq.cc (get_eq_trait_path): Likewise. + (DeriveEq::DeriveEq): Likewise. + * expand/rust-derive-eq.h: Likewise. + * expand/rust-derive-hash.cc (DeriveHash::DeriveHash): Likewise. + (DeriveHash::hash_call): Likewise. + (DeriveHash::hash_fn): Likewise. + * expand/rust-derive-hash.h: Likewise. + * expand/rust-derive-ord.cc (DeriveOrd::DeriveOrd): Likewise. + (DeriveOrd::cmp_call): Likewise. + (DeriveOrd::cmp_fn): Likewise. + (DeriveOrd::make_equal): Likewise. + (DeriveOrd::recursive_match): Likewise. + * expand/rust-derive-ord.h: Likewise. + * expand/rust-derive-partial-eq.cc (DerivePartialEq::DerivePartialEq): Likewise. + * expand/rust-derive-partial-eq.h: Likewise. + * expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Likewise. + (DeriveVisitor::derive): Likewise. + * expand/rust-derive.h: Likewise. + * expand/rust-expand-format-args.cc (format_arg): Likewise. + (expand_format_args): Likewise. + * expand/rust-expand-visitor.cc (builtin_derive_item): Likewise. + (ExpandVisitor::expand_inner_stmts): Likewise. + * expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler): Likewise. + * expand/rust-macro-builtins-utility.cc (MacroBuiltin::option_env_handler): Likewise. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-finalize-imports-2.0.cc (GlobbingVisitor::go): + Use visit_container. + (GlobbingVisitor::visit_crate_container) + (GlobbingVisitor::visit_module_container) + (GlobbingVisitor::visit_enum_container, GlobbingVisitor::visit): + Remove member functions. + (GlobbingVisitor::visit_container) + (GlobbingVisitor::glob_definitions) + (GlobbingVisitor::glob_definition): New member functions. + * resolve/rust-finalize-imports-2.0.h (class GlobbingVisitor): + Remove DefaultASTVisitor as base class. + (GlobbingVisitor::visit_crate_container) + (GlobbingVisitor::visit_module_container) + (GlobbingVisitor::visit_enum_container, GlobbingVisitor::visit): + Remove member functions. + (GlobbingVisitor::visit_container) + (GlobbingVisitor::glob_definitions) + (GlobbingVisitor::glob_definition): New member functions. + +2026-08-07 Owen Avery <[email protected]> + + * checks/errors/feature/rust-feature-collector.cc: Include + "rust-session-manager.h". + (FeatureCollector::collect): Automatically enable + EXTENDED_KEY_VALUE_ATTRIBUTES when targeting compatibility with + rust versions before 1.50. + * expand/rust-macro-expand.cc: Include "rust-session-manager.h". + (MacroExpander::expand_invoc): Use Session to determine whether + offset_of is supported. + * lang.opt (frust-assume-builtin-offset-of): Remove option, + superseded by... + (frust-compat-version): ...new option. + * resolve/rust-early-name-resolver-2.0.cc: Include + "rust-session-manager.h". + (Early::visit (MacroInvocation)): Use Session to determine + whether offset_of is supported. + * rust-session-manager.cc (Session::handle_option): Handle + frust-compat-version. + * rust-session-manager.h (CompileOptions::compat_version): New + member variable. + (CompileOptions::set_compat_version): New member function. + (CompileOptions::get_compat_version): Likewise. + (Session::get_compat_version): Likewise. + (Session::should_support_offset_of): Likewise. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-forever-stack.h (ForeverStackBase::Node::Node): + Initialize all namespace ribs with a Rib::Kind. + (ForeverStackBase::Node::rib): Replace member variable with member + function taking namespace. + (ForeverStackBase::Node::rib_values): New member variable. + (ForeverStackBase::Node::rib_types): New member variable. + (ForeverStackBase::Node::rib_labels): New member variable. + (ForeverStackBase::Node::rib_macros): New member variable. + (ForeverStackBase::ForeverStackBase): New constructor taking + references to top-level nodes. + (ForeverStack::root): Move member variable to... + (ForeverStackBase::root): ...here and make it a reference. + (ForeverStack::lang_prelude): Move member variable to... + (ForeverStackBase::lang_prelude): ...here and make it a + reference. + (ForeverStack::extern_prelude): Move member variable to... + (ForeverStackBase::extern_prelude): ...here and make it a + reference. + (ForeverStack::ForeverStack): Initialize ForeverStackBase + and take top-level nodes as by-reference arguments. + (ForeverStack::push_inner): Take Rib::Kind instead of Rib. + * resolve/rust-forever-stack.hxx (ForeverStackBase::is_prelude): + Use value rib to get rib kind. + (ForeverStack::push_inner): Take Rib::Kind instead of Rib. + (ForeverStack::pop): Use namespace specific ribs. + (ForeverStack::insert_at_root): Likewise. + (ForeverStack::insert_lang_prelude): Likewise. + (ForeverStack::peek): Likewise. + (ForeverStack::get): Likewise. + (ForeverStack::get_lang_prelude): Likewise. + (ForeverStack::find_closest_module): Likewise. + (ForeverStack::dfs): Likewise. + (ForeverStack::dfs_rib): Likewise. + (ForeverStack::stream_node): Likewise. + * resolve/rust-name-resolution-context.cc + (NameResolutionContext::merge): Likewise. + (NameResolutionContext::NameResolutionContext): Initialize + top-level nodes and construct ForeverStack instances with + references. + * resolve/rust-name-resolution-context.h + (NameResolutionContext::Node): New type alias to + ForeverStackBase::Node. + (NameResolutionContext::root): New member variable. + (NameResolutionContext::lang_prelude): New member variable. + (NameResolutionContext::extern_prelude): New member variable. + * resolve/rust-name-resolution-context.hxx + (NameResolutionContext::should_search_prelude): Use namespace + specific rib. + (NameResolutionContext::resolve_path): Simplify mapping to and + from type namespace nodes (now a no-op). Also, use namespace + specific ribs for looking up final segments. + (NameResolutionContext::resolve_segments): Use namespace + specific ribs. + (NameResolutionContext::resolve_final_segment): Likewise. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-identifier-path.cc + (IdentifierPathPass::reseat (Pattern)): Remember to visit a + pattern's sub-patterns, if we didn't convert it into a + PathInExpression. + +2026-08-07 Owen Avery <[email protected]> + + * ast/rust-ast-collector.cc + (TokenCollector::visit (TypePathSegmentGeneric)): Remove + duplicate push of segment identifier. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_generic_params): + Warn on `Drop` bounds on generic parameters. + +2026-08-07 Owen Avery <[email protected]> + + * checks/errors/rust-builtin-attribute-checker.cc (no_mangle): + Remove function. + (rustc_std_internal_symbol): Likewise. + (rustc_allocator): Likewise. + (rustc_allocator_nounwind): Likewise. + (expect_no_input): New function. + (attribute_checking_handlers): Use expect_no_input, new entry + for GLOBAL_ALLOCATOR. + (check_valid_attribute_for_item): Verify that GLOBAL_ALLOCATOR + attributes only appear on static items. + * util/rust-attribute-values.h (Attributes::GLOBAL_ALLOCATOR): + New static constexpr member variable. + * util/rust-attributes.cc (__definitions): New entry for + GLOBAL_ALLOCATOR. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-default-resolver.cc + (DefaultResolver::visit (TypeParam)): Visit bounds outside of + ForwardTypeParamBan rib. + +2026-08-07 Owen Avery <[email protected]> + + * resolve/rust-forever-stack.h (class ForeverStackBase): New. + (class ForeverStack): Use ForeverStackBase as a base class. + (class ForeverStack::Link): Move to... + (class ForeverStackBase::Link): ...here. + (class ForeverStack::LinkCmp): Move to... + (class ForeverStackBase::LinkCmp): ...here. + (class ForeverStack::Node): Move to... + (class ForeverStackBase::Node): ...here. + (ForeverStackBase::Node::is_root): Mark inline. + (ForeverStackBase::Node::is_prelude): Likewise. + (ForeverStackBase::Node::is_leaf): Likewise. + (ForeverStackBase::Node::insert_child): Likewise. + * resolve/rust-forever-stack.hxx (ForeverStack::Node::is_root): + Move to... + (ForeverStackBase::Node::is_root): ...here. + (ForeverStack::Node::is_prelude): Move to... + (ForeverStackBase::Node::is_prelude): ...here. + (ForeverStack::Node::is_leaf): Move to... + (ForeverStackBase::Node::is_leaf): ...here. + (ForeverStack::Node::insert_child): Move to... + (ForeverStackBase::Node::insert_child): ...here. + +2026-08-07 Owen Avery <[email protected]> + + * Make-lang.in (GRS_OBJS): Remove rust-forever-stack.o. + * resolve/rust-forever-stack.h (class ForeverStackStore): + Remove. + * resolve/rust-forever-stack.cc: Removed. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * ast/rust-ast-builder.cc (Builder::type_path_segment): Remove name. + (Builder::type_path_segment_generic): Likewise. + (Builder::single_generic_type_path): Likewise. + (Builder::type_path): Likewise. + * ast/rust-ast-builder.h: Update function prototypes. + * expand/rust-derive-clone.cc (DeriveClone::visit_union): do not inject + trait name. + * expand/rust-derive-copy.cc: Likewise. + * expand/rust-derive-eq.cc (DeriveEq::assert_param_is_eq): Likewise. + * expand/rust-derive-partial-eq.cc: Likewise. + * util/rust-hir-map.cc (Mappings::get_lang_item_identifier): Add a + function to retrieve a lang item identifier from it's kind. + * util/rust-hir-map.h: Add function prototype. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * ast/rust-ast.h (class Identifier): Move from here to + rust-ast-identifiers.h. + (operator<<): Likewise. + * ast/rust-ast-identifier.h: New file. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * rust-session-manager.cc (Session::dump_hir_pretty): Update error type + name. + (Session::load_extern_crate): Likewise. + * rust-session-manager.h: Change error type name. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * metadata/rust-export-metadata.cc (ExportContext::begin_extern_block): + Delete function. + (ExportContext::end_extern_block): Likewise. + (ExportContext::begin_module): Likewise. + (ExportContext::end_module): Likewise. + (ExportContext::emit_extern_block): Merge both begin/end within one + function that calls the visitor in between. + (ExportContext::emit_module): Likewise. + * metadata/rust-export-metadata.h: Update function prototypes. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * metadata/rust-export-metadata.cc (ExportContext::begin_extern_block): + Dump the prefix of an extern block. + (ExportContext::end_extern_block): Likewise with extern block suffix. + * metadata/rust-export-metadata.h: Add function prototypes. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * resolve/rust-resolve-builtins.cc (class LangPreludeSingleton): Add a + singleton to store node and hir ids. + (setup_lang_prelude): Use the new singleton store. + (TYPE0): Change reference to singleton. + (TYPE1): Likewise. + (setup_type_ctx): Use the new singleton store. + (find_builtin_node_id): Likewise. + * rust-session-manager.cc (Session::load_extern_crate): Setup builtin + types. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * resolve/rust-name-resolution-context.cc (CanonicalPathRecordNormal::as_path): + Use context and retrieve parent from its node id. + (CanonicalPathRecordImpl::as_path): Likewise. + (CanonicalPathRecordTraitImpl::as_path): Likewise. + (NameResolutionContext::merge): Merge both record map. + * resolve/rust-name-resolution-context.h: Change parent handle + representation from reference to node id. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * resolve/rust-name-resolution-context.cc (NameResolutionContext::merge): + Merge nr usage binding when merging nr contexts. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * rust-session-manager.cc (Session::load_extern_crate): Run late name + resolver on extern crates. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * ast/rust-ast-builder.cc (Builder::type_path_segment): Add segment + name argument. + (Builder::type_path_segment_generic): Likewise. + (Builder::single_generic_type_path): Likewise. + (Builder::type_path): Likewise. + * ast/rust-ast-builder.h: Add segment name string to ctor. + * ast/rust-path.h: Make segment name mandatory. + * expand/rust-derive-clone.cc (DeriveClone::visit_union): Forward + segment name. + * expand/rust-derive-copy.cc: Likewise. + * expand/rust-derive-eq.cc (DeriveEq::assert_param_is_eq): Likewise. + * expand/rust-derive-partial-eq.cc: Likewise. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * Make-lang.in: Add a new file with a visitor to collect and load + extern crates. + * expand/rust-cfg-strip.cc (CfgStrip::visit): Remove extern crate + loading from cfgstrip step. + * resolve/rust-default-resolver.cc (DefaultResolver::visit_extern_crate): + Do not visit the extern crate. We do not need to resolve it since it is + already done. + * resolve/rust-forever-stack.hxx: Do not assign unused result. + * resolve/rust-name-resolution-context.cc (NameResolutionContext::merge): + Add a function to merge an extern crate's nr context at some location + within another name resolution context. + * resolve/rust-name-resolution-context.h: Add function prototype. + * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate): + Do not visit extern crate. + * rust-session-manager.cc (Session::expansion): Collect extern crates, + load them and merge them into the main crate. + (Session::dump_hir_pretty): Change function return type. + (Session::load_extern_crate): Change return type to collect extern + crates name resolution context. + * rust-session-manager.h: Update function prototype. + * expand/rust-extern-crate-loader.cc: New file. + * expand/rust-extern-crate-loader.h: New file. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * metadata/rust-export-metadata.cc (ExportContext::emit_trait): Use + AST node instead. + (ExportContext::emit_function): Likewise. + (ExportContext::emit_use_declaration): likewise. + (ExportContext::begin_module): Likewise. + (ExportContext::end_module): Likewise. + (class ExportVisItems): Use DefaultASTVisitor instead. + (PublicInterface::gather_export_data): Lookup the AST crate and visit + its items. + * metadata/rust-export-metadata.h: Update function prototys with AST + nodes. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * metadata/rust-export-metadata.cc (ExportContext::begin_module): + Add a function to emit the module preamble. + (ExportContext::end_module): Add function to emit public module brace + suffix. + * metadata/rust-export-metadata.h: Add function prototypes. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * lex/rust-lex.h: Return an empty file name when file is missing. + 2026-07-08 Philip Herron <[email protected]> * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): respect context for labels diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9d3b4e77bbfe..b93f51928ec4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,337 @@ +2026-08-07 Jakub Jelinek <[email protected]> + + PR tree-optimization/126534 + * gcc.dg/pr126534.c: New test. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/120681 + * gcc.target/powerpc/pr120681.c: New test. + +2026-08-07 Jakub Jelinek <[email protected]> + + PR target/126667 + * gcc.dg/pr126667.c: New test. + * gcc.target/s390/pr126667.c: New test. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/120528 + * gcc.target/powerpc/pr120528.c: New test. + +2026-08-07 Richard Biener <[email protected]> + + PR tree-optimization/110935 + * gcc.dg/vect/bb-slp-reduc-pr110935.c: New testcase. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/execute/torture/cfg_select1.rs: Add new dg-additional-options, remove + the no-longer-needed cfg_select! declaration. + * rust/execute/torture/cfg_select2.rs: Ditto. + * rust/compile/c_string_null_byte_check.rs: Ditto. + * rust/execute/torture/c_string.rs: Ditto. + * rust/execute/torture/c_string_ensure_null_term.rs: Ditto. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/compile/c_string_null_byte_check.rs: Update definition of `c_char`. + * rust/execute/torture/c_string_ensure_null_term.rs: Ditto. + * rust/execute/torture/c_string.rs: Ditto. + * rust/execute/torture/cfg_select1.rs: New file. + * rust/execute/torture/cfg_select2.rs: New file. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/unsafe_cell.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/slice_rest_pattern.rs: Verify that too many rest + patterns in a slice pattern does not produce an error, if that + slice pattern is cfg'd out. + +2026-08-07 Owen Avery <[email protected]> + + * rust/core/core.exp: Compile until lowering phase, avoid + spamming the logs with debug messages in an attempt to speed up + compilation, and increase test timeout from 600 seconds to 1200 + seconds. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/lang-items-stub.rs: New test. + * rust/compile/lang-items-symbol.rs: New test. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * rust/compile/derive_clone_enum2.rs: Fix test with a clone module + to mimic the core library. + * rust/compile/derive_clone_enum3.rs: Likewise. + * rust/compile/issue-3139-1.rs: Likewise. + * rust/compile/issue-3144.rs: Likewise. + * rust/execute/torture/derive_clone_enum1.rs: Likewise. + * rust/execute/torture/derive_macro3.rs: Likewise. + * rust/execute/torture/derive_macro4.rs: Likewise. + +2026-08-07 Pierre-Emmanuel Patry <[email protected]> + + * rust/link/simple_function_0.rs: Remove bogus match. + +2026-08-07 Aiman Najjar <[email protected]> + + * rust/compile/issue-4674.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/glob-import-ambiguous.rs: New test. + +2026-08-07 Utkarsh Bahuguna <[email protected]> + + * rust/compile/generic_args_deadcode.rs: New test. + * rust/compile/torture/traits8.rs: Remove dg-warning. + * rust/compile/v0-mangle1.rs: Remove dg-warning. + * rust/execute/torture/impl_desugar.rs: Remove dg-warning. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/glob_import_brace.rs: New test. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/torture/range-lang-item1.rs: Update test to use + the new lang item. + +2026-08-07 Lishin <[email protected]> + + * rust/execute/drop-explicit-return.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/derive_macro9.rs: New test. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/compile/repr_transparent_fields.rs: Add more test cases. + +2026-08-07 Islam-Imad <[email protected]> + + * rust/execute/cf-break-continue.rs: New test. + * rust/execute/cf-label-shadowing.rs: New test. + * rust/execute/cf-labeled-break-nested.rs: New test. + * rust/execute/cf-labeled-continue-nested.rs: New test. + * rust/execute/cf-labeled-loops.rs: New test. + * rust/execute/cf-loop-break-continue.rs: New test. + * rust/execute/cf-mixed-labeled-unlabeled.rs: New test. + * rust/execute/cf-nested-loops.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/no-mangle-generic-items_0.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/unused-braces_0.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/static_item_0.rs: Change warning description. + * rust/compile/static-mut-refs_0.rs: Make static public. + * rust/compile/const_item_0.rs: New test. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/compile/repr_transparent_fields.rs: Add new test case with PhantomData. + +2026-08-07 Egas Ribeiro <[email protected]> + João Novo <[email protected]> + + * rust/compile/irrefutable-alt.rs: New test. + * rust/compile/irrefutable-basic.rs: New test. + * rust/compile/irrefutable-identifier-binding.rs: New test. + * rust/compile/irrefutable-nested.rs: New test. + * rust/compile/irrefutable-path.rs: New test. + * rust/compile/irrefutable-range.rs: New test. + * rust/compile/irrefutable-reference.rs: New test. + * rust/compile/irrefutable-slice.rs: New test. + * rust/compile/irrefutable-struct.rs: New test. + * rust/compile/irrefutable-tuple.rs: New test. + * rust/compile/refutable-alt.rs: New test. + * rust/compile/refutable-binding.rs: New test. + * rust/compile/refutable-literal-let.rs: New test. + * rust/compile/refutable-literal-parameter.rs: New test. + * rust/compile/refutable-path.rs: New test. + * rust/compile/refutable-range.rs: New test. + * rust/compile/refutable-reference.rs: New test. + * rust/compile/refutable-struct.rs: New test. + * rust/compile/refutable-tuple.rs: New test. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/rustc_conversion_suggestion.rs: New test. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/needs_allocator.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/static-mut-refs_0.rs: New test. + +2026-08-07 Enes Cevik <[email protected]> + + * rust/compile/assert_zero_valid.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/name_resolution29.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/dyn-drop_0.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/extern_type_item_resolve.rs: New test. + +2026-08-07 Lishin <[email protected]> + + * rust/execute/drop-function-params.rs: New test. + +2026-08-07 Lishin <[email protected]> + + * rust/execute/drop-function-scope-unit-tail.rs: New test. + +2026-08-07 Lishin <[email protected]> + + * rust/execute/drop-function-scope-non-unit-tail.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/unused-doc-comment_0.rs: New test. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/compile/invalid_repr_hint.rs: Update existing and add new `align` test cases. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/execute/torture/c_string.rs: Fix missing #[repr(transparent)] + * rust/execute/torture/c_string_ensure_null_term.rs: Ditto. + * rust/compile/c_string_null_byte_check.rs: Ditto. + * rust/compile/repr_transparent_fields2.rs: New file. + * rust/compile/transparent_struct_deref.rs: New file. + +2026-08-07 Yap Zhi Heng <[email protected]> + + * rust/compile/invalid_repr_hint.rs: New file. + * rust/compile/repr_transparent_fields.rs: New file. + +2026-08-07 Arthur Cohen <[email protected]> + + * rust/compile/derive-debug1.rs: Adapt module structure to make it more core-like. + * rust/compile/derive-default1.rs: Likewise. + * rust/compile/derive-eq-invalid.rs: Likewise. + * rust/compile/derive-hash1.rs: Likewise. + * rust/compile/derive_partial_ord1.rs: Likewise. + * rust/compile/format_args_basic_expansion.rs: Likewise. + * rust/compile/format_args_concat.rs: Likewise. + * rust/compile/format_args_extra_comma.rs: Likewise. + * rust/compile/issue-4090-1.rs: Likewise. + * rust/compile/issue-4090-2.rs: Likewise. + * rust/execute/torture/derive-default1.rs: Likewise. + * rust/execute/torture/derive-partialeq2.rs: Likewise. + * rust/execute/torture/issue-2005.rs: Likewise. + * rust/execute/torture/issue-3836.rs: Likewise. + * rust/execute/torture/partial-eq-4.rs: Likewise. + * rust/execute/torture/partial-ord-5.rs: Likewise. + * rust/execute/torture/partial-ord-6.rs: Likewise. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/glob-import-import.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/early_feature_gate_in_macro.rs: Change test + options. + * rust/compile/offset_of1.rs: Likewise. + * rust/compile/offset_of2.rs: Likewise. + * rust/compile/parse_time_feature_gate.rs: Likewise. + * rust/execute/torture/offset_of1.rs: Likewise. + +2026-08-07 Arthur Cohen <[email protected]> + + * rust/compile/issue-4116.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/execute/ident_pat_vs_path_3.rs: New test. + +2026-08-07 Lucas Ly Ba <[email protected]> + + * rust/compile/drop-bounds_0.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/global-allocator.rs: New test. + +2026-08-07 Owen Avery <[email protected]> + + * rust/compile/generics15.rs: New test. + +2026-08-07 Dylan Rees <[email protected]> + + * gcc.target/i386/pr124407-1.c: Removed x86_cse rtl flag + and scans. Replaced with assembly scan for specific + 'movabsq' instruction. + * gcc.target/i386/pr81501-9b.c: Removed check-function-bodies + and replaced with orderless assembly scans. + +2026-08-07 Eikansh Gupta <[email protected]> + + PR tree-optimization/109843 + PR tree-optimization/112472 + * gcc.dg/tree-ssa/pr109843.c: Add -msse2 -mfpmath=sse for ilp32 x86. + * gcc.dg/tree-ssa/pr112472.c: Likewise. + +2026-08-07 Jakub Jelinek <[email protected]> + + PR tree-optimization/126641 + * gcc.dg/pr126641.c: New test. + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * gcc.dg/tree-ssa/avg-1.c: New test. + * gcc.target/aarch64/sve/pr89007-2.c: Update the expected loop body. + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * gcc.dg/tree-ssa/modmod-1.c: New test. + * gcc.dg/tree-ssa/modmod-2.c: Likewise. + * gcc.dg/tree-ssa/modmod-3.c: Likewise. + * gcc.dg/tree-ssa/modmod-4.c: Likewise. + * gcc.dg/tree-ssa/modmod-5.c: Likewise. + +2026-08-07 Kyrylo Tkachov <[email protected]> + + * gcc.dg/tree-ssa/minmax-offset-absorb-1.c: New test. + * gcc.dg/tree-ssa/minmax-offset-absorb-2.c: Likewise. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/99293 + * gcc.target/powerpc/pr99293.c: New test. + +2026-08-07 Michael Meissner <[email protected]> + + PR target/117487 + * gcc.target/powerpc/pr117487.c: New test. + +2026-08-07 Michael Meissner <[email protected]> + + * gcc.target/powerpc/future-3.c: New test. + 2026-08-06 Kyrylo Tkachov <[email protected]> * gcc.dg/tree-ssa/signbit-1.c: New test. diff --git a/libgcobol/ChangeLog b/libgcobol/ChangeLog index bb857a849693..69bb6c0e439a 100644 --- a/libgcobol/ChangeLog +++ b/libgcobol/ChangeLog @@ -1,3 +1,30 @@ +2026-08-07 Robert Dubner <[email protected]> + James K. Lowden <[email protected]> + + * gmath.cc (__gg__pow): Use exponentiation_helper(). + (exponentiation_helper): New routine. + (__gg__process_compute_error): Formatting. + (multiply_int128_by_int128): Use new int128 structure. + (divide_int128_by_int128): Formatting. + (multiply_int256_by_int256): New routine. + (divide_int256_by_int256): New routine. + (compute_fixed_add): New routine to implement RPN COMPUTE. + (compute_fixed_subtract): Likewise. + (compute_fixed_multiply): Likewise. + (compute_fixed_divide): Likewise. + (compute_fixed_negate): Likewise. + (compute_float_add): Likewise. + (compute_float_subtract): Likewise. + (compute_float_multiply): Likewise. + (compute_float_divide): Likewise. + (compute_float_pow): Likewise. + (compute_float_negate): Likewise. + (__gg__compute_fixed): Likewise. + (__gg__compute_float): Likewise. + * libgcobol.cc (__gg__prohibited): New routine tests value and + target for ROUNDING MODE PROHIBITED compliance. + * libgcobol.h: Formatting. + 2026-08-01 Robert Dubner <[email protected]> * gmath.cc (get_int256_from_qualified_field): Use int128 structure. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2b062f70597d..3bf7d6d6a9f7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,17 @@ +2026-08-07 Tomasz Kamiński <[email protected]> + + * config/os/djgpp/error_constants.h (errc::no_message_available) + (errc::no_stream_resources, errc:not_a_stream) + (errc::stream_timeout): Mark as _GLIBCXX23_DEPRECATED + * config/os/generic/error_constants.h + (errc::no_message_available, errc::no_stream_resources) + (errc:not_a_stream, errc::stream_timeout): Likewise. + * config/os/mingw32-w64/error_constants.h + (errc::no_message_available, errc::no_stream_resources) + (errc:not_a_stream, errc::stream_timeout): Likewise. + * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: + Add dg-warning attributes for expected deprecation warnings. + 2026-08-05 Tomasz Kamiński <[email protected]> PR libstdc++/119739
