diff options
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r-- | gcc/ada/ChangeLog | 2212 |
1 files changed, 2212 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 128ea05..8aaa006 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,2215 @@ +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/120705 + * exp_ch6.adb (Needs_BIP_Collection): Always return False if the + type has relaxed finalization. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valuef.adb (Integer_to_Fixed): Restore rounding of the + first scaled divide operation. + +2025-07-01 Piotr Trojanek <trojanek@adacore.com> + + * gnat1drv.adb (Gnat1drv): Do minimal decoration of the spec and body + of an ignored ghost compilation unit. + +2025-07-01 Piotr Trojanek <trojanek@adacore.com> + + * ali.ads (Unit_Record): Fix grammar in comment. + * bindgen.adb (Num_Elab_Calls, Num_Primary_Stacks): Remove counters + that were only incremented and never actually used. + +2025-07-01 Tonu Naks <naks@adacore.com> + + * libgnat/s-valuer.adb (Scan_Decimal_Digits, + Scan_Integral_Digits): fix condition for rejecting + underscore. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valued.adb (Integer_To_Decimal): Deal specifically with + Val = 2**(Int'Size - 1) if Minus is not set. Exit the loops when V + saturates to 0 in the case of (huge) negative exponents. Use Base + instead of B consistently in unsigned computations. + * libgnat/s-valuef.adb (Integer_To_Fixed): Use Base instead of B + consistently in unsigned computations. + +2025-07-01 Piotr Trojanek <trojanek@adacore.com> + + * exp_ch4.adb (Fixup_Universal_Fixed_Operation): Move to spec. + * exp_ch4.ads (Fixup_Universal_Fixed_Operation): Move from body. + * exp_spark.adb (Expand_SPARK): Call a fixup expansion routine. + +2025-07-01 Gary Dismukes <dismukes@adacore.com> + + * exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Test not Has_Relaxed_Finalization + as a guard against retrieving BIP_Collection formal (and related code). + +2025-07-01 Javier Miranda <miranda@adacore.com> + + * exp_ch3.adb (Build_Untagged_Record_Equality): Report the + warning when no component of an untagged record type U is a + record type, and the type C of some of its components has + defined its user-defined equality operator "=". + * exp_ch4.adb (Expand_Composite_Equality): Report the warning + calling Warn_On_Ignored_Equality_Operator. + * sem_warn.ads (Warn_On_Ignored_Equality_Operator): New subprogram. + * sem_warn.adb (Warn_On_Ignored_Equality_Operator): Factorize code + reporting the warning. + +2025-07-01 Tonu Naks <naks@adacore.com> + + * libgnat/a-ngelfu.adb: conditional computation of X^2 + +2025-07-01 Steve Baird <baird@adacore.com> + + * Makefile.rtl: Add entry for new unit's object file. + * libgnat/s-casuti.adb: Remove bodies of subprograms that were moved + to the new unit. + * libgnat/s-casuti.ads: Replace (with renamings) declarations for + subprograms that moved to the new unit. + * libgnat/s-cautns.adb: Body for new unit (a new source file). + * libgnat/s-cautns.ads: Spec for new unit (a new source file). + * libgnat/s-valuti.adb: Use the new unit instead of the old one. + * gcc-interface/Make-lang.in: Add entries for new unit's object file. + * gcc-interface/Makefile.in: Likewise. + +2025-07-01 Gary Dismukes <dismukes@adacore.com> + + * sem_ch3.adb (Constrain_Corresponding_Record): Inherit Class_Wide_Type on the + created constrained subtype. + +2025-07-01 Artur Pietrek <pietrek@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: add + GNAT LLVM explicit selection in GPR file + * gnat_ugn.texi: Regenerate. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Shift_Address_For_Descriptor): Add dummy variable + to make sure that System_Storage_Elements is loaded. + +2025-07-01 Ronan Desplanques <desplanques@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst: Document new extension. + * gen_il-fields.ads (Opt_Field_Enum): Add new fields. + * gen_il-types.ads (N_Loop_Flow_Statement, N_Continue_Statement): New + node kinds. + * gen_il-gen-gen_nodes.adb (N_Loop_Flow_Statement): New abstract node + kind. + (N_Continue_Statement): New node kind. + (N_Exit_Statement): Reparent below N_Loop_Flow_Statement. + * sinfo.ads (N_Continue_Statement): Add description. + * sinfo-utils.ads (Loop_Flow_Keyword): New function. + * sinfo-utils.adb (Loop_Flow_Keyword): New function. + * gen_il-gen-gen_entities.adb (E_Loop): Add new field. + * einfo.ads (Continue_Mark): Document new field. + * sprint.adb (Sprint_Node_Actual): Update for new node kind. + * snames.ads-tmpl: Add new keyword. + * par-ch5.adb (P_Continue_Statement, Parse_Loop_Flow_Statement): New + functions. + (P_Sequence_Of_Statements): Handle continue statements. + (P_Exit_Statement): Use Parse_Loop_Flow_Statement. + * sem.adb (Analyze): Handle new node kind. + * sem_ch5.adb (Analyze_Loop_Flow_Statement): New function. + (Analyze_Continue_Statement): New procedure. + (Analyze_Exit_Statement): Use new Analyze_Loop_Flow_Statement function. + * sem_ch5.ads (Analyze_Continue_Statement): New procedure. + * expander.adb (Expand): Handle new node kind. + * exp_ch5.ads (Expand_N_Continue_Statement): New procedure. + * exp_ch5.adb (Expand_Loop_Flow_Statement): New procedure. + (Expand_N_Continue_Statement): New procedure. + (Expand_N_Exit_Statement): Use new Expand_Loop_Flow_Statement + procedure. + (Build_Formal_Container_Iteration): Always reuse original loop entity. + * gnat_rm.texi: Regenerate. + +2025-07-01 Bob Duff <duff@adacore.com> + + * repinfo.adb (List_Entities): + Disable output in case of object renamings. + +2025-07-01 Aleksandra Pasek <pasek@adacore.com> + + * libgnat/s-valuen.ads: Correct comment. + +2025-07-01 Alexandre Oliva <oliva@adacore.com> + + * init.c: Include string.h. + +2025-07-01 Tonu Naks <naks@adacore.com> + + * doc/gnat_rm.rst: remove ref to 2012 chapter + * doc/gnat_rm/about_this_guide.rst: remove ref to 2012 chapter + * doc/gnat_rm/compatibility_and_porting_guide.rst: update list of + supported versions + * doc/gnat_rm/implementation_of_ada_2012_features.rst: delete + * doc/gnat_rm/specialized_needs_annexes.rst: update list of + supported versions + * gnat_rm.texi: Regenerate. + +2025-07-01 Tonu Naks <naks@adacore.com> + + * doc/gnat_rm/implementation_advice.rst: remove GLADE + * doc/gnat_rm/implementation_defined_characteristics.rst: remove GLADE + * doc/gnat_rm/specialized_needs_annexes.rst: remove GLADE + * doc/gnat_rm/the_gnat_library.rst: remove GLADE + * gnat_rm.texi: Regenerate. + +2025-07-01 Alexandre Oliva <oliva@adacore.com> + + * adaint.c [__vxworks] (alloca): Redirect to builtin. + +2025-07-01 Ghjuvan Lacambre <lacambre@adacore.com> + + * freeze.adb (Freeze_Record_Type): Check for CodePeer_Mode. + +2025-07-01 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move aspects when + instantiating subprogram as a library unit. + +2025-07-01 Ronan Desplanques <desplanques@adacore.com> + + * exp_ch5.adb (Expand_N_Loop_Statement): Remove useless subexpressions. + +2025-07-01 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst: Add the + documentation about benefits of using sanitizers in + mixed-language applications. + * gnat_ugn.texi: Regenerate. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * atree.ads (Compile_Time_Pragma_Warnings): Removed. + * errout.adb (Initialize): Remove initialization for + Compile_Time_Pragma_Warnings. + (Error_Msg_Internal): Use Warning_As_Error_Kind in the + Error_Msg_Object. Set its value based on the reason the + warning was changed to an error. + (Write_JSON_Span): Adjust the code for Warn_Err. + (Output_Messages): Update the calculation for actual warnings + and errors by just using Warnings_Treated_As_Errors. + (Set_Msg_Text): Simply mark that we are dealing with a + run time message here. Move the code for the Warning_Mode to + Error_Msg_Internal. + * erroutc-pretty_emitter.adb (Write_Error_Msg_Line): Adjust the code + for Warn_Err. Use the Warn_As_Err_Tag token. + * erroutc.adb (Compilation_Errors): Simplify the implementation so + that it only checks for errors and warnings treated as errors. + (Decrease_Error_Msg_Count): Remove the count for + Compile_Time_Pragma_Warnings. + (dmsg): Adjust the code for changes to Warn_Err. + (Increase_Error_Msg_Count): Likewise and remove the count for + Compile_Time_Pragma_Warnings. + (Output_Msg_Text): Warnings converted to error by the + Warning_As_Error pragma and -gnatwE now use the error prefix + in their messages but only warnings changed by the pragma get + the [warning-as-error] tag. + (Output_Text_Within): Adjust the variable name for + Is_Runtime_Raise_Msg. + (Write_Error_Summary): Adjust printing of warnings so that it + just uses the counts for Warnings_Detected and + Warnings_Treated_As_Errors. + * erroutc.ads (Is_Runtime_Raise): renamed to Is_Runtime_Raise_Msg. + (Warning_As_Error_Kind): New type for marking the warning message + is treated as an error which also captures the reason for the + change. Historically each of the reasons will have a different way + of displaying the warning message. + (Error_Msg_Object.Warn_Err): Change type to Warning_As_Error_Kind. + (Kind_To_String): Warnings treated as errors originating from + the pragma or -gnatwE will return error where as warnings + originating from -gnatwe will return warning. + (Compilation_Errors): Update the documentation. + (Warn_As_Err_Tag): Constant string to be used when printing warnings + as errors. + * errutil.adb (Error_Msg): Adjust the code for Warn_Err. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Shift_Address_For_Descriptor): New function. + (Make_Address_For_Finalize): Call above function. + (Make_Finalize_Address_Stmts): Likewise. + * exp_util.ads (Is_Constr_Array_Subt_Of_Unc_With_Controlled): New + predicate. + * exp_util.adb (Is_Constr_Array_Subt_Of_Unc_With_Controlled): Ditto. + (Remove_Side_Effects): Call above predicate. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise. + * sem_ch4.adb (Analyze_Allocator): Allocate the bounds by setting + Is_Constr_Array_Subt_With_Bounds when appropriate. + +2025-07-01 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb (Try_Object_Operation): Handle mutably tagged + class-wide type prefix. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * errout.adb (Error_Msg_Internal): Use the new + Warning_Treated_As_Error function. + * erroutc.adb (Get_Warning_Option): Add new version of this + function that operates on the Error_Msg_Object directly instead + of the Error_Id. Update the existing function to call the new + version interanlly. + (Get_Warning_Tag): Likewise. + (Warning_Treated_As_Error): Add a new method that combines the + checks for the error message itself and its tag. + * erroutc.ads (Get_Warning_Option): Add new spec. + (Get_Warning_Option): Likewise. + (Get_Warning_Option): Likewise. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * atree.ads: Add Compile_Time_Pragma_Warnings for counting + compile time warnings. + * errout.adb (Initialize): Initialize Compile_Time_Pragma_Warnings. + (Output_Messages): Use Compile_Time_Pragma_Warnings instead of + Count_Compile_Time_Pragma_Warnings. + * erroutc.adb (Compilation_Errors): Likewise. + (Count_Compile_Time_Pragma_Warnings): Removed. + (Decrease_Error_Msg_Count): Update Compile_Time_Pragma_Warnings. + (Increase_Error_Msg_Count): Likewise. + (Write_Error_Summary): Use Compile_Time_Pragma_Warnings instead of + Count_Compile_Time_Pragma_Warnings. + * erroutc.ads (Count_Compile_Time_Pragma_Warnings): Removed. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * errout.adb (Delete_Warning_And_Continuations): Use + Decrease_Error_Msg_Count to update the message counts. + (Delete_Warning): Likewise. + (To_Be_Removed): Likewise. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * errout.adb (Remove_Warning_Messages): Mark removed messages as + deleted. + * erroutc.adb (Purge_Messages): Likewise. + +2025-07-01 Martin Clochard <clochard@adacore.com> + + * frontend.adb (Frontend): do not override GNATprove's setting for + Warn_On_Non_Local_Exception + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch4.adb (Analyze_Allocator): Do not set Etype to itself. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Finalize_Address): Do not go to the root type for + array types. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valuer.ads (System.Value_R): Remove Round parameter. + (Scan_Raw_Real): Replace Extra with Extra2 and adjust the comment. + (Value_Raw_Real): Likewise. + * libgnat/s-valuer.adb (Round_Extra): Delete. + (Scan_Decimal_Digits): Replace Extra with Extra2 and adjust the + implementation. + (Scan_Integral_Digits): Replace Extra with Extra2 and Extra_Rounded + with Extra2_Filled and adjust the implementation. + (Scan_Raw_Real): Replace Extra with Extra2 and adjust the + implementation. + (Value_Raw_Real): Likewise. + * libgnat/s-valrea.adb (Impl): Remove actual for Round formal. + * libgnat/s-valued.adb (Impl): Likewise. + (Integer_to_Decimal): Replace Extra with Extra2 and adjust the + implementation. Rename Unsigned_To_Signed to To_Signed. + (Scan_Decimal): Replace Extra with Extra2 and adjust the + implementation. + (Value_Decimal): Likewise. + * libgnat/s-valuef.adb (Impl): Remove actual for Round formal. + (Integer_to_Fixed): Replace Extra with Extra2 and adjust the + implementation. Rename Unsigned_To_Signed to To_Signed. Only + round the last scaled divide operation. + (Scan_Fixed): Replace Extra with Extra2 and adjust the + implementation. + (Value_Fixed): Likewise. + +2025-07-01 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/s-valuer.adb (Scan_Decimal_Digits, Scan_Integral_Digits): + Minor rephrasing. + +2025-07-01 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set ekind + earlier. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.ads (Is_Finalizable_Access): New predicate. + (Is_Non_BIP_Func_Call): Delete. + (Is_Secondary_Stack_BIP_Func_Call): Likewise. + * exp_util.adb (Is_Finalizable_Access): New predicate. + (Initialized_By_Aliased_BIP_Func_Call): Delete. + (Initialized_By_Reference): Likewise. + (Is_Aliased): Only consider the nontransient object serviced by + the transient scope. + (Is_Part_Of_BIP_Return_Statement): Minor tweak. + (Is_Finalizable_Transient): Remove calls to Initialized_By_Reference + and Initialized_By_Aliased_BIP_Func_Call. + Call Is_Finalizable_Access for access objects. + (Is_Non_BIP_Func_Call): Delete. + (Is_Secondary_Stack_BIP_Func_Call): Likewise. + (Requires_Cleanup_Actions): Call Is_Finalizable_Access for access + objects. + (Side_Effect_Free): Return True for N_Reference. + * exp_ch7.adb (Build_Finalizer.Process_Declarations): Call + Is_Finalizable_Access for access objects. + +2025-07-01 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Is_Expression_Of_Func_Return): New predicate. + (Is_Related_To_Func_Return): Call Is_Expression_Of_Func_Return. + (Remove_Side_Effects): Generate a temporary for a function call + that returns a constrained array type with controlled component + and an unconstrained first subtype. + +2025-07-01 Piotr Trojanek <trojanek@adacore.com> + + * inline.adb (Rewrite_Procedure_Call): Replace with a simple rewriting + of procedure call into a single block node, i.e. remove broken + optimization. + * sem_util.adb (Next_Actual): Adapt GNATprove-specific code that peeks + into inlined calls. + +2025-07-01 Martin Clochard <clochard@adacore.com> + + * exp_util.adb (Is_Controlling_Formal_Ref): test scope against + derived subprogram as well. + +2025-07-01 Viljar Indus <indus@adacore.com> + + * errout.adb (Error_Msg_Internal): Relocate Warn_As_Err propagation + to Increase_Error_Msg_Counti. + (Delete_Warning_And_Continuations): Update + Warnings_Treated_As_Errors count. + (Delete_Warning): Likewise. + (To_Be_Removed): Likewise. + * erroutc.adb (Increase_Error_Msg_Count): Count warnings treated + as errors here and perform the propagation of this property to + the parent message. + (Output_Msg_Text): Remove counting of warnings as errors from + here. + (Decrease_Error_Msg_Count): Update Warnings_Treated_As_Errors + count. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/120106 + * Make-generated.in (GNATMAKE_FOR_BUILD): Define. + +2025-06-30 Viljar Indus <indus@adacore.com> + + * comperr.adb (Compiler_Abort): Pass the exit code in calls to + Output_Messages. + * errout.adb (Output_Messages): Add new parameter for the + Exit_Code and store its value. + * errout.ads (Output_Messages): Likewise. + * erroutc-sarif_emitter.adb (Print_Invocations): Set + Execution_Successful based on the exit code. + * erroutc.ads (Exit_Code): Store the exit code value. + * gnat1drv.adb (Gnat1drv): Pass the exit code in calls to + Output_Messages. + * prepcomp.adb (Parse_Preprocessing_Data_File, Prpare_To_Preprocess): + Likewise. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * gen_il-gen-gen_entities.adb (Gen_Entities): Tweak Has_Exit. + +2025-06-30 Bob Duff <duff@adacore.com> + + * exp_attr.adb (Attribute_Max_Size_In_Storage_Elements): + Return Storage_Count'Last converted to universal_integer. + +2025-06-30 Tonu Naks <naks@adacore.com> + + * doc/gnat_rm.rst: add entry point for the new chapter + * doc/gnat_rm/about_this_guide.rst: add reference to the new + chapter + * doc/gnat_rm/implementation_of_ada_2022_features.rst: new file + * doc/gnat_rm/implementation_of_ada_2012_features.rst: update + explanation about RM references + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * par-util.adb (Check_Future_Keyword): Use Snames subtypes. Extend + comment. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch5.adb (Analyze_Loop_Statement): Remove obsolete comment. + +2025-06-30 Bob Duff <duff@adacore.com> + + * sem_warn.adb (Warn_On_Useless_Assignments): + Enable Warn_On_Useless_Assignment in the case of + Warn_On_All_Unread_Out_Parameters. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Analyze_Subtype_Declaration): Remove uses of E_Void. + (Copy_Parent_Attributes): New procedure. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * cstand.adb (Make_Aliased_Component, Make_Formal, New_Operator, + Create_Standard): Remove useless calls. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valuer.adb (Scan_Decimal_Digits): Also pretend that the + precision limit was just reached if it was already reached. + (Scan_Integral_Digits): Add Extra_Rounded out parameter, set it to + False on entry and to True when Extra is rounded. + (Scan_Raw_Real): New Extra_Rounded local variable. Pass it in the + calls to Scan_Integral_Digits. If it is True, pass a dummy extra + digit to Scan_Decimal_Digits. + +2025-06-30 Claire Dross <dross@adacore.com> + + * libgnat/a-strsup.ads: Ignore Ghost_Predicate in the assertion policy. + +2025-06-30 Javier Miranda <miranda@adacore.com> + + * sem_aggr.adb (Resolve_Record_Aggregate): Adjust the code to + handle mutably tagged class-wide types since they don't have + discriminants, but all class-wide types are considered to have + unknown discriminants. Initialize mutably tagged class-wide + type components calling their IP subprogram. + * exp_aggr.adb (Gen_Assign): Handle mutably tagged class-wide type + components that have an initializing qualified expression, and + mutably tagged class-wide components default initialization. + (Gen_Loop): Handle mutably tagged class-wide types. + (Gen_Assign): ditto. + (Build_Record_Aggr_Code): Default initialization of mutably tagged + class-wide types is performed by their IP subprogram. + * exp_ch3.adb (Init_Component): Generate code to raise Program_Error + in the IP subprogram of arrays when the type of their components is + a mutably tagged abstract class-wide type. + (Build_Init_Procedure): ditto for the init procedure of record types. + (Build_Init_Statements): Ensure that the type of the expression + initializing a mutably class-wide tagged type component is frozen. + (Requires_Init_Proc): Mutably tagged class-wide types require the + init-proc since it takes care of their default initialization. + * sem_util.adb (Needs_Simple_Initialization): Mutably tagged class-wide + types don't require simple initialization. + * types.ads (PE_Abstract_Type_Component): New reason for Program_Error. + * types.h (PE_Abstract_Type_Component): ditto. + * exp_ch11.adb (Get_RT_Exception_Name): Handle new reason for + Program_Error. + * libgnat/a-except.adb (Rcheck_PE_Abstract_Type_Component): New + subprogram. + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (Get_Enclosing_Object, Get_Enum_Lit_From_Pos, + Is_Universal_Numeric_Type): Reorder declarations. + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Get_Enclosing_Object): Traverse unchecked type + conversions since they from the compiler and should be transparent for + semantic reasoning. + +2025-06-30 Steve Baird <baird@adacore.com> + + * einfo-utils.adb (Predicate_Function): Look through an Itype if + that takes us to another subtype of the same type. + +2025-06-30 Gary Dismukes <dismukes@adacore.com> + + * exp_util.adb (Must_Map_Call_To_Parent_Primitive): Change function + name (was Call_To_Parent_Dispatching_Op_Must_Be_Mapped). Move logic + for attributes and dereferences, plus testing for controlled formals, + into new function Expr_Has_Ctrl_Formal_Ref. Add handling for + access attributes, multiple levels of attributes/dereferences, + conditional_expressions, and declare_expressions. Properly account + for function calls with multiple operands and enclosing calls. + (Expr_Has_Ctrl_Formal_Ref): New function to determine whether + an expression is a reference to a controlling formal or has + a prefix that is such a reference. + (Is_Controlling_Formal_Ref): New function in Expr_Has_Ctrl_Formal_Ref + to determine if a node is a direct reference to a controlling formal. + * freeze.adb (Build_DTW_Body): Create an unchecked conversion instead + of a regular type conversion for converting actuals in calls to parent + inherited primitives that are wrapped for inherited pre/postconditions. + Avoids generating unnecessary checks (such as accessibility checks on + conversions for anonymous access formals). + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.ads (Get_Enclosing_Ghost_Entity): Rename spec. + * sem_util.adb (Get_Enclosing_Ghost_Object): Rename body; reorder + alphabetically; adapt recursive call. + * ghost.adb: Adapt calls to Get_Enclosing_Ghost_Object. + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * ghost.adb (Ghost_Entity): Remove; use Get_Enclosing_Ghost_Object + instead; adapt callers. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * sem_prag.adb (Analyze_Pragma) <Pragma_No_Component_Reordering>: + Call Find_Type on the first argument of the pragma. + +2025-06-30 Tonu Naks <naks@adacore.com> + + * gnatls.adb: remove -l switch + +2025-06-30 Steve Baird <baird@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst: Update documentation for + mutably tagged types and the Size'Class aspect. + * gnat_rm.texi: Regenerate. + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * ghost.adb + (Whole_Object_Ref): Remove; use Get_Enclosing_Ghost_Object instead. + (Is_Ghost_Assignment): Handle more than object identifiers. + (Mark_And_Set_Ghost_Assignment): Likewise. + * sem_util.adb (Get_Enclosing_Ghost_Object): Detect more expressions + as ghost references; rename to better match the intended meaning. + * sem_util.ads (Get_Enclosing_Ghost_Object): Rename; adjust comment. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Backend_Processing_Possible.Component_Check): Return + False for delayed conditional expressions. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.ads (Parent_Is_Regular_Aggregate): New predicate. + * exp_aggr.adb (In_Place_Assign_OK.Safe_Component): Implement more + accurate criterion for function calls. + (Convert_To_Assignments): Use Parent_Is_Regular_Aggregate predicate. + (Expand_Array_Aggregate): Likewise. Remove obsolete comment. + (Initialize_Component): Do not adjust when the expression is a naked + function call and Back_End_Return_Slot is True. + (Parent_Is_Regular_Aggregate): New predicate. + * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Add test of + Back_End_Return_Slot in conjunction with a function call. + * exp_ch4.adb (Expand_Allocator_Expression): Likewise. Use the + Is_Container_Aggregate predicate to detect container aggregates. + (Expand_N_Case_Expression): Delay the expansion if the parent is a + regular aggregate and the type should not be copied. + (Expand_N_If_Expression): Likewise. + (New_Assign_Copy): New function. + * exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out when the parent + is a regular aggregate. + * sem_util.adb (Check_Function_Writable_Actuals): Do not take into + account attribute references created by the compiler. + +2025-06-30 Alexandre Oliva <oliva@adacore.com> + + * socket.c [__vxworks] + (__gnat_gethostbyname): Drop excess '&'. + (__gnat_gethostbyaddr): Likewise. + +2025-06-30 Alexandre Oliva <oliva@adacore.com> + + * adaint.c [__vxworks]: Include ctype.h. + +2025-06-30 Steve Baird <baird@adacore.com> + + * exp_put_image.adb (Build_Record_Put_Image_Procedure): If + Discriminant_Specifications takes us from the full view of a type + to an (intentionally) unanalyzed subtree, then instead find + discriminant entities by calling Discriminant_Specifications on + the partial view of the type. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch6.adb (Check_Delayed_Subprogram, Possible_Freeze): Restrict + cases where freezing is delayed. + * sem_ch6.ads (Check_Delayed_Subprogram): Improve documentation + comment. + * sprint.adb (Write_Itype): Improve output. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valrea.adb (Integer_to_Real): Rename to... + (Integer_To_Real): ...this. Remove the second condition of the + conjunction in the test for the zero value. + (Scan_Real): Adjust to above renaming. + (Value_Real): Likewise. + * libgnat/s-valuer.ads (Scan_Raw_Real): Add note about Val. + +2025-06-30 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst: Fix a + couple of minor formatting issues. + * gnat_ugn.texi: Regenerate. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * treepr.ads (Print_Entity_Chain, pec, rpec): New subprograms. + * treepr.adb (Print_Entity_Chain, pec, rpec): Likewise. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads (Parent_Or_List_Containing): Fix typo. + +2025-06-30 Ronan Desplanques <desplanques@adacore.com> + + * treepr.adb (Print_Node): Tweak Parent field printing. + +2025-06-30 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst: Add the + documentation about using sanitizers with Ada code. + * gnat_ugn.texi: Regenerate. + +2025-06-30 Jose Ruiz <ruiz@adacore.com> + + * doc/gnat_ugn/gnat_and_program_execution.rst: Add the + documentation about using sanitizers with Ada code. + * gnat_ugn.texi: Regenerate. + +2025-06-30 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Get_Enclosing_Object): Remove dead code. + +2025-06-30 Steve Baird <baird@adacore.com> + + * einfo-utils.adb (Predicate_Function): Improve handling of a case + where a predicate specified for a subtype of a partial view of a + type was incorrectly ignored. + (Set_Predicate_Function): If the attribute has already been set to + the same value, then do nothing (instead of raising P_E). + * sem_ch13.adb (Build_Predicate_Function): Add new function + Has_Source_Predicate. If a subtype inherits a predicate but also + has its own explicitly specified predicate, then avoid + misinterpreting the presence of the function built for the + inherited predicate to mean that no additional predicate function + is needed. + * sem_util.adb (Build_Subtype): In the case where we are given a + constrained record or array subtype and we need to construct a + different subtype, subject to a different constraint, the + subtype_mark of the constructed subtype needs to reference an + unconstrained subtype (because a new constraint is going to be + imposed). If the Predicated_Parent attribute of the given subtype + is present and refers to a suitable unconstrained subtype, then + use that subtype instead of setting the Predicated_Parent + attribute on a new node (and performing the associated attribute + copying). + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch7.adb (Process_Transient_In_Scope): Bail out if the object + is an ignored ghost entity. + +2025-06-30 Eric Botcazou <ebotcazou@adacore.com> + + * exp_util.adb (Insert_Actions): Extend special treatment applied + to freeze nodes to the case of blocks generated for aggregates. + +2025-06-30 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/s-valuer.adb: Switch missing if-statements to + short-circuit form. + * libgnat/i-cpoint.adb: Ditto. + +2025-06-28 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/120854 + * sem_eval.adb (Get_String_Val): Be prepared for an integer literal + after a serious error is detected, and raise PE on other nodes. + +2025-06-26 David Malcolm <dmalcolm@redhat.com> + + * gcc-interface/misc.cc (gnat_init): Use + diagnostic_context::set_internal_error_callback. + +2025-06-22 Nicolas Boulenguez <nicolas@debian.org> + + PR ada/120106 + * gcc-interface/Make-lang.in: Set GNAT{MAKE,BIND,LINK_LS}_FOR_HOST + from GNAT{MAKE,BIND} instead of using hardcoded commands. + +2025-06-22 Eric Botcazou <ebotcazou@adacore.com> + + * Make-generated.in: Remove obsolete stuff. + +2025-06-22 Nicolas Boulenguez <nicolas@debian.org> + + PR ada/120106 + PR ada/120106 + * Make-generated.in: Use GNATMAKE_FOR_BUILD instead of gnatmake. + * gcc-interface/Makefile.in: Likewise. + +2025-06-17 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/120665 + * sem_aggr.adb (Resolve_Container_Aggregate): Use robust guards. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Generate + a zero-initialization for the anonymous object of a small aggregate + allocated on the stack. + (inline_status_for_subprog): Minor tweak. + +2025-06-12 Tonu Naks <naks@adacore.com> + + * comperr.adb: update support instructions + * switch.adb: update support instructions + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sinfo.ads: Fix RM reference. + +2025-06-12 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch3.adb (Apply_External_Initialization): Reuse local constant. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst + (Generalized Finalization): Document the actual implementation. + (No_Raise): Move to separate section. + * gnat_rm.texi: Regenerate. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/s-valuer.adb (Scan_Raw_Real): Apply tweak. + +2025-06-12 Tonu Naks <naks@adacore.com> + + * comperr.adb: replace report@ with support@ + * gnatcmd.adb: replace report@ with support@ + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Build_Derived_Private_Type): Fix test. + (Build_Derived_Record_Type): Adjust error recovery paths. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Has_Homonym): Fix inaccuracy in description. + * sem_ch8.ads (Find_Direct_Name): Remove obsolete description. + * sem_ch12.adb (Analyze_Associations): Rename I_Node parameter + into N and adjust description. + (Analyze_Subprogram_Instantiation): Add missing description. + (Contains_Instance_Of): Fix description. + (Associations): Rename Generic_Actual_Rec into Actual_Rec and + Gen_Assocs_Rec into Match_Rec. + (Analyze_One_Association): Rename I_Node parameter into N. + (Check_Fixed_Point_Warning): Rename Gen_Assocs parameter into + Match. + (Body of Associations): Minor cleanups and tweaks. + (Analyze_Associations): Rename I_Node parameter into N and + adjust implementation. + (Analyze_One_Association): Likewise. + (Analyze_Package_Instantiation): Remove obsolete code and clean up. + (Check_Fixed_Point_Warning): Rename Gen_Assocs parameter into + Match and adjust implementation. + (Freeze_Package_Instance): Simplify condition. + (Get_Unit_Instantiation_Node): Add support for instantiations of + subprograms and stop the loop properly in case of errors. + * sem_util.ads (Add_Global_Declaration): Rename N parameter into + Decl and fix description. + * sem_util.adb (Add_Global_Declaration): Rename N parameter into + Decl and adjust implementation. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/s-valuer.adb (Scan_Raw_Real): Add RM reference. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/s-valuer.adb (Scan_Raw_Real): Remove subexpression. Improve + surrounding comments. + +2025-06-12 Bob Duff <duff@adacore.com> + + * vast.adb: Check basic tree properties. + * atree.adb (Traverse_Field): Minor. + * treepr.adb (Destroy): Minor comment. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valuer.adb (Round_Extra): Use multiplicative test. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * einfo-utils.adb (Set_Convention): Remove obsolete test. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Discriminants): Set Ekind earlier. + * sem_util.adb (Enter_Name): Adjust error processing. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valuef.adb (Integer_To_Fixed): Enable overflow checks. + Deal specifically with Val = 2**(Int'Size - 1) if Minus is not set. + Exit the loop when V saturates to 0 in the case of (huge) negative + exponents. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * exp_util.adb (Insert_Actions): Refine test. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler + switches) <-O>: Fix long line. + * gnat_ugn.texi: Regenerate. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (List of + all switches): Add -gnatRh subswitch. + (Debugging Control): Document -gnatRh subswitch. + * opt.ads (List_Representation_Info_Holes): New boolean variable. + * repinfo.adb: Add with clause for GNAT.Heap_Sort_G. + (List_Common_Type_Info): Relax assertion. + (List_Object_Info): Replace assertion with additional test. + (List_Record_Layout): If -gnatRh is specified, make sure that the + components are ordered by increasing offsets. Output a comment + line giving the number of unused bits if there is a hole between + consecutive components. Streamline the control flow of the loop. + (List_Record_Info): Use the original record type giving the layout + of components, if any, to display the layout of the record. + * switch-c.adb (Scan_Front_End_Switches) <-gnatR>: Add support for + -gnatRh subswitch. + * usage.adb (Usage): Document -gnatRh subswitch. + * gnat_ugn.texi: Regenerate. + +2025-06-12 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/s-secsta.adb (SS_Allocate): Add comment about + conservative alignment padding calculation. + * libgnat/s-secsta__cheri.adb (SS_Allocate): Add comment about + conservative alignment padding calculation. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_warn.adb (Check_References): Rewrite expression + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Constrain_Index, Make_Index, Array_Type_Declaration, + Analyze_Number_Declaration): Remove uses of E_Void. + +2025-06-12 Eric Botcazou <ebotcazou@adacore.com> + + * usage.adb (Usage): Justify the documentation of common switches + like that of other switches. Rework that of the -O switch. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler + switches) <-O>: Rework and document 'z' and 'g' operands. + * doc/gnat_ugn/gnat_and_program_execution.rst (Optimization Levels): + Rework and document -Oz and -Og switches. + * gnat_ugn.texi: Regenerate. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Constrain_Index): Avoid unused itypes. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Constrain_Index): Factorize return statement. + +2025-06-12 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Build_Derived_Numeric_Type): Remove duplicate call. + +2025-06-10 Piotr Trojanek <trojanek@adacore.com> + + * gen_il-gen-gen_entities.adb (Formal_Object_Kind): Remove + Entry_Component field. + +2025-06-10 Piotr Trojanek <trojanek@adacore.com> + + * sem_attr.adb (Resolve_Attribute): Remove redundant guard. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Analyze_Inlined_Bodies): Minor comment tweak. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * inline.adb (Instantiate_Body): Do not call Add_Scope_To_Clean if + the main unit is generic. + (Instantiate_Bodies): Do not deal with generic main units here. + * sem_ch12.adb (Need_Subprogram_Instance_Body): Return false if the + main unit is generic. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * Makefile.rtl (ADA_EXCLUDE_SRCS): Add the 128-bit support files. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Factorize code. + +2025-06-10 Bob Duff <duff@adacore.com> + + * einfo.ads (Associated_Node_For_Itype): Document that + Parent field may be empty. + * vast.adb: Allow empty Parent in Itypes. + +2025-06-10 Gary Dismukes <dismukes@adacore.com> + + * einfo.ads: Revise comment about Dynamic_Predicate flag to make it + more accurate. + * sem_case.adb (Check_Choices): Test "not Has_Static_Predicate_Aspect" + as additional guard for error about use of subtype with nonstatic + predicate as a case choice. Improve related error message. + +2025-06-10 Tonu Naks <naks@adacore.com> + + * libgnat/s-valueu.adb: add explict raise + * libgnat/s-valueu.ads: update annotation + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch6.adb, sem_ch6.ads (Check_Discriminant_Conformance): Move to … + * sem_ch3.adb (Check_Discriminant_Conformance): … here. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * freeze.adb (Freeze_Static_Object): Do not issue any error message + for compiler-generated entities. + +2025-06-10 Bob Duff <duff@adacore.com> + + * vast.adb: Implement two checks. Improve debugging + outputs. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Insert_Conditional_Object_Declaration): Deal with a + transient scope being created around the declaration. + * freeze.adb (Freeze_Entity): Do not call Freeze_Static_Object for + a renaming declaration. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-vafi32.ads: Fix head description. + * libgnat/s-vafi64.ads: Likewise. + * libgnat/s-vafi128.ads: Likewise. + +2025-06-10 Bob Duff <duff@adacore.com> + + * vast.adb: Initial implementation. + * vast.ads: Rename procedure. Remove parameter; body should decide + what to do. + * lib.ads (ipu): Minor: Rewrite comment for brevity, and because + of an inconvenient misspelling. + (Num_Units): Not used; remove. + (Remove_Unit): Minor: Remove "Currently" (which was current a decade + ago from) comment. + * lib.adb (Num_Units): Not used; remove. + * debug_a.adb (Debug_A_Entry): Fix bug: Use Write_Name_For_Debug, + so this won't crash on the Error node. + * debug.adb: Document -gnatd_V and -gnatd_W compiler switches. + * exp_ch6.adb (Validate_Subprogram_Calls): Remove redundant check for + Serious_Errors_Detected. (We turn off code gen when errors are + detected.) + * frontend.adb: Move decisions into VAST body. + * namet.ads (Present): Remove unnecessary overriding; these are + inherited by the derived types. + * namet.adb (Present): Likewise. + +2025-06-10 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Apply Enumeration_Pos + to Entity (Expr) rather than Expr. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Find_Type_Of_Object): Fix comment. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Analyze_Component_Declaration): Rename constant. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Constrain_Array): Simplify. + (Process_Subtype): Adjust. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch12.adb (Copy_Generic_Node): Do not call Root_Type to find + the root type of an aggregate of a derived tagged type. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * libgnarl/s-stusta.adb (Compute_All_Tasks): Skip terminated tasks. + +2025-06-10 Viljar Indus <indus@adacore.com> + + * sem_prag.adb (Is_Configuration_Pragma): Check that nodes + preceding the pragma are pragma nodes or originally were + pragma nodes. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-valued.adb (Integer_to_Decimal): Add Extra parameter and + use its value to call Bad_Value on boundary values. + (Scan_Decimal): Adjust call to Integer_to_Decimal. + (Value_Decimal): Likewise. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.ads (Process_Subtype): New formal. + * sem_ch3.adb (Process_Subtype): Likewise. + (Analyze_Subtype_Declaration, Access_Type_Declaration): Use new + formal. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Fix recursive call. + +2025-06-10 Eric Botcazou <ebotcazou@adacore.com> + + * par-ch5.adb (P_Declare_Statement): Rename local variable. + (P_Begin_Statement): Likewise. + +2025-06-10 Piotr Trojanek <trojanek@adacore.com> + + * einfo.ads (Overridden_Operation, Static_Initialization): Remove + comments about a reused entity field. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Tweak formatting. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Add assertion. + +2025-06-10 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Factorize initialization of variable. + +2025-06-09 Gary Dismukes <dismukes@adacore.com> + + * sem_ch3.adb (Constrain_Index): In the case of a fixed-lower-bound index, + set Etype of the newly created itype's Scalar_Range from the index's Etype. + * sem_ch12.adb (Validate_Array_Type_Instance): If the actual subtype is + a fixed-lower-bound type, then check again the Etype of its Scalar_Range. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Fix conditions for legality checks on + formal type declarations. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): If pragmas apply to a formal array + type, then set the flags on the base type. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Process_Subtype): Clarify code. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.ads (Process_Subtype): Add formal. + * sem_ch3.adb (Process_Subtype): Use new formal. + (Analyze_Subtype_Declaration, Array_Type_Declaration, + Build_Derived_Access_Type): Pass new actual. + * sem_ch4.adb (Find_Type_Of_Object): Likewise. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch6.adb (Set_Formal_Mode): Extend profile. Move parts of the + body… + (Process_Formals): … here. Move call to Set_Formal_Mode earlier. Call + Set_Is_Not_Self_Hidden in second traversal. + +2025-06-09 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Expand_Container_Aggregate): Use the Base_Type of the + subtype provided by the context as the subtype of the temporary object + initialized by the aggregate. + +2025-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * par-ch4.adb (P_Function_Name): Delete body. + (P_Qualified_Simple_Name_Resync): Do not raise Error_Resync on an + operator symbol followed by something else than a dot. + * par-ch6.adb (P_Subprogram): Do not call P_Function_Name. + * par.adb (P_Function_Name): Delete declaration. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem.adb (Analyze): Adapt to new Ekinds. + * sem_ch3.adb (Analyze_Component_Declaration): Set Ekind early. + (Is_Visible_Component, Record_Type_Definition): Adjust. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem.adb (Analyze): Fix comment. + +2025-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * par-ch4.adb (P_Name): Remove obsolete references in comments. + (P_Qualified_Simple_Name): Call P_Qualified_Simple_Name_Resync. + (P_Qualified_Simple_Name_Resync): Adjust a couple of comments. + +2025-06-09 Gary Dismukes <dismukes@adacore.com> + + * exp_util.adb (Call_To_Parent_Dispatching_Op_Must_Be_Mapped): Replace + test of Covers with test of Is_Controlling_Formal. Add handling for + 'Result actuals. Remove Actual_Type and its uses. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Is_Name_Reference): Remove check for selector_name of a + selected_component; reuse existing code for indexed components and + slices. + (Statically_Names_Object): Remove dead code. + +2025-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Overlays_Constant): Define in constants and variables. + * gen_il-gen-gen_entities.adb (Entity_Kind): Move Overlays_Constant + semantic flag to... + (Constant_Or_Variable_Kind): ...here. + * sem_util.adb (Note_Possible_Modification): Add guard. + +2025-06-09 Bob Duff <duff@adacore.com> + + * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): + Deal with renamings transformed into object declarations. + * sem_ch8.adb (Analyze_Object_Renaming): + Reinstate transformation of a renaming into + an object declaration. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Call Mutate_Ekind earlier. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Tweak error handling. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * par-ch13.adb (Get_Aspect_Specifications): Save and restore flag while + parsing aspect Abstract_State. + * par-ch2.adb (P_Pragma): Same while parsing pragma Abstract_State. + * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Specialize error message + for contract Abstract_State and extended aggregate. + * par.adb (Inside_Abstract_State): Add new context flag. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch10.adb (Analyze_Compilation_Unit): Check for generic bodies. + * exp_disp.adb (Build_Dispatch_Tables): Likewise. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * sem_util.adb (Find_Overlaid_Entity): Don't call Etype on empty Ent; + tune style; move computation of Overl_Typ out of the loop. + +2025-06-09 Javier Miranda <miranda@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst: Adding + documentation. + * doc/gnat_ugn/the_gnat_compilation_model.rst: ditto. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_attr.adb (Analyze_Attribute): Remove test. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_util.adb (Enter_Name): Remove special handling. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_util.adb (Enter_Name): Remove comment. + +2025-06-09 Bob Duff <duff@adacore.com> + + * exp_ch6.adb: Remove a couple of "???" suggesting something that + we will likely never do. + (Make_Build_In_Place_Call_In_Object_Declaration): + When a constraint check is needed, do the check. + Do it at the call site for now. + The check is still missing in the untagged case, + because the caller allocates in that case. + * sem_ch8.adb (Analyze_Object_Renaming): + Remove obsolete transformation of a renaming into + an object declaration. Given that we also (sometimes) tranform + object declarations into renamings, this transformation was + adding complexity; the new code in + Make_Build_In_Place_Call_In_Object_Declaration above + would need to explicitly avoid the run-time check in the case of + renamings, because renamings are supposed to ignore the nominal + subtype. Anyway, it is no longer needed. + * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite comment; + it IS clear how to do it, but we haven't done it right yet. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads (Copy_Node): Fix comment. + +2025-06-09 Piotr Trojanek <trojanek@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): When expanding attribute + Valid, use signedness from the validated view, not from its base type. + +2025-06-09 Marc Poulhiès <poulhies@adacore.com> + + * sem_util.adb (Find_Overlaid_Entity): Add extra parameter to + extract the type being overlaid. + (Note_Possible_Modification): Adjust call to Find_Overlaid_Entity. + (Ultimate_Overlaid_Entity): Likewise. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise. + * sem_util.ads (Find_Overlaid_Entity): Add extra parameter to + extract the type being overlaid. + * freeze.adb (Check_Address_Clause): Likewise. + +2025-06-09 Gary Dismukes <dismukes@adacore.com> + + * contracts.adb (Inherit_Condition): Remove Assoc_List and its uses + along with function Check_Condition, since mapping of formals will + effectively be done in Build_Class_Wide_Expression (by Replace_Entity). + * exp_util.adb (Replace_Entity): Only rewrite entity references in + function calls that qualify according to the result of calling the + new function Call_To_Parent_Dispatching_Op_Must_Be_Mapped. + (Call_To_Parent_Dispatching_Op_Must_Be_Mapped): New function that + determines whether a function call to a primitive of Par_Subp + associated tagged type needs to be mapped (according to whether + it has any actuals that reference controlling formals of the + primitive). + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch3.adb (Analyze_Object_Declaration): Remove comment. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_util.ads (Current_Entity_In_Scope): Add example in comment. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads (Rewrite, Replace): Clarify comments. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads (Rewrite): Remove comment. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * atree.adb (Rewrite): Improve readability. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_util.adb (Kill_Current_Values): Tweak condition. + +2025-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Insert_Conditional_Object_Declaration): Remove Decl + formal parameter, add Typ and Const formal parameters. + (Expand_N_Case_Expression): Fix pasto in comment. Adjust call to + Insert_Conditional_Object_Declaration and tidy up surrounding code. + (Expand_N_If_Expression): Adjust couple of calls to + Insert_Conditional_Object_Declaration. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch8.adb (Find_Selected_Component): Fix error path. + +2025-06-09 Eric Botcazou <ebotcazou@adacore.com> + + * libgnat/s-dourea.adb (Is_Infinity): Rename to... + (Is_Infinity_Or_NaN): ...this. + ("*"): Adjust accordingly. + ("/"): Likewise. + (Sqr): Likewise. + * libgnat/s-dorepr.adb (Two_Prod): Likewise. + (Two_Sqr): Likewise. + * libgnat/s-dorepr__fma.adb (Two_Prod): Likewise. + +2025-06-09 Daniel King <dmking@adacore.com> + + * libgnat/i-cheri.ads + (Set_Bounds, Set_Exact_Bounds): Remove wrong intrinsic binding. + * libgnat/i-cheri.adb + (Set_Bounds, Set_Exact_Bounds): New subprogram bodies. + +2025-06-09 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch8.adb (Find_Selected_Component): Add mention. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * urealp.adb (UR_Negate): Capture array element in a local constant. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * urealp.adb (UR_Exponentiate): Use local variable. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Tune code for + attribute Small. + * sem_prag.adb (Analyze_Attribute): Tune code for pragma Time_Slice. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * ada_get_targ.adb, cstand.ads, cstand.adb, sem_eval.adb, sem_eval.ads, + urealp.adb, urealp.ads: Tune style. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * get_targ.ads (Register_Proc_Type): Add null exclusion. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * cstand.adb (Build_Float_Type, Register_Float_Type): Refine + parameter subtypes. + * set_targ.ads (FPT_Mode_Entry): Refine component subtype. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * sem_prag.adb (Analyze_Pragma): Add dependency of Program_Exit on + Global and Depends contracts. + (Analyze_Program_Exit_In_Decl_Part): Check references to subprogram + outputs. + +2025-06-06 Claire Dross <dross@adacore.com> + + * doc/gnat_rm/implementation_defined_pragmas.rst + (Pragma Exit_Cases): Update the documentation for Exit_Cases. + * sem_prag.adb + (Anlayze_Pragma): Accept Program_Exit as an exit kind. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * aspects.ads (Aspect_Argument): Argument for Program_Exit is now + optional. + * doc/gnat_rm/implementation_defined_pragmas.rst + (Pragma Program_Exit): Change documentation for pragma syntax. + * sem_prag.adb (Analyze_Pragma): Argument for Program_Exit is now + optional. + (Analyze_Program_Exit_In_Decl_Part): Likewise. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * aspects.ads (Aspect_Id): Add new aspect identifier. + (Aspect_Argument): Specify argument for the new aspect. + (Is_Representation_Aspect): New aspect is not a representation aspect. + (Aspect_Names): Map new aspect to name. + (Aspect_Delay): New aspect is always delayed. + * contracts.adb (Expand_Subprogram_Contract) + (Add_Pre_Post_Condition, Add_Contract_Item) + (Analyze_Entry_Or_Subprogram_Contract) + (Analyze_Entry_Or_Subprogram_Body_Contract) + (Analyze_Subprogram_Body_Stub_Contract): Support new aspect. + * contracts.ads (Add_Contract_Item, + Analyze_Entry_Or_Subprogram_Contract, + Analyze_Entry_Or_Subprogram_Body_Contract, + Analyze_Subprogram_Body_Stub_Contract): Mention new contract in + comment. + * doc/gnat_rm/implementation_defined_aspects.rst + (Aspect Program_Exit): Document new aspect. + * doc/gnat_rm/implementation_defined_pragmas.rst + (Pragma Program_Exit): Document new pragma. + * einfo-utils.adb (Get_Pragma): Support new pragma. + * einfo-utils.ads (Get_Pragma): Mention new pragma in comment. + * exp_prag.adb (Expand_Pragma_Program_Exit): Expand new pragma; + body. + * exp_prag.ads (Expand_Pragma_Program_Exit): Expand new pragma; + spec. + * inline.adb (Remove_Aspects_And_Pragmas): Support new pragma. + * par-prag.adb (Prag): Support new pragma. + * sem_attr.adb (Analyze_Attribute_Old_Result): Accept attribute + Old in new pragma. + * sem_ch12.adb (Implementation of Generic Contracts): Mention new + aspect in comment. + * sem_ch13.adb (Insert_Pragma, Analyze_Aspect_Specifications): + Convert new new aspect to pragma. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Renumber + subsequent rule in comment. + * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram) + (Contract_Freeze_Error): Mention new pragma in comment. + (Analyze_Pragma): Support new pragma; renumber subsequent rule in + comment. + (Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; body. + (Sig_Flags): References in new pragma are significant when + detecting unreferenced objects. + * sem_prag.ads (Aspect_Specifying_Pragma) + (Assertion_Expression_Pragma, Pragma_Significant_To_Subprograms): + Support new aspect and pragma. + (Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; spec. + (Find_Related_Package_Or_Body): Mention new pragma in comment. + * sem_util.adb (Is_Subprogram_Contract_Annotation): Support new + pragma. + * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new + pragma in comment. + * sinfo.ads (Is_Generic_Contract_Pragma): Mention new pragma in + comment. + * snames.ads-tmpl (Preset Names, Pragma_Id): Add name and pragma + identifiers. + * gnat_rm.texi: Regenerate. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * libgnat/g-dyntab.ads (Instance): Update and extend comment. + * scos.ads: Remove comment about the corresponding C header. + * scos.h: Remove. + +2025-06-06 Steve Baird <baird@adacore.com> + + * sem_util.adb (Collect_Primitive_Operations): When collecting + primitive operations, do not include child unit subprograms. + +2025-06-06 Javier Miranda <miranda@adacore.com> + + * sem_ch4.adb (Constant_Indexing_OK): Add missing support for + RM 4.1.6(13/3), and improve performance to avoid climbing more + than needed. Add documentation. + (Try_Indexing_Function): New subprogram. + (Expr_Matches_In_Formal): Added new formals. + (Handle_Selected_Component): New subprogram. + (Has_IN_Mode): New subprogram. + (Try_Container_Indexing): Add documentation, code reorganization + and extend its functionality to improve its support for prefixed + notation calls. + +2025-06-06 Viljar Indus <indus@adacore.com> + + * debug.adb: Mark -gnatd_D as unused. + * diagnostics-repository.adb: Move to... + * errid.adb: ...here. + * diagnostics-repository.ads: Move to... + * errid.ads: ...here. + * errout.adb (Error_Msg_Internal): Add new arguments for the new + attributes of Error_Msg_Objects. + (Error_Msg): Likewise. + (Error_Msg_N): Likewise. + (Labeled_Span): New method for creating Labeled_Span-s + (Primary_Label_Span): New method for creating primary Labeled_Spans. + (Secondary_Labeled_Span): New method for creating secondary + Labeled_Spans. + (Edit): New method for creating Edit elements. + (Fix): New method for creating Fix elements. + (Error_Msg_F): Simplify code for evaluating the span. + (Error_Msg_FE): Likewise. + (Error_Msg_NE): Likewise. + (Error_Msg_NEL): Likewise. + (Error_Msg_N_Gigi): New method that is used as a wrapper for the + Error_Msg_xxx methods that have the new arguments. This function + is later mapped to the Error_Msg method used inside gigi. + (Error_Msg_NE_Gigi): Likewise. + (Write_JSON_Span): Ensure that the Style prefix is included that is + removed when parsing the message is reinserted to the JSON report. + (Output_Messages): Use the new Pretty_Printer and Sarif_Printer + packages to print the messages and remove the old implementation + for the pretty printer. + (Set_Msg_Text): Remove message kind insertion characters from the + final message text to avoid some message kinds being duplicated. + (To_Full_Span_First): New method for creating a span for a node. + (To_Full_Span): Likewise. + * errout.ads: Add the specs for all of the newly added functions. + * diagnostics-pretty_emitter.adb: Move to... + * erroutc-pretty_emitter.adb: ...here. + * diagnostics-pretty_emitter.ads: Move to... + * erroutc-pretty_emitter.ads: ...here. + * diagnostics-sarif_emitter.adb: Move to... + * erroutc-sarif_emitter.adb: ...here. + * diagnostics-sarif_emitter.ads: Move to... + * erroutc-sarif_emitter.ads: ...here. + * erroutc.adb (Next_Error_Msg): New method for iterating to the + next error message. + (Next_Continuation_Msg): New method for iterating to the next + continuation message. + (Primary_Location): New method for returning the first primary + location for the error message. + (Get_Human_Id): New method for returning the human readable + name for the switch associated with this error message. + (Get_Doc_Switch): New method for creating the tag for the switch + used in the error message. + (Output_Text_Within): Change the method to operating on Strings + instead of String pointers. + (Output_Msg_Text): Simplify implementation for generating the + error message. + (Prescan_Message): Make the String handling more error proof. + * erroutc.ads (Error_Msg_Object): Add new attributes that were + added to Diagnostic objects to Error_Msg_Objects. + Add new methods for handling the new error objects. + * diagnostics-switch_repository.adb: Move to... + * errsw.adb: ...here. + * errutil.adb (Error_Msg): Initialize all of the new attributes + added to Error_Msg_Object-s. + * fe.h (Error_Msg_N): Update the binding. + (Error_Msg_NE): Update the binding. + For now the error_msg methods in gigi will use the old + simplified interface for those methods. + * diagnostics-json_utils.adb: Move to... + * json_utils.adb: ...here. + * diagnostics-json_utils.ads: Move to... + * json_utils.ads: ...here. + * par-endh.adb: Replace the old error_msg + calls with the updated interface. + * sem_aggr.adb: Likewise. + * sem_ch13.adb: Likewise. + * sem_ch4.adb: Likewise. + * sem_ch9.adb: Likewise. + * diagnostics-brief_emitter.adb: Removed. + * diagnostics-brief_emitter.ads: Removed. + * diagnostics-constructors.adb: Removed. + * diagnostics-constructors.ads: Removed. + * diagnostics-converter.adb: Removed. + * diagnostics-converter.ads: Removed. + * diagnostics-switch_repository.ads: Removed. + * diagnostics-utils.adb: Removed. + * diagnostics-utils.ads: Removed. + * diagnostics.adb: Removed. + * diagnostics.ads: Removed. + * errsw.ads: New file. Based on diagnostics-switch_repository.ads. + It additionally contains all the switch enumerations. + * gcc-interface/Make-lang.in: Update compilation dependencies. + * gcc-interface/Makefile.in: Likewise. + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * contracts.adb (Add_Invariant_And_Predicate_Checks): Assign Ekind. + * inline.adb (Expand_Inlined_Call): Likewise. + * exp_ch9.adb (Build_Simple_Entry_Call): Likewise. + * exp_dist.adb (Append_Array_Traversal): Likewise. + * exp_fixd.adb (Build_Double_Divide_Code, Build_Scaled_Divide_Code): + Likewise. + +2025-06-06 Olivier Hainque <hainque@adacore.com> + + * libgnarl/s-linux__android-aarch64.ads: Provide an + Android_Sigaction generic package to expose an aarch64 + version of struct_sigation, using a provided sigset_t + for sa_flags. + * libgnarl/s-linux__android-arm.ads: Likewise, for ARM + rather than aarch64. + * libgnarl/s-osinte__android.ads: Move sigset_t definition + to the visible part and use it to instantiate the Android_Sigation + generic provided by System.Linux, which is specialized for ARM vs + aarch64. Define struct_sigaction out of the Android_Sigaction + instance, remove the local representation clauses. + +2025-06-06 Olivier Hainque <hainque@adacore.com> + + * Makefile.rtl: Rework the Android pairs to match those of a + regular Linux port rather than a generic posix one. + * libgnarl/s-osinte__android.ads: Import pcrtl and add bindings + for the pthread_rwlock entry points, used by the Linux units now + in the libgnat target pairs. + * sysdep.c (__gnat_has_cap_sys_nice): Define for Android, + conservative return 0. + * adaint.c (__gnat_cpu_alloc): Define for Android as for Linux. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * namet.ads (Name_Entry): Update comments to explain the current needs. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * lib.ads (Unit_Record): Remove representation clauses and filler + components + * lib-load.adb, lib-writ.adb: Remove initialization of data fillers. + * nlists.adb (Allocate_List_Tables): Remove explicit initialization. + * repinfo.adb (Exp_Node): Remove representation clauses. + * sinput.ads (Source_File_Record): Likewise. + * urealp.adb (Ureal_Entry): Likewise. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * doc/gnat_rm/representation_clauses_and_pragmas.rst + (Effect of Convention on Representation): Fix number of list items. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * sem_ch10.adb (Install_Siblings.In_Context): Add missing guard. + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch4.adb (Analyze_Selected_Component): Tweak condition. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch4.adb (Insert_Conditional_Object_Declaration): Make sure the + object is allocated properly by the code generator at library level. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * sem_eval.adb (Check_Non_Static_Context): Remove special handling of + floating-point zero. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * einfo.ads (Incomplete_View): Move from Sinfo; adapt wording. + * exp_ch3.adb (Build_Record_Init_Proc): Adapt retrieval of + Incomplete_View. + * gen_il-fields.ads (Opt_Field_Enum): Move Incomplete_View from node + to entity field. + * gen_il-gen-gen_entities.adb (Gen_Entities): Add field. + * gen_il-gen-gen_nodes.adb (Gen_Nodes): Remove field. + * sem_ch3.adb (Analyze_Full_Type_Declaration, + Check_Anonymous_Access_Component): Adapt setting of Incomplete_View. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adapt retrieval of + Incomplete_View for class-wide types; no longer rely on class-wide + type being attached to non-classwide type declaration. + * sem_util.adb (Collect_Primitive_Operations): Adapt retrieval of + Incomplete_View. + * sinfo.ads (Incomplete_View): Move to Einfo. + +2025-06-06 squirek <squirek@adacore.com> + + * aspects.ads: Add support for constructors. + * exp_aggr.adb: Likewise. + * exp_attr.adb: Likewise. + * exp_ch3.adb: Likewise. + * exp_ch4.adb: Likewise. + * exp_util.adb: Likewise. + * gen_il-fields.ads: Likewise. + * gen_il-gen-gen_entities.adb: Likewise. + * gen_il-gen-gen_nodes.adb: Likewise. + * par-ch4.adb: Likewise. + * sem_aggr.adb: Likewise. + * sem_attr.adb, sem_attr.ads: Likewise. + * sem_ch13.adb: Likewise. + * sem_ch3.adb: Likewise. + * sem_ch5.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_res.adb: Likewise. + * sem_util.adb, sem_util.ads: Likewise. + * snames.ads-tmpl: Likewise. + +2025-06-06 squirek <squirek@adacore.com> + + * doc/gnat_rm/gnat_language_extensions.rst: Add documentation. + * gnat_rm.texi: Regenerate. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Modulus): Change to implementation base type only. + * gen_il-gen-gen_entities.adb (Modular_Integer_Kind): Change type + of Modulus field to Impl_Base_Type_Only. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Original_Access_Type): Restore. + * gen_il-fields.ads (Opt_Field_Enum): Restore Original_Access_Type. + * gen_il-gen-gen_entities.adb: Adjust accordingly. + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Restore the + call to Set_Original_Access_Type. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Default_Expr_Function): Delete. + (Dependent_Instances): Likewise. + (Handler_Records): Likewise. + (Needs_Activation_Record): Likewise. + (Original_Access_Type): Likewise. + (Register_Exception_Call): Likewise. + * sinfo.ads (Accept_Handler_Records): Likewise. + * gen_il-fields.ads (Opt_Field_Enum): Remove Accept_Handler_Records, + Default_Expr_Function, Dependent_Instances, Handler_Records, + Needs_Activation_Record, Original_Access_Type and + Register_Exception_Call. + * gen_il-gen-gen_entities.adb: Adjust accordingly. + * gen_il-gen-gen_nodes.adb: Likewise. + * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Remove call + to Set_Original_Access_Type. + (Expand_N_Selective_Accept): Remove call to Set_Handler_Records. + * exp_ch11.adb (Expand_N_Exception_Declaration): Remove call to + Set_Register_Exception_Call. + * sem_ch3.adb (Access_Subprogram_Declaration): Remove call to + Set_Needs_Activation_Record. + * sem_ch12.adb (Instantiate_Package_Body): Remove call to + Set_Handler_Records. + +2025-06-06 Steve Baird <baird@adacore.com> + + * sem_ch4.adb + (Find_Unary_Types): Because we reanalyze names in an instance, + we sometimes have to take steps to filter out extraneous name + resolution candidates that happen to be visible at the point of the + instance declaration. Remove some code that appears to have been + written with this in mind. This is done for two reasons. First, the + code sometimes doesn't work (possibly because the In_Instance test + is not specific enough - it probably should be testing to see whether + we are in an instance of the particular generic in which the result + of calling Corresponding_Generic_Type was declared) and causes correct + code to be rejected. Second, the code seems to no longer be necessary + (possibly because of subsequent fixes in this area which are not + specific to unary operators). + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * sem_ch8.adb (Premature_Usage): Remove dead code. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * einfo.ads (Size_Check_Code): Delete. + * gen_il-fields.ads (Opt_Field_Enum): Remove Size_Check_Code. + * gen_il-gen-gen_entities.adb (Constant_Or_Variable_Kind): Likewise. + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove call + to Kill_Size_Check_Code. + * sem_prag.adb (Analyze_Pragma): Likewise. + * sem_util.ads (Kill_Size_Check_Code): Delete. + * sem_util.adb (Kill_Size_Check_Code): Likewise. + +2025-06-06 Claire Dross <dross@adacore.com> + + * sem_ch6.adb (Analyze_SPARK_Subprogram_Specification): + Allow the first parameter of functions whose return type is + an anonymous access-to-variable type to have mode IN OUT. + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * gen_il-fields.ads: New field. + * gen_il-gen-gen_entities.adb: New field. + * einfo.ads: Document new field. + * sem_res.adb (Check_Discriminant_Use): Record relevant uses in new + field. Move warning emission to... + * sem_ch3.adb (Analyze_Full_Type_Declaration): ... Here. + +2025-06-06 Steve Baird <baird@adacore.com> + + * sem_disp.adb + (Check_Dispatching_Operation): Delete code to generate + "missing overriding indicator" warning. Update comments. + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * cstand.adb (Create_Standard): Delay declaration generation for + Natural and Positive. + +2025-06-06 Ronan Desplanques <desplanques@adacore.com> + + * cstand.adb (Create_Standard): Remove useless calls. + +2025-06-06 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Expand_Record_Aggregate): Use the named form for the + second actual parameter in the call to Duplicate_Subexpr. + * exp_attr.adb (Expand_Size_Attribute): Likewise. + * exp_ch5.adb (Expand_Assign_Array): Likewise. + (Expand_Assign_Array_Bitfield): Likewise. + (Expand_Assign_Array_Bitfield_Fast): Likewise. + * exp_util.ads (Duplicate_Subexpr): Add New_Scope formal parameter. + (Duplicate_Subexpr_No_Checks): Likewise. + (Duplicate_Subexpr_Move_Checks): Likewise. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Pass Proc_Id as the + actual for New_Scope in the calls to Duplicate_Subexpr_No_Checks. + (Duplicate_Subexpr): Add New_Scope formal parameter and forward it + in the call to New_Copy_Tree. + (Duplicate_Subexpr_No_Checks): Likewise. + (Duplicate_Subexpr_Move_Checks): Likewise. + +2025-06-06 Piotr Trojanek <trojanek@adacore.com> + + * checks.adb (Insert_Valid_Check): Set flag Assignment_OK in the object + declaration inserted for the validity checks. + +2025-06-05 squirek <squirek@adacore.com> + + * sem_warn.adb + (Warn_On_Useless_Assignment): Disable out value "overwritten" warning + when we are not warning on unread out parameters (e.g. "-gnatw.o"). + +2025-06-05 Tonu Naks <naks@adacore.com> + + * libgnat/i-cstrin.adb: null pointer check in Update + +2025-06-05 Arnaud Charlet <charlet@adacore.com> + + * exp_util.adb, rtsfind.adb, rtsfind.ads, sem_prag.adb: Remove + references to RO_GH_Big_Integer and + Ada_Numerics_Big_Numbers_Big_Integers_Ghost. + * libgnat/a-strfix.adb, libgnat/a-strmap.adb, + libgnat/a-strsea.adb, libgnat/a-strsup.adb, + libgnat/i-c.ads, libgnat/i-c.adb, libgnat/s-aridou.adb, + libgnat/s-aridou.ads, libgnat/s-arit128.adb, + libgnat/s-arit128.ads, libgnat/s-arit32.adb, + libgnat/s-arit32.ads, libgnat/s-arit64.adb, + libgnat/s-arit64.ads, libgnat/s-casuti.adb, + libgnat/s-exnint.ads, libgnat/s-exnlli.ads, + libgnat/s-exnllli.ads, libgnat/s-expint.ads, + libgnat/s-explli.ads, libgnat/s-expllli.ads, + libgnat/s-explllu.ads, libgnat/s-expllu.ads, + libgnat/s-expmod.adb, libgnat/s-expmod.ads, + libgnat/s-exponn.adb, libgnat/s-exponn.ads, + libgnat/s-expont.adb, libgnat/s-expont.ads, + libgnat/s-exponu.adb, libgnat/s-exponu.ads, + libgnat/s-imaged.ads, libgnat/s-imaged.adb, + libgnat/s-expuns.ads, libgnat/s-imagef.ads, + libgnat/s-imagef.adb, libgnat/s-imagei.adb, + libgnat/s-imagei.ads, libgnat/s-imageu.adb, + libgnat/s-imageu.ads, libgnat/s-imgboo.adb, + libgnat/s-imde128.ads, libgnat/s-imde32.ads, + libgnat/s-imde64.ads, libgnat/s-imfi128.ads, + libgnat/s-imfi32.ads, libgnat/s-imfi64.ads, + libgnat/s-imgboo.ads, libgnat/s-imgint.ads, + libgnat/s-imglli.ads, libgnat/s-imgllli.ads, + libgnat/s-imglllu.ads, libgnat/s-imgllu.ads, + libgnat/s-imguns.ads, libgnat/s-valboo.adb, + libgnat/s-valboo.ads, libgnat/s-valint.ads, + libgnat/s-vallli.ads, libgnat/s-valllli.ads, + libgnat/s-vallllu.ads, libgnat/s-valllu.ads, + libgnat/s-valuns.ads, libgnat/s-valuti.adb, + libgnat/s-valuti.ads, libgnat/s-valuei.adb, + libgnat/s-valuei.ads, libgnat/s-valueu.ads, + libgnat/s-valueu.adb, libgnat/s-veboop.adb, + libgnat/s-veboop.ads, libgnat/s-widint.ads, + libgnat/s-widlli.ads, libgnat/s-widllli.ads, + libgnat/s-widlllu.ads, libgnat/s-widllu.ads, + libgnat/s-widthi.adb, libgnat/s-widthu.adb, + libgnat/s-widthu.ads, libgnat/s-widuns.ads: Remove ghost code + and SPARK annotations. + * libgnat/a-nbnbig.ads, libgnat/a-nbnbig.adb, + libgnat/s-spark.ads, libgnat/s-spcuop.adb, + libgnat/s-spcuop.ads, libgnat/s-vaispe.adb, + libgnat/s-vaispe.ads, libgnat/s-vauspe.adb, + libgnat/s-vauspe.ads, libgnat/s-vs_int.ads, + libgnat/s-vs_lli.ads, libgnat/s-vs_llu.ads, + libgnat/s-vs_uns.ads, libgnat/s-valspe.adb, + libgnat/s-valspe.ads, libgnat/s-vsllli.ads, + libgnat/s-vslllu.ads: Removed. + * Makefile.rtl: Update list of runtime units. + * gcc-interface/Make-lang.in: Remove object files. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * fname-uf.adb: Fix documentation comment. + (Get_Default_File_Name): Fix indices of default patterns. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * atree.ads (New_Copy, Relocate_Node): Tweak documentation comments. + +2025-06-05 Andres Toom <toom@adacore.com> + + * libgnat/a-nudira.ads: Activate SPARK mode and add missing + basic contracts. Mark the unit as always terminating. + * libgnat/a-nuflra.ads: Idem. + +2025-06-05 Javier Miranda <miranda@adacore.com> + + * exp_ch7.adb (Process_Object_Declaration): Avoid generating + duplicate names for master nodes. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * opt.ads: Remove useless variable. + * sem_ch9.adb (Analyze_Abort_Statement, Analyze_Accept_Alternative, + Analyze_Accept_Statement, Analyze_Asynchronous_Select, + Analyze_Conditional_Entry_Call, Analyze_Delay_Alternative, + Analyze_Delay_Relative, Analyze_Delay_Until, Analyze_Entry_Body, + Analyze_Entry_Body_Formal_Part, Analyze_Entry_Call_Alternative, + Analyze_Entry_Declaration, Analyze_Entry_Index_Specification, + Analyze_Protected_Body, Analyze_Protected_Definition, + Analyze_Protected_Type_Declaration, Analyze_Requeue, + Analyze_Selective_Accept, Analyze_Single_Protected_Declaration, + Analyze_Single_Task_Declaration, Analyze_Task_Body, + Analyze_Task_Definition, Analyze_Task_Type_Declaration, + Analyze_Terminate_Alternative, Analyze_Timed_Entry_Call, + Analyze_Triggering_Alternative): Remove useless assignments. + +2025-06-05 Steve Baird <baird@adacore.com> + + * sem_util.adb + (Side_Effect_Free_Statements): Return False if the statement list + includes an explicit (i.e. Comes_From_Source) raise statement. + +2025-06-05 Javier Miranda <miranda@adacore.com> + + * sem_ch6.adb (Analyze_Expression_Function): Add missing check + on premature use of incomplete type. + +2025-06-05 Aleksandra Pasek <pasek@adacore.com> + + * libgnat/s-arit32.adb: Add Ghost aspect to Lo. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * exp_ch4.adb (Tagged_Membership): Fix for protected types. + +2025-06-05 Bob Duff <duff@adacore.com> + + * sem_eval.adb (Fold_Shift): If the Amount parameter is greater + than the size in bits, use the size. For example, if we are + shifting an Unsigned_8 value, then Amount => 1_000_001 gives the + same result as Amount => 8. This change avoids computing the value + of 2**1_000_000, which takes too long and uses too much memory. + Note that the computation we're talking about is a compile-time + computation. Minor cleanup. DRY. + * sem_eval.ads (Fold_Str, Fold_Uint, Fold_Ureal): Fold the + comments into one comment, because DRY. Remove useless + verbiage. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * exp_attr.adb (Interunit_Ref_OK): Tweak categorization of compilation + units. + +2025-06-05 Aleksandra Pasek <pasek@adacore.com> + + * libgnat/s-aridou.adb: Add missing Ghost aspect to + Lemma_Not_In_Range_Big2xx64. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/s-trasym__dwarf.adb (Init_Module): Add mitigation. + +2025-06-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_aggr.adb (Build_Two_Pass_Aggr_Code): New function containing + most of the code initially present in Two_Pass_Aggregate_Expansion. + (Two_Pass_Aggregate_Expansion): Remove redundant N parameter. + Implement built-in-place expansion for (static) object declarations + and allocators, using Build_Two_Pass_Aggr_Code for the main work. + (Expand_Array_Aggregate): Adjust Two_Pass_Aggregate_Expansion call. + Replace Etype (N) by Typ in a couple of places. + * exp_ch3.adb (Expand_Freeze_Array_Type): Remove special case for + two-pass array aggregates. + (Expand_N_Object_Declaration): Do not adjust the object when it is + initialized by a two-pass array aggregate. + * exp_ch4.adb (Expand_Allocator_Expression): Apply the processing + used for container aggregates to two-pass array aggregates. + * exp_ch6.adb (Validate_Subprogram_Calls): Skip calls present in + initialization expressions of N_Object_Declaration nodes that have + No_Initialization set. + * sem_ch3.adb (Analyze_Object_Declaration): Detect the cases of an + array originally initialized by an aggregate consistently. + +2025-06-05 Johannes Kliemann <kliemann@adacore.com> + + * libgnat/s-arit32.adb (Lemma_Not_In_Range_Big2xx32): Add missing + Ghost aspect. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix + handling of preprocessing dependencies. + +2025-06-05 Viljar Indus <indus@adacore.com> + + * doc/gnat_rm/implementation_defined_attributes.rst: Update the + documentation for Valid_Value. + * sem_attr.adb (Analyze_Attribute): Reject types where + the root type originates from Standard. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-05 Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment + for the indexed aggregate object to call Change_Make_OK_Assignment instead. + +2025-06-05 Steve Baird <baird@adacore.com> + + * sem_prag.adb + (Analyze_Constituent): In the specific case case of a defined-too-late + abstract state constituent, generate an additional error message. + +2025-06-05 Viljar Indus <indus@adacore.com> + + * diagnostics-sarif_emitter.adb (Print_Invocations): fix + commandLine and executionSuccessful nodes. + Fix typo in the name for startLine. + * osint.adb (Modified Get_Current_Dir) Fix generation of + the current directory. + (Relative_Path): Avoid relative paths starting with a + path separator. + * osint.ads: Update the documentation for Relative_Path. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/i-cstrin.adb (New_String): Fix size of allocation. + +2025-06-05 squirek <squirek@adacore.com> + + * sem_ch8.adb (Analyze_Package_Name): Add code to expand use + clauses such that they have an implicit with associated with them + when extensions are enabled. + * sem_ch10.ads (Analyze_With_Clause): New. + * sem_ch10.adb (Analyze_With_Clause): Add comes from source check + for warning. + (Expand_With_Clause): Moved to the spec. + * sem_util.adb, sem_util.ads + (Is_In_Context_Clause): Moved from sem_prag. + * sem_prag.adb (Analyze_Pragma): Update calls to + Is_In_Context_Clause. + (Is_In_Context_Clause): Moved to sem_util. + +2025-06-05 Piotr Trojanek <trojanek@adacore.com> + + * doc/gnat_ugn/platform_specific_information.rst + (Setting Stack Size from gnatlink): Improve documentation. + * gnat-style.texi: Regenerate. + * gnat_rm.texi: Regenerate. + * gnat_ugn.texi: Regenerate. + +2025-06-05 squirek <squirek@adacore.com> + + * accessibility.adb (Check_Return_Construct_Accessibility): + Disable check generation when we are only checking semantics. + * opt.ads: Add new flag for -gnatc mode + * switch-c.adb (Scan_Front_End_Switches): Set flag for -gnatc mode + +2025-06-05 Viljar Indus <indus@adacore.com> + + * sem_ch8.adb (Mark_Use_Type): Additionally mark the types + of the parameters and return values as used when analyzing an + operator. + +2025-06-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch9.adb (Build_Dispatching_Requeue): Take 'Tag of the + concurrent object instead of doing an unchecked conversion. + * exp_pakd.adb (Expand_Packed_Address_Reference): Perform address + arithmetic using an operator of System.Storage_Elements. + +2025-06-05 Eric Botcazou <ebotcazou@adacore.com> + + * exp_ch6.adb (Expand_Actuals): Remove obsolete comment. + (Make_Build_In_Place_Call_In_Anonymous_Context): Always use a proper + object declaration initialized with the function call in the cases + where a temporary is needed, with Assignment_OK set on it. + * sem_util.adb (Entity_Of): Deal with rewritten function call first. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * libgnat/i-cstrin.adb (Position_Of_Nul): Change specification and + adjust body accordingly. + (New_Char_Array): Fix size of allocation. + (To_Chars_Ptr): Adapt to Position_Of_Nul change. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix + oracle generation. + +2025-06-05 Ronan Desplanques <desplanques@adacore.com> + + * generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): + Fix when main library item is an instantiation. + +2025-06-05 Steve Baird <baird@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): When accessing the + maps declared in package Cached_Attribute_Ops, the key value + passed to Get or to Set should never be the entity node for a + subtype. Use the entity of the corresponding type declaration + instead. + +2025-06-05 Viljar Indus <indus@adacore.com> + + * sem_res.adb (Resolve_Declare_Expression): Mark used + local variables inside a declare expression as referenced. + +2025-06-05 Javier Miranda <miranda@adacore.com> + + * sem.ads: Update reference to renamed subprogram in documentation. + * sem_ch3.ads (Preanalyze_Assert_Expression): Renamed. + (Preanalyze_Spec_Expression): Renamed. + * sem_ch3.adb (Preanalyze_Assert_Expression): Renamed and code cleanup. + (Preanalyze_Spec_Expression): Renamed. + (Preanalyze_Default_Expression): Renamed. + * contracts.adb: Update calls to renamed subprograms. + * exp_pakd.adb: Ditto. + * exp_util.adb: Ditto. + * freeze.adb: Ditto. + * sem_ch12.adb: Ditto. + * sem_ch13.adb: Ditto. + * sem_ch6.adb: Ditto. + * sem_prag.adb: Ditto. + * sem_res.adb (Preanalyze_And_Resolve): Add to the version without + context type the special handling for GNATprove mode provided by + the version with context type; required to cleanup the body of + Preanalyze_Assert_Expression. + +2025-06-05 squirek <squirek@adacore.com> + + * accessibility.adb + (Check_Return_Construct_Accessibility): Disable check generation + when we are only checking semantics. + +2025-06-05 Viljar Indus <indus@adacore.com> + + * diagnostics-json_utils.adb: Add new method To_File_Uri to + convert any path to the URI standard. + * diagnostics-json_utils.ads: Likewise. + * diagnostics-sarif_emitter.adb: Converted Artifact_Change + types to use the Source_File_Index instead of the file name + to store the source file. + Removed the body from Destroy (Elem : in out Artifact_Change) + since it no longer contained elements with dynamic memory. + Updated the implementation of Equals (L, R : Artifact_Change) + to take into account the changes for Artifact_Change. + Print_Artifact_Location: Use the Source_File_Index as an + input argument. Now prints the uriBaseId attribute and a + relative path from the uriBaseId to the file in question as + the value of the uri attribute. + New method Print_Original_Uri_Base_Ids to print the + originalUriBaseIds node. + Print_Run no prints the originalUriBaseIds node. + Use constants instead of strings for all the SARIF attributes. + * osint.adb: Add new method Relative_Path to calculate the + relative path from a base directory. + Add new method Root to calculate the root of each directory. + Add new method Get_Current_Dir to get the current working + directory for the execution environment. + * osint.ads: Likewise. + * clean.adb: Use full names for calls to Get_Current_Dir. + * gnatls.adb: Likewise. + +2025-06-05 Steve Baird <baird@adacore.com> + + * sem_res.adb + (Set_Mixed_Mode_Operand): If we are about to call Resolve + passing in Any_Fixed as the expected type, then instead pass in + the fixed point type of the other operand (i.e., B_Typ). + +2025-06-05 Gary Dismukes <dismukes@adacore.com> + + * sem_util.adb (Check_Function_Writable_Actuals): Add handling for + N_Iterated_Component_Association and N_Iterated_Element_Association. + Fix a typo in an RM reference (6.4.1(20/3) => 6.4.1(6.20/3)). + (Collect_Expression_Ids): New procedure factoring code for collecting + identifiers from expressions of aggregate associations. + (Handle_Association_Choices): New procedure factoring code for handling + id collection for expressions of aggregate associations with multiple + choices. Removed redundant test of Box_Present from original code. + +2025-05-24 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/Make-lang.in (ACATSDIR): Use acats-2 directory. + +2025-05-13 Nicolas Boulenguez <nicolas@debian.org> + + PR ada/87778 + * Make-generated.in: Remove -q gnatmake option. + * gcc-interface/Makefile.in: Likewise. + 2025-05-05 Eric Botcazou <ebotcazou@adacore.com> PR ada/120104 |