+2025-09-19 Alexandre Oliva <oliva@adacore.com>
+
+ * ira.cc (setup_reg_equiv): Retain function invariant
+ equivalences.
+
+2025-09-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Take gimple*
+ instead of iterator.
+ (optimize_agr_copyprop): Likewise.
+ (simplify_builtin_call): Update call to optimize_aggr_zeroprop.
+ (pass_forwprop::execute): Update calls to optimize_aggr_zeroprop
+ and optimize_agr_copyprop.
+
+2025-09-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ * tree-ssa-forwprop.cc (optimize_aggr_zeroprop_1): Change return type
+ to void.
+ (optimize_aggr_zeroprop): Likewise.
+ (optimize_agr_copyprop_1): Likewise.
+ (optimize_agr_copyprop_arg): Likewise.
+ (optimize_agr_copyprop): Likewise.
+ (simplify_builtin_call): Handle update of the return type
+ of optimize_aggr_zeroprop.
+ (pass_forwprop::execute): Likewise and optimize_agr_copyprop.
+
+2025-09-19 Michael Eager <eager@eagercon.com>
+
+ PR target/118280
+ * config/microblaze/iterators.md: New.
+ * config/microblaze/microblaze-protos.h: Add
+ microblaze_subword_address.
+ * config/microblaze/microblaze.cc: Ditto.
+ * config/microblaze/microblaze.md: constants: Add UNSPECV_CAS_BOOL,
+ UNSPECV_CAS_MEM, UNSPECV_CAS_VAL, UNSPECV_ATOMIC_FETCH_OP
+ type: add atomic
+ * config/microblaze/sync.md: Add atomic_fetch_<atomic_optab>si
+ atomic_test_and_set
+
+2025-09-19 Jan Hubicka <jh@suse.cz>
+
+ * ipa-fnsummary.cc (estimate_edge_devirt_benefit): Handle speculative
+ edges correctly.
+ (estimate_edge_size_and_time): Even when not collecting hints,
+ devirtualization affects function size.
+ (estimate_calls_size_and_time): Do not use tables when devirtualization
+ is possible.
+
+2025-09-19 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.cc (cgraph_edge::make_direct): Do not ICE when there are
+ multiple speculations to comptaible targets
+ (cgraph_edge::combined_sreal_frequency): New member function.
+ * cgraph.h (cgraph_edge::combined_sreal_frequency): Declare.
+ * ipa-cp.cc (devirtualization_time_bonus): Return sreal; consider
+ profile.
+ (estimate_local_effects): Likewise.
+
+2025-09-19 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/121856
+ * doc/gm2.texi (Compiler options): New item -fwideset.
+
+2025-09-19 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/121983
+ * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Make sure
+ object is a REG before asking for its REGNO. Fix a trivial
+ whitespace nit.
+
+2025-09-19 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
+
+ * config/riscv/riscv-v.cc
+ (shuffle_slide_patterns): Cover more permutations.
+
+2025-09-19 Jim Lin <jim@andestech.com>
+
+ * config/riscv/riscv.cc (riscv_compute_frame_info): Remove the
+ dedicated calculation for RVE.
+
+2025-09-19 Jeff Law <jlaw@ventanamicro.com>
+
+ * config.gcc (riscv*); Add riscv-bclr-lowest-set-bit.o to extra_objs.
+ * config/riscv/riscv-bclr-lowest-set-bit.cc: New file.
+ * config/riscv/riscv-passes.def: Add new pass after combine.
+ * config/riscv/riscv-protos.h (make_pass_bclr_lowest_set_bit): Add
+ prototype.
+ * config/riscv/t-riscv: Add rules to build riscv-bclr-lowest-set-bit.o.
+
+2025-09-19 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-pre.cc (compute_antic_aux): Remove dead code.
+
+2025-09-19 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_stmt_vec_info::store_count): Remove.
+ (DR_GROUP_STORE_COUNT): Likewise.
+ * tree-vect-stmts.cc (vect_transform_stmt): Remove non-SLP
+ path.
+
+2025-09-19 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vect_get_num_copies): Remove unused
+ overload. Remove defaulted vectype argument and always
+ use the vector type of the SLP node.
+ * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
+ Adjust.
+ (vectorizable_lane_reducing): Likewise.
+ (vect_transform_reduction): Likewise.
+ (vectorizable_nonlinear_induction): Likewise.
+ * tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ Likewise.
+
+2025-09-19 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_tree::vec_stmts_size): Remove.
+ (SLP_TREE_NUMBER_OF_VEC_STMTS): Likewise.
+ * tree-vect-loop.cc (vectorizable_reduction): Adjust.
+ (vect_transform_cycle_phi): Likewise.
+ (vect_transform_lc_phi): Likewise.
+ (vectorizable_recurr): Likewise.
+ (vectorizable_induction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ * tree-vect-slp.cc (_slp_tree::_slp_tree): Do not set
+ SLP_TREE_NUMBER_OF_VEC_STMTS.
+ (vect_slp_analyze_node_operations_1): Likewise.
+ (vect_slp_analyze_node_operations): Likewise.
+ (vect_prologue_cost_for_slp): Adjust.
+ (vect_create_constant_vectors): Likewise.
+ (vect_get_slp_vect_def): Likewise.
+ (vect_transform_slp_perm_load_1): Likewise.
+ (vectorizable_slp_permutation_1): Likewise.
+ (vect_schedule_slp_node): Likewise.
+ (vectorize_slp_instance_root_stmt): Likewise.
+ * tree-vect-stmts.cc (vect_model_simple_cost): Likewise.
+ (vectorizable_bswap): Likewise.
+ (vectorizable_call): Likewise.
+ (vectorizable_conversion): Likewise.
+ (vectorizable_shift): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+ (vectorizable_condition): Likewise.
+ (vectorizable_early_exit): Likewise.
+
2025-09-18 David Malcolm <dmalcolm@redhat.com>
* diagnostics/client-data-hooks.h (client_data_hooks::dump): New.
+2025-09-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (create_var_decl): Add LINKONCE_FLAG boolean
+ parameter.
+ (create_subprog_decl): Likewise.
+ * gcc-interface/decl.cc (gnat_to_gnu_entity): Adjust calls to
+ create_var_decl and create_subprog_decl.
+ (elaborate_expression_1): Likewise.
+ * gcc-interface/trans.cc (gigi): Likewise.
+ (build_raise_check): Likewise.
+ (Subprogram_Body_to_gnu): Likewise.
+ (create_temporary): Likewise.
+ (Exception_Handler_to_gnu): Likewise.
+ (Compilation_Unit_to_gnu): Likewise.
+ (gnat_to_gnu): Likewise.
+ (use_alias_for_thunk_p): Return false for a one-only target.
+ * gcc-interface/utils.cc (maybe_pad_type): Adjust call to
+ create_var_decl.
+ (create_var_decl): Add LINKONCE_FLAG boolean parameter.
+ (create_subprog_decl): Likewise.
+
+2025-09-19 Marc Poulhiès <poulhies@adacore.com>
+
+ * gcc-interface/ada-tree.h (TYPE_EXTENDED_POINTER_P): New.
+ (TYPE_IS_EXTENDED_POINTER_P): New.
+ (TYPE_EXTENDED_UNCONSTRAINED_ARRAY): New.
+ (SET_TYPE_EXTENDED_UNCONSTRAINED_ARRAY): New.
+ (TYPE_DUMMY_EXT_POINTER_TO): New.
+ (SET_TYPE_DUMMY_EXT_POINTER_TO): New.
+ * gcc-interface/decl.cc (get_extended_unconstrained_array): New.
+ (gnat_to_gnu_entity): Handle extended access type.
+ (get_unpadded_extended_type): New.
+ (gnat_to_gnu_component_type): Handle extended access type.
+ (build_template_type): New.
+ (gnat_to_gnu_field): Handle extended access type.
+ (validate_size): Likewise.
+ (set_rm_size): Likewise.
+ (copy_and_substitute_in_layout): Likewise.
+ (rm_size): Likewise.
+ * gcc-interface/gigi.h (get_unpadded_extended_type): New.
+ (build_template_type): New.
+ (build_dummy_unc_pointer_types_ext): New.
+ (finish_extended_pointer_type): New.
+ (build_unc_object_type_from_ptr): Rename first parameter.
+ * gcc-interface/misc.cc (gnat_print_type): Handle extended access type.
+ * gcc-interface/trans.cc (Identifier_to_gnu): Likewise.
+ (Attribute_to_gnu): Likewise.
+ (gnat_to_gnu): Likewise.
+ * gcc-interface/utils.cc (convert_to_fat_pointer): Assert if converting an
+ extended pointer.
+ (build_dummy_unc_pointer_types_ext): New.
+ (finish_extended_pointer_type): New.
+ (finish_record_type): Handle extended access type.
+ (build_unc_object_type_from_ptr): Likewise.
+ (convert_to_extended_pointer): New.
+ (convert): Handle extended access type.
+ (gnat_pushdecl): Likewise.
+ (maybe_pad_type): Likewise.
+ * gcc-interface/utils2.cc (build_unary_op): Likewise.
+ (build_binary_op): Likewise.
+ (build_allocator): Likewise.
+ (gnat_save_expr): Likewise.
+ (gnat_protect_expr): Likewise.
+ (gnat_stabilize_reference_1): Likewise.
+
+2025-09-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_ch4.adb (Analyze_Selected_Component): Bail out if the prefix
+ has Void_Type.
+
+2025-09-19 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_ch4.adb (Analyze_User_Defined_Binary_Op): Remove declare block.
+
+2025-09-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * doc/gnat_rm/gnat_language_extensions.rst (Structural Generic
+ Instantiation): New entry
+ * einfo.ads (Is_Link_Once): New flag defined in entities.
+ * sinfo.ads (Is_Structural): New flag defined in instantiations.
+ * gen_il-fields.ads (Opt_Field_Enum): Add Is_Link_Once and
+ Is_Structural.
+ * gen_il-gen-gen_entities.adb (Entity_Kind): Add Is_Link_Once
+ semantic flag.
+ * gen_il-gen-gen_nodes.adb (N_Generic_Instantiation): Move up
+ Parent_Spec field and add Is_Structural semantic flag.
+ * frontend.adb: Add with clause for Sem_Ch12.
+ (Frontend): After analysis is complete and bodies are instantiated,
+ call Sem_Ch12.Mark_Link_Once on the declarations of the main unit.
+ * par.adb (P_Qualified_Simple_Name): Delete.
+ (P_Qualified_Simple_Name_Resync): Likewise
+ (P_Exception_Name): New function declaration.
+ (P_Label_Name): Likewise.
+ (P_Loop_Name): Likewise.
+ (P_Generic_Unit_Name): Likewise.
+ (P_Library_Unit_Name): Likewise.
+ (P_Package_Name): Likewise.
+ (P_Parent_Unit_Name): Likewise.
+ (P_Subtype_Name): Likewise.
+ (P_Subtype_Name_Resync): Likewise.
+ * par-ch3.adb (P_Subtype_Mark_Resync): Replace call to
+ P_Qualified_Simple_Name_Resync by P_Subtype_Name_Resync.
+ (P_Identifier_Declarations): Replace call to
+ P_Qualified_Simple_Name_Resync by P_Exception_Name.
+ (P_Derived_Type_Def_Or_Private_Ext_Decl): Replace call to
+ P_Qualified_Simple_Name by P_Subtype_Name.
+ (P_Interface_Type_Definition): Replace calls to
+ P_Qualified_Simple_Name by P_Subtype_Name.
+ * par-ch4.adb (P_Reduction_Attribute_Reference): Move around and
+ change name of parameter.
+ (P_Name): Document new grammar rule and make a couple of tweaks.
+ (P_Exception_Name): New function.
+ (P_Label_Name): Likewise.
+ (P_Loop_Name): Likewise.
+ (P_Generic_Unit_Name): Likewise.
+ (P_Library_Unit_Name): Likewise.
+ (P_Package_Name): Likewise.
+ (P_Parent_Unit_Name): Likewise.
+ (P_Subtype_Name): Likewise.
+ (P_Subtype_Name_Resync): Likewise.
+ (P_Qualified_Simple_Name): Rename into...
+ (P_Simple_Name): ...this.
+ (P_Qualified_Simple_Name_Resync): Rename into...
+ (P_Simple_Name_Resync): ...this. Accept left parenthesis and
+ dot as name extensions.
+ (P_Allocator): Replace call to P_Qualified_Simple_Name_Resync
+ by P_Subtype_Name_Resync.
+ * par-ch5.adb (P_Goto_Statement): Replace call to
+ P_Qualified_Simple_Name by P_Label_Name.
+ (Parse_Loop_Flow_Statement): Replace call to
+ P_Qualified_Simple_Name by P_Loop_Name.
+ * par-ch6.adb (P_Subprogram): Replace call to
+ P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ * par-ch7.adb (P_Package): Replace calls to
+ P_Qualified_Simple_Name by P_Package_Name and P_Generic_Unit_Name.
+ * par-ch8.adb (P_Use_Package_Clause): Replace calls to
+ P_Qualified_Simple_Name by P_Package_Name.
+ * par-ch9.adb (P_Task): Replace call to
+ P_Qualified_Simple_Name by P_Subtype_Name.
+ (P_Protected): Likewise.
+ * par-ch10.adb (P_Context_Clause): Replace call to
+ P_Qualified_Simple_Name by P_Library_Unit_Name.
+ (P_Subunit): Replace call to P_Qualified_Simple_Name by
+ P_Parent_Unit_Name.
+ * par-ch12.adb (P_Generic): Replace call to
+ P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ (P_Formal_Derived_Type_Definition): Replace call to
+ P_Qualified_Simple_Name by P_Subtype_Name.
+ (P_Formal_Package_Declaration): Replace call to
+ P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ * sem_ch4.adb: Add with and use clauses for Sem_Ch12.
+ (Analyze_Call): Accept implicit instantiations with -gnatX0.
+ (Analyze_Indexed_Component_Form): Likewise.
+ * sem_ch8.adb (Analyze_Use_Package): Add guard before inserting
+ a with clause automatically when there is a use clause.
+ (Check_In_Previous_With_Clause): Retrieve original names.
+ (Check_Library_Unit_Renaming): Deal with structural instances.
+ (End_Use_Type): Minor tweak.
+ * sem_ch10.adb (Analyze_With_Clause): Remove useless test and
+ call Defining_Entity_Of_Instance.
+ * sem_ch12.ads (Build_Structural_Instantiation): New function.
+ (Mark_Link_Once): New procedure.
+ * sem_ch12.adb: Add with and use clauses for Exp_Dbug.
+ (Analyze_Associations): Add support for structural instantiations.
+ (Analyze_Package_Instantiation): Likewise.
+ (Analyze_Subprogram_Instantiation): Likewise.
+ (Analyze_Structural_Associations): New procedure.
+ (Need_Subprogram_Instance_Body): Return True for instantiation is
+ in the auxiliary declarations of the main unit.
+ (Build_Structural_Instantiation): New function.
+ (Mark_Link_Once): New procedure.
+ * sem_util.ads (Add_Local_Declaration): New procedure.
+ (Defining_Entity_Of_Instance): New function.
+ * sem_util.adb (Add_Local_Declaration): New procedure.
+ (Defining_Entity_Of_Instance): New function.
+ * gnat_rm.texi: Regenerate.
+ * gnat_ugn.texi: Regenerate.
+
+2025-09-19 Ronan Desplanques <desplanques@adacore.com>
+
+ * aspects.ads: Fix comment.
+
+2025-09-19 Ronan Desplanques <desplanques@adacore.com>
+
+ * aspects.ads: Remove comment.
+
+2025-09-19 Marc Poulhiès <poulhies@adacore.com>
+
+ * libgnat/s-putima.ads (Ext_Access_Pointer): New.
+ (Put_Image_Extended_Access_Pointer): New.
+ * libgnat/s-putima.adb (Ext_Acc_Instance): New.
+ (Put_Image_Extended_Access_Pointer): New.
+ * rtsfind.ads (RE_Id, RE_Unit_Table): Set value for
+ RE_Put_Image_Extended_Access_Pointer.
+ * exp_put_image.adb (Build_Elementary_Put_Image_Call): Handle extended
+ access.
+
+2025-09-19 Marc Poulhiès <poulhies@adacore.com>
+
+ * fe.h (Is_Extended_Access_Type): Add C bindings.
+ * sem_util.ads (Is_Extended_Access_Type): Add comment that any
+ change to the function must take care of the C binding.
+
+2025-09-19 Marc Poulhiès <poulhies@adacore.com>
+
+ * layout.adb (Layout_Type): Adjust comment and code extended
+ accesses.
+
+2025-09-19 Ronan Desplanques <desplanques@adacore.com>
+
+ * sem_ch3.adb (Add_Tag): Remove superfluous statements.
+
+2025-09-19 Steve Baird <baird@adacore.com>
+
+ * exp_attr.adb (Interunit_Ref_OK): Treat a subunit like a body.
+ (Build_And_Insert_Type_Attr_Subp): When climbing up the
+ tree, go from an N_Subunit node to its stub (instead of to the
+ subunit's N_Compilation_Unit node).
+
+2025-09-19 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_attr.adb (Eval_Attribute): In the case of a VADS-specific
+ size attribute, only fold to the object size when the Esize field
+ is known.
+
2025-09-16 Ronan Desplanques <desplanques@adacore.com>
* exp_strm.ads (Get_Primitives): New function.
+2025-09-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/83746
+ * trans-array.cc (structure_alloc_comps): Add the pre and post
+ blocks to 'fnblock' for all the evaluations of parameterized
+ expressions in PDT component allocatation.
+
2025-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/114815
+2025-09-19 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/121856
+ * Make-lang.in (GM2-LIBS-BOOT-DEFS): Add M2Diagnostic.def.
+ Add Selective.def.
+ (GM2-LIBS-BOOT-MODS): Add M2Diagnostic.mod.
+ (GM2-LIBS-BOOT-C): Add Selective.c.
+ (GM2-LIBS-DEFS): Add Selective.def.
+ (GM2-LIBS-MODS): Add M2Diagnostic.mod.
+ (MC-LIB-MODS): Add M2Diagnostic.mod.
+ (m2/gm2-libs-boot/Selective.o): New rule.
+ (BUILD-PGE-O): Add m2/pge-boot/GM2Diagnostic.o.
+ Add m2/pge-boot/GM2Diagnostic.o.
+ Add m2/pge-boot/GStringConvert.o.
+ Add m2/pge-boot/Gdtoa.o.
+ Add m2/pge-boot/Gldtoa.o.
+ * Make-maintainer.in (PPG-LIB-DEFS): Add M2Diagnostic.def.
+ Add StringConvert.def.
+ (PPG-LIB-MODS): Add M2Diagnostic.mod.
+ Add StringConvert.mod.
+ (PGE-DEF): Add M2Diagnostic.def.
+ (PGE-DEPS): Add GM2Diagnostic.cc.
+ Add GM2Diagnostic.h.
+ * gm2-compiler/FifoQueue.def (PutSetIntoFifoQueue): New
+ procedure.
+ (GetSetFromFifoQueue): New procedure function.
+ * gm2-compiler/FifoQueue.mod (PutSetIntoFifoQueue): New
+ procedure.
+ (GetSetFromFifoQueue): New procedure function.
+ * gm2-compiler/M2ALU.def (KillValue): New procedure.
+ (PushSetTree): Rename parameter t to value.
+ (ConstructSetConstant): Rewrite comment.
+ * gm2-compiler/M2ALU.mod: Rewrite to use the new set type
+ and introduce memory diagnostics.
+ * gm2-compiler/M2Base.mod (InitBaseProcedures): Lookup M2WIDESET.
+ * gm2-compiler/M2CaseList.mod (CheckCaseBoundsResolved): Change
+ format specifier to allow the preceeding indefinite article to
+ have a n concatenated providing the following string substitute
+ begins with a vowel.
+ (checkTypes): Ditto.
+ * gm2-compiler/M2Check.mod (checkGenericUnboundedTyped): New
+ procedure function.
+ * gm2-compiler/M2Code.mod (OptimizationAnalysis): Replace with ...
+ (ResourceAnalysis): ... this.
+ * gm2-compiler/M2Comp.mod (PopulateResource): New procedure.
+ (compile): Call PopulateResource.
+ Call M2Diagnostic.Generate.
+ * gm2-compiler/M2GCCDeclare.mod: Rewrite for new set type.
+ * gm2-compiler/M2GenGCC.mod: Rewrite implementation for
+ becomes, incl, excl, and, or, not, xor for the new set type.
+ * gm2-compiler/M2MetaError.def: Extend comment documenting
+ the v format specifier.
+ * gm2-compiler/M2MetaError.mod (errorBlock): New field vowel.
+ (initErrorBlock): Initialize field vowel.
+ Reformat comments.
+ (pop): Call checkVowel.
+ (checkVowel): New procedure.
+ (isVowel): New procedure function.
+ (symDesc): Remove indefinite article.
+ (op): Set vowel field in case clause.
+ * gm2-compiler/M2Options.def (OptimizeSets): New global.
+ (TimeReport): Ditto.
+ (MemReport): Ditto.
+ (SetMemReport): New procedure.
+ (SetTimeReport): Ditto.
+ (SetWideset): Ditto.
+ (GetWideset): New procedure function.
+ * gm2-compiler/M2Options.mod (SetOptimizing): Assign
+ OptimizeSets depending upon the optimization level.
+ (SetMemReport): New procedure.
+ (SetTimeReport): Ditto.
+ (SetWideset): Ditto.
+ (GetWideset): New procedure function.
+ (OptimizeSets): Initialize to FALSE.
+ (TimeReport): Ditto.
+ (MemReport): Ditto.
+ * gm2-compiler/M2Quads.mod (M2Diagnostic): Import.
+ (QuadsMemDiag): New global variable.
+ (NewQuad): Bump QuadsMemDiag whenever a quad is allocated.
+ (BuildAssignmentBoolean): New procedure.
+ (doBuildAssignment): Ditto.
+ Add v to the format specifier.
+ (CheckCompatibleWithBecomes): Add v to the format specifier.
+ (CheckProcTypeAndProcedure): Ditto.
+ (BuildAddAdrFunction): Ditto.
+ (BuildSubAdrFunction): Ditto.
+ (BuildDifAdrFunction): Ditto.
+ (BuildDesignatorArrayStaticDynamic): Ditto.
+ (BuildDesignatorPointer): Ditto.
+ (CheckVariableOrConstantOrProcedure): Ditto.
+ (Init): Initialize QuadsMemDiag.
+ * gm2-compiler/M2Range.mod (CodeTypeAssign): Add v to the
+ format specifier.
+ * gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions):
+ Generate more precise warning note.
+ * gm2-compiler/M2SymInit.mod (PrintSymInit): Add record
+ field warning.
+ * gm2-compiler/M2System.mod
+ (IsPseudoSystemFunctionConstExpression): Add TBitSize.
+ * gm2-compiler/NameKey.mod: Add MemDiagnostic code
+ commented out.
+ * gm2-compiler/P1SymBuild.mod (StartBuildProcedure):
+ Add v format specifier.
+ * gm2-compiler/P2SymBuild.mod (BuildFieldRecord): Ditto.
+ * gm2-compiler/P3Build.bnf (SetType): Reformat.
+ * gm2-compiler/PathName.def (Copyright): Added.
+ * gm2-compiler/PathName.mod: Remove blank line.
+ * gm2-compiler/SymbolConversion.mod (gdbhook): New procedure.
+ (BreakWhenSymBooked): Ditto.
+ (CheckBook): Ditto.
+ (Init): Rewrite.
+ * gm2-compiler/SymbolTable.def (GetSetArray): New procedure.
+ (PutSetArray): Ditto.
+ (MakeSetArray): New procedure function.
+ (PutSetInWord): New procedure.
+ (GetSetInWord): New procedure function.
+ (IsConstVar): Ditto.
+ * gm2-compiler/SymbolTable.mod (SymSet): SetInWord new field.
+ SetArray new field.
+ Align new field.
+ (SymMemDiag): New global variable.
+ (Init): Initialize SymMemDiag.
+ (IsConstVar): New procedure function.
+ (IsVariableSSA): Replace InternalError with Return FALSE.
+ (GetNthParamOrdered): Reimplement.
+ (GetNthParamAnyClosest): Ditto.
+ (GetOuterModuleScope): Ditto.
+ (MakeSet): Ditto.
+ (PutSetArray): New procedure.
+ (GetSetArray): New procedure function.
+ (MakeSetArray): Ditto.
+ (PutSetInWord): New procedure.
+ (GetSetInWord): New procedure function.
+ * gm2-gcc/init.cc (_M2_M2Diagnostic_init): Define
+ prototype.
+ (init_FrontEndInit):Call _M2_M2Diagnostic_init.
+ * gm2-gcc/m2block.cc (m2block_GetTotalConstants): New function.
+ (m2block_GetGlobalTypes): Ditto.
+ * gm2-gcc/m2block.def (GetTotalConstants): New procedure function.
+ (GetGlobalTypes): New procedure function.
+ * gm2-gcc/m2block.h (m2block_GetTotalConstants): New function
+ prototype.
+ (m2block_GetGlobalTypes): Ditto.
+ * gm2-gcc/m2convert.cc (converting_ISO_generic): Reimplement.
+ (m2convert_ToPIMByte): New function.
+ * gm2-gcc/m2convert.def (ToLoc): New procedure function.
+ (ToPIMByte): Ditto.
+ * gm2-gcc/m2convert.h (m2convert_ToPIMByte): Ditto.
+ * gm2-gcc/m2decl.h (m2decl_RememberVariables): Ditto.
+ * gm2-gcc/m2expr.cc (m2expr_BuildLogicalShift): Reimplement.
+ (m2expr_BuildLRotate): Ditto.
+ (m2expr_BuildLRLn): Ditto.
+ (m2expr_BuildLRRn): Ditto.
+ (m2expr_BuildLogicalRotate): Ditto.
+ (buildUnboundedArrayOf): Ditto.
+ (BuildIfBitInSetLower): New function.
+ (m2expr_BuildBinarySetDo): Reimplement.
+ (m2expr_BuildIfInSet): Ditto.
+ (m2expr_BuildIfNotInSet): New function.
+ (m2expr_Build4LogicalOr): Reimplement.
+ (m2expr_BuildSetNegate): Ditto.
+ (m2expr_BuildLogicalOrAddress): Ditto.
+ (m2expr_BuildLogicalOr): Ditto.
+ (m2expr_BuildLogicalAnd): Ditto.
+ (m2expr_BuildSymmetricDifference): Ditto.
+ (m2expr_BuildLogicalDifference): Ditto.
+ (boolean_enum_to_unsigned): Ditto.
+ (m2expr_BuildIsSuperset): Ditto.
+ (m2expr_BuildIsNotSuperset): Ditto.
+ (m2expr_BuildIsSubset): Ditto.
+ (m2expr_BuildIfBitInSetJump): Ditto.
+ (m2expr_BuildIfNotConstInVar): Ditto.
+ (m2expr_BuildIfVarInVar): Ditto.
+ (m2expr_BuildIfNotVarInVar): Remove.
+ (m2expr_BuildIfConstInVar): Remove.
+ (m2expr_BuildForeachWordInSetDoIfExpr): Ditto.
+ (m2expr_BuildBinaryForeachWordDo): Ditto.
+ (m2expr_BuildIfInRangeGoto): Reimplement.
+ (m2expr_BuildIfNotInRangeGoto): Ditto.
+ (m2expr_SetAndNarrow): Ditto.
+ (m2expr_GetBitsetZero): New function.
+ (m2expr_GetRValue): Ditto.
+ * gm2-gcc/m2expr.def (GetBitsetZero): New function.
+ (BuildSetNegate): Ditto.
+ (BuildLogicalOr): Reimplement.
+ (BuildLogicalAnd): Ditto.
+ (BuildSymmetricDifference): Ditto.
+ (BuildLogicalDifference): Ditto.
+ (BuildIfInSet): New procedure function.
+ (BuildIfNotInSet): Ditto.
+ (BuildEqualTo): Reimplement.
+ (BuildNotEqualTo): Ditto.
+ (BuildBinaryForeachWordDo): Remove.
+ (BuildBinarySetDo): Ditto.
+ (GetRValue): New procedure function.
+ * gm2-gcc/m2expr.h (m2expr_BuildBinaryForeachWordDo): Remove.
+ (m2expr_BuildForeachWordInSetDoIfExpr): Ditto.
+ (m2expr_BuildIfNotVarInVar): Ditto.
+ (m2expr_BuildIfVarInVar): Ditto.
+ (m2expr_BuildIfNotConstInVar): Ditto.
+ (m2expr_BuildIfConstInVar): Ditto.
+ (m2expr_BuildLogicalDifference): Reimplement.
+ (m2expr_BuildSymmetricDifference): Ditto.
+ (m2expr_BuildLogicalAnd): Ditto.
+ (m2expr_BuildLogicalOr): Ditto.
+ (m2expr_BuildLogicalOrAddress): Ditto.
+ (m2expr_BuildSetNegate): Ditto.
+ (m2expr_GetBitsetZero): New function.
+ (m2expr_GetRValue): Ditto.
+ (m2expr_BuildIfInSet): Ditto.
+ (m2expr_BuildIfNotInSet): Ditto.
+ * gm2-gcc/m2options.h (M2Options_SetTimeReport): New function.
+ (M2Options_SetMemReport): Ditto.
+ (M2Options_SetWideset): Ditto.
+ (M2Options_GetWideset): Ditto.
+ * gm2-gcc/m2pp.cc (m2pp_shiftrotate_expr): New function.
+ (m2pp_simple_expression): Ditto.
+ * gm2-gcc/m2statement.cc (m2statement_BuildStartFunctionCode):
+ Tidyup comments.
+ (m2statement_BuildEndFunctionCode): Ditto.
+ (m2statement_BuildPushFunctionContext): Ditto.
+ (copy_array): Ditto.
+ (CopyByField_Lower): Ditto.
+ (m2statement_BuildGoto): Ditto.
+ (m2statement_DeclareLabel): Ditto.
+ (m2statement_BuildParam): Ditto.
+ (nCount): Ditto.
+ (m2statement_BuildProcedureCallTree): Ditto.
+ (m2statement_BuildBuiltinCallTree): Ditto.
+ (m2statement_BuildFunctValue): Ditto.
+ (m2statement_BuildCall2): Ditto.
+ (m2statement_BuildCall3): Ditto.
+ (m2statement_BuildFunctionCallTree): Ditto.
+ (m2statement_SetLastFunction): Ditto.
+ (m2statement_SetParamList): Ditto.
+ (m2statement_GetLastFunction): Ditto.
+ (m2statement_GetParamList): Ditto.
+ (m2statement_GetCurrentFunction): Ditto.
+ (m2statement_GetParamTree): Ditto.
+ (m2statement_BuildTryFinally): Ditto.
+ (m2statement_BuildCleanUp): Ditto.
+ (m2statement_BuildUnaryForeachWordDo): Remove.
+ (m2statement_BuildExcludeVarConst): Ditto.
+ (m2statement_BuildExcludeVarVar): Ditto.
+ (m2statement_BuildIncludeVarConst): Ditto.
+ (m2statement_BuildIncludeVarVar): Ditto.
+ (m2statement_DoJump): Remove.
+ (m2statement_IfExprJump): New function.
+ (m2statement_IfBitInSetJump): Ditto.
+ * gm2-gcc/m2statement.def (DoJump): Remove.
+ (IfExprJump): New procedure function.
+ (BuildUnaryForeachWordDo): Remove.
+ (IfBitInSetJump): New procedure function.
+ * gm2-gcc/m2statement.h (m2statement_BuildForeachWordDo): Remove.
+ (m2statement_DoJump): Ditto.
+ (m2statement_IfExprJump): New function.
+ (m2statement_IfBitInSetJump): Ditto.
+ * gm2-gcc/m2treelib.cc (m2treelib_do_jump_if_bit): Reimplement.
+ (nCount): Replace with ...
+ (m2treelib_nCount): ... this.
+ (m2treelib_DoCall): Reimplement.
+ (m2treelib_get_rvalue): Remove.
+ * gm2-gcc/m2treelib.def (get_rvalue): Remove.
+ (nCount): New procedure function.
+ * gm2-gcc/m2treelib.h (m2treelib_get_rvalue): Remove.
+ (m2treelib_nCount): New function.
+ * gm2-gcc/m2type.cc (constructor_elements): Change type to vec.
+ (m2type_BuildEndArrayType): Reformat.
+ (build_m2_type_node_by_array): Ditto.
+ (m2type_GetBooleanEnumList): New procedure function.
+ (m2type_BuildEnumerator): Add const to char *.
+ (m2type_BuildSetConstructorElement): Reimplement.
+ (m2type_BuildEndSetConstructor): Ditto.
+ (build_record_constructor): New function.
+ (m2type_BuildEndRecordConstructor): Reimplement.
+ (m2type_BuildRecordConstructorElement): Ditto.
+ (m2type_BuildStartArrayConstructor): Reimplement.
+ (m2type_BuildEndArrayConstructor): Remove blank lines.
+ * gm2-gcc/m2type.def (BuildSetConstructorElement): Reimplement.
+ (BuildEndArrayType): Reformat.
+ (GetBooleanEnumList): New function.
+ * gm2-gcc/m2type.h (m2type_BuildEnumerator): Add const to char *.
+ (m2type_BuildSetConstructorElement): Reimplement.
+ (m2type_GetBooleanEnumList): New procedure function.
+ * gm2-lang.cc (OPT_fmem_report): New option.
+ (OPT_ftime_report): Ditto.
+ (OPT_fwideset): Ditto.
+ * gm2-libs-coroutines/SYSTEM.def (ShiftVal): Remove.
+ (ShiftLeft): Ditto.
+ (ShiftRight): Ditto.
+ (RotateVal): Ditto.
+ (RotateLeft): Ditto.
+ (RotateRight): Ditto.
+ * gm2-libs-coroutines/SYSTEM.mod: Reimplement.
+ * gm2-libs-iso/SYSTEM.def (ShiftVal): Remove.
+ (ShiftLeft): Ditto.
+ (ShiftRight): Ditto.
+ (RotateVal): Ditto.
+ (RotateLeft): Ditto.
+ (RotateRight): Ditto.
+ * gm2-libs-iso/SYSTEM.mod: Reimplement.
+ * gm2-libs/SYSTEM.def (ShiftVal): Remove.
+ (ShiftLeft): Ditto.
+ (ShiftRight): Ditto.
+ (RotateVal): Ditto.
+ (RotateLeft): Ditto.
+ (RotateRight): Ditto.
+ * gm2-libs/SYSTEM.mod: Reimplement.
+ * gm2-libs/SysStorage.def (DEALLOCATE): Improve comment.
+ * gm2-libs/SysStorage.mod: Improve comment.
+ * init/ppginit (M2Diagnostic): Add.
+ (StringConvert): Add.
+ * lang.opt (fmem-report): Add access to c.opt.
+ (ftime-report): Ditto.
+ (fwideset): New option.
+ * pge-boot/main.cc (_M2_M2Diagnostic_init): New function.
+ (_M2_M2Diagnostic_fini): Ditto.
+ (_M2_StringConvert_init): Ditto.
+ (_M2_StringConvert_fini): Ditto.
+ (main): Call _M2_M2Diagnostic_init.
+ Call _M2_StringConvert_init.
+ Call _M2_M2Diagnostic_fini.
+ Call _M2_StringConvert_fini.
+ * tools-src/makeSystem: Add -gdb option.
+ * gm2-libs/M2Diagnostic.def: New file.
+ * gm2-libs/M2Diagnostic.mod: New file.
+ * gm2-libs/M2WIDESET.def: New file.
+ * gm2-libs/M2WIDESET.mod: New file.
+ * mc-boot/GM2Diagnostic.cc: New file.
+ * mc-boot/GM2Diagnostic.h: New file.
+ * pge-boot/GM2Diagnostic.cc: New file.
+ * pge-boot/GM2Diagnostic.h: New file.
+ * pge-boot/GSelective.h: New file.
+ * pge-boot/GStringConvert.cc: New file.
+
2025-08-29 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/121709
+2025-09-19 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/83746
+ * gfortran.dg/pdt_48.f03: New test.
+
+2025-09-19 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2/errors/fail/testbit2.mod: Rewrite.
+ * gm2/iso/run/pass/shift4.mod: Rewrite adding more internal
+ tests.
+ * gm2/iso/run/pass/testsystem.mod (FindFirstElement): Add
+ bounds check.
+ * gm2/sets/run/pass/multisetrotate4.mod: Add more runtime
+ error messages.
+ * gm2/sets/run/pass/simplepacked.mod (testpset): Correct
+ setname.
+ * lib/gm2.exp (gm2_init_minx): Add -fno-wideset.
+ * gm2/iso/run/pass/assigncons.mod: New test.
+ * gm2/iso/run/pass/constructor3.mod: New test.
+ * gm2/iso/run/pass/proc_test.mod: New test.
+ * gm2/iso/run/pass/simplelarge2.mod: New test.
+ * gm2/iso/run/pass/simplelarge3.mod: New test.
+ * gm2/iso/run/pass/simplelarge4.mod: New test.
+ * gm2/pimlib/wideset/run/pass/bitset.mod: New test.
+ * gm2/pimlib/wideset/run/pass/bitset2.mod: New test.
+ * gm2/pimlib/wideset/run/pass/colorset.mod: New test.
+ * gm2/pimlib/wideset/run/pass/colorset2.mod: New test.
+ * gm2/pimlib/wideset/run/pass/colorset3.mod: New test.
+ * gm2/pimlib/wideset/run/pass/highbit.mod: New test.
+ * gm2/pimlib/wideset/run/pass/highbit2.mod: New test.
+ * gm2/sets/run/pass/multisetrotate5.mod: New test.
+ * gm2/sets/run/pass/setcard.mod: New test.
+ * gm2/sets/run/pass/setincl.mod: New test.
+
+2025-09-19 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/121983
+ * gcc.target/riscv/pr121983.c: New test.
+
+2025-09-19 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
+
+ * gcc.target/riscv/rvv/autovec/shuffle-slide-run.h:
+ New test.
+ * gcc.target/riscv/rvv/autovec/shuffle-slidedown-run.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/shuffle-slideup-run.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.h:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-1.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-2.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-perm.h:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-1.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-2.c:
+ Likewise.
+ * gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-perm.h:
+ Likewise.
+
+2025-09-19 Jim Lin <jim@andestech.com>
+
+ * gcc.target/riscv/save-restore-cfi-3.c: New test.
+ * gcc.target/riscv/pr120811.c: New file.
+
+2025-09-19 Jeff Law <jlaw@ventanamicro.com>
+
+ * gcc.target/riscv/bclr-lowest-set-bit-1.c: New test.
+
2025-09-18 Joseph Myers <josmyers@redhat.com>
* gcc.dg/c2y-anon-init-1.c, gcc.dg/c2y-incomplete-2.c:
+2025-09-19 Jim Lin <jim@andestech.com>
+
+ * config/riscv/save-restore.S: Only save/restore the registers
+ which are really used for ILP32E/LP64.
+
2025-08-21 Dimitar Dimitrov <dimitar@dinux.eu>
* config/pru/libgcc-eabi.ver: Add __pruabi_softmpyi and
+2025-09-19 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * libm2pim/Makefile.am (M2MODS): Add M2Diagnostic.mod.
+ Add M2WIDESET.mod.
+ (M2DEFS): Add M2Diagnostic.def.
+ Add M2WIDESET.def.
+ * libm2pim/Makefile.in: Regenerate.
+
2025-07-23 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/121164
+2025-09-19 Nathan Myers <ncm@cantrip.org>
+
+ PR libstdc++/119744
+ * include/bits/version.def: Redefine __cpp_lib_bind_front etc.
+ * include/bits/version.h: Ditto.
+ * include/std/functional: Add new bind_front etc. overloads
+ * testsuite/20_util/function_objects/bind_back/1.cc:
+ Check plumbing better
+ * testsuite/20_util/function_objects/bind_back/nttp.cc: New test.
+ * testsuite/20_util/function_objects/bind_back/nttp_neg.cc: New test.
+ * testsuite/20_util/function_objects/bind_front/1.cc:
+ Check plumbing better
+ * testsuite/20_util/function_objects/bind_front/nttp.cc: New test.
+ * testsuite/20_util/function_objects/bind_front/nttp_neg.cc: New test.
+ * testsuite/20_util/function_objects/not_fn/nttp.cc: New test.
+ * testsuite/20_util/function_objects/not_fn/nttp_neg.cc: New test.
+ * testsuite/20_util/headers/functional/synopsis.cc: New decls.
+
+2025-09-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/chrono_io.h: Remove unused <iomanip> header.
+ (operator<<): Constrain overload for chrono::local_time.
+ * testsuite/std/time/clock/local/io.cc: Check constraints.
+
+2025-09-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/version.def (start_lifetime_as): Move adjacent to
+ other C++23 macros.
+ * include/bits/version.h: Regenerate.
+
2025-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/106658