| 2025-07-31 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| Revert: |
| 2025-07-31 Nicolas Boulenguez <nicolas@debian.org> |
| |
| PR ada/114065 |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-c_time$(objext) and |
| s-c_time$(objext). |
| (Aarch64/Android): Do not use s-osinte__android.adb. |
| (SPARC/Solaris): Do not use s-osprim__solaris.adb. |
| (x86/Solaris): Likewise. |
| (LynxOS178): Do not use s-parame__posix2008.ads. |
| (RTEMS): Likewise. |
| (x32/Linux): Likewise, as well as s-linux__x32.ads. Replace |
| s-osprim__x32.adb with s-osprim__posix.adb. |
| (LIBGNAT_OBJS): Remove cal.o. |
| * cal.c: Delete. |
| * doc/gnat_rm/the_gnat_library.rst (GNAT.C_Time): New entry. |
| (GNAT.Calendar): Do not mention the obsolete conversion functions. |
| * impunit.adb (Non_Imp_File_Names_95): Add g-c_time. |
| * libgnarl/a-exetim__posix.adb: Add with clause for System.C_Time |
| (Clock): Use type and functions from System.C_Time. |
| * libgnarl/s-linux.ads: Remove with clause for System.Parameters. |
| Remove declarations of C time types. |
| * libgnarl/s-linux__alpha.ads: Likewise. |
| * libgnarl/s-linux__android-aarch64.ads: Likewise. |
| * libgnarl/s-linux__android-arm.ads: Likewise. |
| * libgnarl/s-linux__hppa.ads: Likewise. |
| * libgnarl/s-linux__loongarch.ads: Likewise. |
| * libgnarl/s-linux__mips.ads: Likewise. |
| * libgnarl/s-linux__riscv.ads: Likewise. |
| * libgnarl/s-linux__sparc.ads: Likewise. |
| * libgnarl/s-osinte__aix.ads: Likewise. |
| * libgnarl/s-osinte__android.ads: Likewise. |
| * libgnarl/s-osinte__cheribsd.ads: Likewise. |
| * libgnarl/s-osinte__darwin.ads: Likewise. |
| * libgnarl/s-osinte__dragonfly.ads: Likewise. |
| * libgnarl/s-osinte__freebsd.ads: Likewise. |
| * libgnarl/s-osinte__gnu.ads: Likewise. |
| * libgnarl/s-osinte__hpux.ads: Likewise. |
| * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. |
| * libgnarl/s-osinte__linux.ads: Likewise. |
| * libgnarl/s-osinte__lynxos178e.ads: Likewise. |
| * libgnarl/s-osinte__qnx.ads: Likewise. |
| * libgnarl/s-osinte__rtems.ads: Likewise. |
| * libgnarl/s-osinte__solaris.ads: Likewise. |
| * libgnarl/s-osinte__vxworks.ads: Likewise. |
| * libgnarl/s-qnx.ads: Likewise. |
| * libgnarl/s-linux__x32.ads: Delete. |
| * libgnarl/s-osinte__darwin.adb (To_Duration): Remove. |
| (To_Timespec): Likewise. |
| * libgnarl/s-osinte__aix.adb: Likewise. |
| * libgnarl/s-osinte__dragonfly.adb: Likewise. |
| * libgnarl/s-osinte__freebsd.adb: Likewise. |
| * libgnarl/s-osinte__gnu.adb: Likewise. |
| * libgnarl/s-osinte__lynxos178.adb: Likewise. |
| * libgnarl/s-osinte__posix.adb: Likewise. |
| * libgnarl/s-osinte__qnx.adb: Likewise. |
| * libgnarl/s-osinte__rtems.adb: Likewise. |
| * libgnarl/s-osinte__solaris.adb: Likewise. |
| * libgnarl/s-osinte__vxworks.adb: Likewise. |
| * libgnarl/s-osinte__x32.adb: Likewise. |
| * libgnarl/s-taprop__solaris.adb: Add with clause for System.C_Time. |
| (Monotonic_Clock): Use type and functions from System.C_Time. |
| (RT_Resolution): Likewise. |
| (Timed_Sleep): Likewise. |
| (Timed_Delay): Likewise. |
| * libgnarl/s-taprop__vxworks.adb: Likewise. |
| * libgnarl/s-tpopmo.adb: Likewise. |
| * libgnarl/s-osinte__android.adb: Delete. |
| * libgnat/g-c_time.ads: New file. |
| * libgnat/g-calend.adb: Delegate to System.C_Time. |
| * libgnat/g-calend.ads: Likewise. |
| * libgnat/g-socket.adb: Likewise. |
| * libgnat/g-socthi.adb: Likewise. |
| * libgnat/g-socthi__vxworks.adb: Likewise. |
| * libgnat/g-sothco.ads: Likewise. |
| * libgnat/g-spogwa.adb: Likewise. |
| * libgnat/s-c_time.adb: New file. |
| * libgnat/s-c_time.ads: Likewise. |
| * libgnat/s-optide.adb: Import nanosleep here. |
| * libgnat/s-os_lib.ads (time_t): Remove. |
| (To_Ada): Adjust. |
| (To_C): Likewise. |
| * libgnat/s-os_lib.adb: Likewise. |
| * libgnat/s-osprim__darwin.adb: Delegate to System.C_Time. |
| * libgnat/s-osprim__posix.adb: Likewise. |
| * libgnat/s-osprim__posix2008.adb: Likewise. |
| * libgnat/s-osprim__rtems.adb: Likewise. |
| * libgnat/s-osprim__unix.adb: Likewise. |
| * libgnat/s-osprim__solaris.adb: Delete. |
| * libgnat/s-osprim__x32.adb: Likewise. |
| * libgnat/s-parame.ads (time_t_bits): Remove. |
| * libgnat/s-parame__hpux.ads: Likewise. |
| * libgnat/s-parame__vxworks.ads: Likewise. |
| * libgnat/s-parame__posix2008.ads: Delete. |
| * s-oscons-tmplt.c (SIZEOF_tv_nsec): New constant. |
| |
| 2025-07-31 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| PR ada/120440 |
| * gcc-interface/Makefile.in (GNATLINK_OBJS): Add s-excmac.o. |
| (GNATMAKE_OBJS): Likewise. |
| |
| 2025-07-31 Nicolas Boulenguez <nicolas@debian.org> |
| |
| PR ada/114065 |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-c_time$(objext) and |
| s-c_time$(objext). |
| (Aarch64/Android): Do not use s-osinte__android.adb. |
| (SPARC/Solaris): Do not use s-osprim__solaris.adb. |
| (x86/Solaris): Likewise. |
| (LynxOS178): Do not use s-parame__posix2008.ads. |
| (RTEMS): Likewise. |
| (x32/Linux): Likewise, as well as s-linux__x32.ads. Replace |
| s-osprim__x32.adb with s-osprim__posix.adb. |
| (LIBGNAT_OBJS): Remove cal.o. |
| * cal.c: Delete. |
| * doc/gnat_rm/the_gnat_library.rst (GNAT.C_Time): New entry. |
| (GNAT.Calendar): Do not mention the obsolete conversion functions. |
| * impunit.adb (Non_Imp_File_Names_95): Add g-c_time. |
| * libgnarl/a-exetim__posix.adb: Add with clause for System.C_Time |
| (Clock): Use type and functions from System.C_Time. |
| * libgnarl/s-linux.ads: Remove with clause for System.Parameters. |
| Remove declarations of C time types. |
| * libgnarl/s-linux__alpha.ads: Likewise. |
| * libgnarl/s-linux__android-aarch64.ads: Likewise. |
| * libgnarl/s-linux__android-arm.ads: Likewise. |
| * libgnarl/s-linux__hppa.ads: Likewise. |
| * libgnarl/s-linux__loongarch.ads: Likewise. |
| * libgnarl/s-linux__mips.ads: Likewise. |
| * libgnarl/s-linux__riscv.ads: Likewise. |
| * libgnarl/s-linux__sparc.ads: Likewise. |
| * libgnarl/s-osinte__aix.ads: Likewise. |
| * libgnarl/s-osinte__android.ads: Likewise. |
| * libgnarl/s-osinte__cheribsd.ads: Likewise. |
| * libgnarl/s-osinte__darwin.ads: Likewise. |
| * libgnarl/s-osinte__dragonfly.ads: Likewise. |
| * libgnarl/s-osinte__freebsd.ads: Likewise. |
| * libgnarl/s-osinte__gnu.ads: Likewise. |
| * libgnarl/s-osinte__hpux.ads: Likewise. |
| * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. |
| * libgnarl/s-osinte__linux.ads: Likewise. |
| * libgnarl/s-osinte__lynxos178e.ads: Likewise. |
| * libgnarl/s-osinte__qnx.ads: Likewise. |
| * libgnarl/s-osinte__rtems.ads: Likewise. |
| * libgnarl/s-osinte__solaris.ads: Likewise. |
| * libgnarl/s-osinte__vxworks.ads: Likewise. |
| * libgnarl/s-qnx.ads: Likewise. |
| * libgnarl/s-linux__x32.ads: Delete. |
| * libgnarl/s-osinte__darwin.adb (To_Duration): Remove. |
| (To_Timespec): Likewise. |
| * libgnarl/s-osinte__aix.adb: Likewise. |
| * libgnarl/s-osinte__dragonfly.adb: Likewise. |
| * libgnarl/s-osinte__freebsd.adb: Likewise. |
| * libgnarl/s-osinte__gnu.adb: Likewise. |
| * libgnarl/s-osinte__lynxos178.adb: Likewise. |
| * libgnarl/s-osinte__posix.adb: Likewise. |
| * libgnarl/s-osinte__qnx.adb: Likewise. |
| * libgnarl/s-osinte__rtems.adb: Likewise. |
| * libgnarl/s-osinte__solaris.adb: Likewise. |
| * libgnarl/s-osinte__vxworks.adb: Likewise. |
| * libgnarl/s-osinte__x32.adb: Likewise. |
| * libgnarl/s-taprop__solaris.adb: Add with clause for System.C_Time. |
| (Monotonic_Clock): Use type and functions from System.C_Time. |
| (RT_Resolution): Likewise. |
| (Timed_Sleep): Likewise. |
| (Timed_Delay): Likewise. |
| * libgnarl/s-taprop__vxworks.adb: Likewise. |
| * libgnarl/s-tpopmo.adb: Likewise. |
| * libgnarl/s-osinte__android.adb: Delete. |
| * libgnat/g-c_time.ads: New file. |
| * libgnat/g-calend.adb: Delegate to System.C_Time. |
| * libgnat/g-calend.ads: Likewise. |
| * libgnat/g-socket.adb: Likewise. |
| * libgnat/g-socthi.adb: Likewise. |
| * libgnat/g-socthi__vxworks.adb: Likewise. |
| * libgnat/g-sothco.ads: Likewise. |
| * libgnat/g-spogwa.adb: Likewise. |
| * libgnat/s-c_time.adb: New file. |
| * libgnat/s-c_time.ads: Likewise. |
| * libgnat/s-optide.adb: Import nanosleep here. |
| * libgnat/s-os_lib.ads (time_t): Remove. |
| (To_Ada): Adjust. |
| (To_C): Likewise. |
| * libgnat/s-os_lib.adb: Likewise. |
| * libgnat/s-osprim__darwin.adb: Delegate to System.C_Time. |
| * libgnat/s-osprim__posix.adb: Likewise. |
| * libgnat/s-osprim__posix2008.adb: Likewise. |
| * libgnat/s-osprim__rtems.adb: Likewise. |
| * libgnat/s-osprim__unix.adb: Likewise. |
| * libgnat/s-osprim__solaris.adb: Delete. |
| * libgnat/s-osprim__x32.adb: Likewise. |
| * libgnat/s-parame.ads (time_t_bits): Remove. |
| * libgnat/s-parame__hpux.ads: Likewise. |
| * libgnat/s-parame__vxworks.ads: Likewise. |
| * libgnat/s-parame__posix2008.ads: Delete. |
| * s-oscons-tmplt.c (SIZEOF_tv_nsec): New constant. |
| |
| 2025-07-28 Marc Poulhiès <poulhies@adacore.com> |
| |
| * gcc-interface/trans.cc (gnat_to_gnu): Fix typo in comment. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-interface/misc.cc: Make |
| diagnostics::context::m_source_printing private. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-interface/trans.cc: Update for diagnostic_t becoming |
| enum class diagnostics::kind. |
| |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-interface/misc.cc: Update for diagnostic_context becoming |
| diagnostics::context. |
| |
| 2025-07-25 Marc Poulhiès <poulhies@adacore.com> |
| |
| * gcc-interface/utils.cc (update_pointer_to): Renamed ptr/old_ptr, ref/old_ref. |
| |
| 2025-07-25 Alexandre Oliva <oliva@adacore.com> |
| |
| * s-oscons-tmplt.c (CLOCK_RT_Ada) [__vxworks]: Define to |
| CLOCK_REALTIME on VxWorks6. |
| * gsocket.h [__vxworks]: Include strings.h if available. |
| * sysdep.c [__vxworks]: Likewise. |
| |
| 2025-07-25 Steve Baird <baird@adacore.com> |
| |
| * exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): Do |
| nothing and simply return if either Ada_Version <= Ada_95 or if |
| the function being returned from lacks the extra formal parameter |
| needed to perform the check (typically because the result is |
| tagged). |
| |
| 2025-07-25 Bob Duff <duff@adacore.com> |
| |
| * sem_ch12.adb (Check_Formal_Package_Instance): |
| Do nothing in case of E_Subprogram_Body. |
| |
| 2025-07-25 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch3.adb (Process_Discriminants): Update comments |
| |
| 2025-07-25 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch3.adb (Build_Derived_Record_Type): Set flag appropriately. |
| |
| 2025-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/a-calend.adb (To_Struct_Timespec_64): Deal with negative |
| Duration values and truncate the nanoseconds too. |
| * libgnat/g-calend.adb (timeval_to_duration): Unsuppress overflow |
| checks. |
| (duration_to_timeval): Likewise. Deal with negative Duration values |
| as well as integral Duration values. |
| * libgnat/g-socket.adb (To_Timeval): Simplify the implementation. |
| |
| 2025-07-24 Steve Baird <baird@adacore.com> |
| |
| * exp_aggr.adb (Convert_To_Assignments): Add calls to Ensure_Defined |
| before generating assignments to components that could be |
| associated with a not-yet-defined itype. |
| |
| 2025-07-24 Steve Baird <baird@adacore.com> |
| |
| * accessibility.adb (Function_Call_Or_Allocator_Level): Handle the |
| case where a function that has an Extra_Accessibility_Of_Result |
| parameter returns as its result a call to another such function. |
| In that case, the extra parameter should be passed along. |
| (Check_Return_Construct_Accessibility): Replace a warning about an |
| inevitable failure of a dynamic check with a legality-rule-violation |
| error message; adjust the text of the message accordingly. |
| * exp_ch6.ads (Apply_Access_Discrims_Accessibility_Check): New |
| procedure, following example of the existing |
| Apply_CW_Accessibility procedure. |
| * exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): body |
| for new procedure. |
| (Expand_Simple_Function_Return): Add call to new |
| Apply_Access_Discrims_Accessibility_Check procedure. |
| * exp_ch3.adb (Make_Allocator_For_Return): Add call to new |
| Apply_Access_Discrims_Accessibility_Check procedure. |
| |
| 2025-07-24 Tonu Naks <naks@adacore.com> |
| |
| * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: |
| clarify parameter description. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-07-22 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch8.adb (End_Use_Type): Add a test for there not being an earlier |
| use_type_clause for the same type as an additional criterion for turning |
| off In_Use and Current_Use_Clause. |
| |
| 2025-07-22 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Only fold array attributes when prefix |
| is static or at least safe to evaluate |
| |
| 2025-07-22 Ronan Desplanques <desplanques@adacore.com> |
| |
| * einfo.ads (Is_Controlled_Active): Fix pasto in comment. |
| * sem_util.ads (Propagate_Controlled_Flags): Update comment for |
| Destructor aspect. |
| |
| 2025-07-22 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_rm/gnat_language_extensions.rst: Document new extension. |
| * snames.ads-tmpl: Add name for new aspect. |
| * gen_il-fields.ads (Has_Destructor, Is_Destructor): Add new fields. |
| * gen_il-gen-gen_entities.adb (E_Procedure, Type_Kind): Add new fields. |
| * einfo.ads (Has_Destructor, Is_Destructor): Document new fields. |
| * aspects.ads: Add new aspect. |
| * sem_ch13.adb (Analyze_Aspect_Specifications, |
| Check_Aspect_At_Freeze_Point, Check_Aspect_At_End_Of_Declarations): |
| Add semantic analysis for new aspect. |
| (Resolve_Finalization_Procedure): New function. |
| (Resolve_Finalizable_Argument): Use new function above. |
| * sem_util.adb (Propagate_Controlled_Flags): Extend for new field. |
| * freeze.adb (Freeze_Entity): Add legality check for new aspect. |
| * exp_ch3.adb (Expand_Freeze_Record_Type, Predefined_Primitive_Bodies): |
| Use new field. |
| * exp_ch7.adb (Build_Finalize_Statements): Add expansion for |
| destructors. |
| (Make_Final_Call, Build_Record_Deep_Procs): Adapt to new Has_Destructor |
| field. |
| (Build_Adjust_Statements): Tweak to handle cases of empty lists. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-07-22 Denis Mazzucato <mazzucato@adacore.com> |
| |
| * sem_ch6.adb (Might_Need_BIP_Task_Actuals): Before retrieving the original corresponding |
| operation we retrieve first the root of the aliased chain. |
| |
| 2025-07-22 Ronan Desplanques <desplanques@adacore.com> |
| |
| * gen_il-fields.ads (Is_Implicit_Full_View): New field. |
| * gen_il-gen-gen_entities.adb (Type_Kind): Use new field. |
| * einfo.ads (Is_Implicit_Full_View): Document new field. |
| * exp_ch7.adb (Make_Adjust_Call, Make_Init_Call, Make_Final_Call): Use |
| new field. |
| * exp_util.adb (Finalize_Address): Likewise. |
| * sem_ch3.adb (Copy_And_Build): Set new field. |
| |
| 2025-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.ads (May_Generate_Large_Temp): Delete. |
| * exp_util.adb (May_Generate_Large_Temp): Likewise. |
| (Safe_Unchecked_Type_Conversion): Do not take stack checking into |
| account to compute the result. |
| |
| 2025-07-22 Javier Miranda <miranda@adacore.com> |
| |
| * sinfo.ads (Is_Expanded_Dispatching_Call): New flag. |
| (Tag_Propagated): New flag. |
| * exp_ch6.adb (Expand_Call_Helper): Propagate the tag when |
| the dispatching call is placed in conditionl expressions or |
| case-expressions. |
| * sem_ch5.adb (Analyze_Assignment): For assignment of tag- |
| indeterminate expression, do not propagate the tag if |
| previously done. |
| * sem_disp.adb (Is_Tag_Indeterminate): Add missing support |
| for conditional expression and case expression. |
| * exp_disp.ads (Is_Expanded_Dispatching_Call): Removed. Function |
| replaced by a new flag in the nodes. |
| * exp_disp.adb (Expand_Dispatching_Call): Set a flag in the |
| call node to remember that the call has been expanded. |
| (Is_Expanded_Dispatching_Call): Function removed. |
| * gen_il-fields.ads (Tag_Propagated): New flag. |
| (Is_Expanded_Dispatching_Call): New flag. |
| * gen_il-gen-gen_nodes.adb (Tag_Propagated): New flag. |
| (Is_Expanded_Dispatching_Call): New flag. |
| |
| 2025-07-22 Gary Dismukes <dismukes@adacore.com> |
| |
| * libgnat/a-cbhama.ads (Empty): Add missing default to Capacity formal. |
| * libgnat/a-cbhama.adb (Empty): Add missing default to Capacity formal. |
| * exp_aggr.adb (Build_Size_Expr): Test for presence of Capacity |
| discriminant as additional criterion for generating the call to |
| the Length function. Update comments. |
| |
| 2025-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.adb (Safe_Unchecked_Type_Conversion): Always return True |
| if the expression is the prefix of an N_Selected_Component. |
| |
| 2025-07-22 Denis Mazzucato <mazzucato@adacore.com> |
| |
| * sem_ch6.adb (Might_Need_BIP_Task_Actuals): Check whether No_Task_Parts is enabled in any |
| of the derived types, or interfaces, from the user-defined primitive return type. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Add No_Task_Parts and No_Controlled_Parts to |
| the representation chain to be visible in the full view of private types. |
| * aspects.ads (Nonoverridable_Aspect_Id): As per GNAT RM, No_Task_Parts is nonoverridable. |
| * sem_util.adb (Check_Inherited_Nonoverridable_Aspects): Likewise. |
| * sem_util.ads: Fix typo and style. |
| * sem_disp.adb: Missing comment. |
| |
| 2025-07-22 Javier Miranda <miranda@adacore.com> |
| |
| * einfo.ads (Extra_Formals): Complete documentation. |
| (Has_First_Controlling_Parameter_Aspect): Place it in alphabetical order. |
| (Has_Frozen_Extra_Formals): New attribute. |
| * gen_il-fields.ads (Has_Frozen_Extra_Formals): New entity field. |
| * gen_il-gen-gen_entities.adb (Has_Frozen_Extra_Formals): Adding new |
| entity flag to subprograms, subprogram types, and and entries. |
| * gen_il-internals.adb (Image): Adding Has_Frozen_Extra_Formals. |
| * exp_ch3.adb (Build_Array_Init_Proc): Freeze its extra formals. |
| (Build_Init_Procedure): Freeze its extra formals. |
| (Expand_Freeze_Record_Type): For tagged types with foreign convention |
| create the extra formals of primitives with convention Ada. |
| * exp_ch6.ads (Create_Extra_Actuals): New subprogram. |
| * exp_ch6.adb (Check_BIP_Actuals): Adding assertions. |
| (Create_Extra_Actuals): New subprogram that factorizes code from |
| Expand_Call_Helper. |
| (Expand_Call_Helper): Adding support to defer the addition of extra |
| actuals. Move the code that adds the extra actuals to a new subprogram. |
| (Is_Unchecked_Union_Equality): Renamed as Is_Unchecked_Union_Predefined_ |
| Equality_Call. |
| * exp_ch7.adb (Create_Finalizer): Freeze its extra formals. |
| (Wrap_Transient_Expression): Link the temporary with its relocated |
| expression to facilitate locating the expression in the expanded code. |
| * exp_ch9.ads (Expand_N_Entry_Declaration): Adding one formal. |
| * exp_ch9.adb (Expand_N_Entry_Declaration): Defer the expansion of |
| the entry if the extra formals are not available; analyze the built |
| declarations for the record type that holds all the parameters if |
| the expansion of the entry declaration was deferred. |
| * exp_disp.adb (Expand_Dispatching_Call): Handle deferred extra formals. |
| (Set_CPP_Constructors): Freeze its extra formals. |
| * freeze.adb (Freeze_Entity): Create the extra actuals of acccess to |
| subprograms whose designated type is a subprogram type. |
| (Freeze_Subprogram): Adjust assertion to support deferred extra formals, |
| and freeze extra formals of non-dispatching subprograms with foreign |
| convention. Added assertion to check matching of formals in thunks. |
| * sem_aux.adb (Get_Called_Entity): Adding documentation. |
| * sem_ch3.adb (Analyze_Full_Type_Declaration): Create the extra formals |
| of deferred subprograms, subprogram types and entries; create also the |
| extra actuals of deferred calls. |
| * sem_ch6.ads (Freeze_Extra_Formals): New subprogram. |
| (Deferred_Extra_Formals_Support): New package. |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create the extra formals |
| of subprograms without separate spec. |
| (Add_Extra_Formal): Add documentation. |
| (Has_Extra_Formals): Removed. |
| (Parent_Subprogram): Adding documentation. |
| (Create_Extra_Formals): Defer adding extra formals if the underlying_type |
| of some formal type or return type is not available. |
| (Extra_Formals_Match_OK): Add missing check on the extra formals of |
| unchecked unions. |
| (Freeze_Extra_Formals): New subprogram. |
| (Deferred_Extra_Formals_Support): New package. |
| * sem_ch9.adb (Analyze_Entry_Declaration): Freeze its extra formals. |
| * sem_ch13.adb (New_Put_Image_Subprogram): ditto. |
| * sem_util.ads (Is_Unchecked_Union_Equality): New subprogram. |
| * sem_util.adb (Is_Unchecked_Union_Equality): ditto. |
| |
| 2025-07-22 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Get_Actual_Subtype): Do the same for GCC and GNATprove |
| backends. |
| |
| 2025-07-22 Martin Clochard <clochard@adacore.com> |
| |
| * exp_spark.adb (Expand_SPARK): Add expansion of continue statements. |
| (Expand_SPARK_N_Continue_Statement): Expand continue statements resolved |
| as procedure calls into said procedure calls. |
| |
| 2025-07-22 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (Resolve_Call): Look at the base type of actual parameter |
| when checking call to Set_Handler. |
| |
| 2025-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * sem_util.adb (Get_Actual_Subtype): Only create a new subtype when |
| the expander is active. Remove a useless test of type inequality, |
| as well as a useless call to Set_Has_Delayed_Freeze on the subtype. |
| |
| 2025-07-22 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Build_Size_Expr): Change test of "not Present (...)" |
| to "No (...)". |
| |
| 2025-07-22 Gary Dismukes <dismukes@adacore.com> |
| |
| * exp_aggr.adb (Build_Size_Expr): Determine the length of a container |
| aggregate association in the case where it's an iteration over an |
| object of a container type coming from an instantiation of a predefined |
| container generic. Minor updates to existing comments. |
| |
| 2025-07-22 Ghjuvan Lacambre <lacambre@adacore.com> |
| |
| * exp_util.adb (Finalize_Address): Prevent infinite loop |
| |
| 2025-07-22 Steve Baird <baird@adacore.com> |
| |
| * sem_aux.ads: Declare new function Unique_Component_Name. |
| * sem_aux.adb: Implement new function Unique_Component_Name. |
| |
| 2025-07-22 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): |
| Ensure the Expression_Copy always has a parent before |
| calling any analyze. |
| |
| 2025-07-22 Steve Baird <baird@adacore.com> |
| |
| * exp_aggr.adb (Build_Record_Aggr_Code.Gen_Assign): In the case of |
| an aggregate component where the component type is mutably tagged |
| and the component value is provided by a qualified aggregate (and |
| qualified with a specific type), avoid incorrectly rejecting the |
| inner aggregate for violating the rule that the type of an |
| aggregate shall not be class-wide. |
| * exp_attr.adb: For a predefined streaming operation (i.e., Read, |
| Write, Input, or Output) of a class-wide type, the external name |
| of the tag of the value is normally written out by Output and read |
| in by Input. In the case of a mutably tagged type, this is instead |
| done in Write and Read. |
| * exp_ch4.adb (Expand_Composite_Equality): In the case of an |
| equality comparison for a type having a mutably tagged component, |
| we want the component comparison to compare two values of the |
| mutably tagged type, not two values of the corresponding |
| array-of-bytes-ish representation type. Even if there are no |
| user-defined equality functions anywhere in sight, comparing the |
| array values still doesn't work because undefined bits may end up |
| participating in the comparison (resulting in an incorrect result |
| of False). |
| * exp_put_image.adb: In the case of a class-wide type, the |
| predefined Image attribute includes the name of the specific type |
| (and a "'" character, to follow qualified expression syntax) to |
| indicate the tag of the value. With the introduction of mutably |
| tagged types, this case can now arise in the case of a component |
| (of either an enclosing array or an enclosing record), not just |
| for a top-level object. So we factor the code to do this into a |
| new procedure, Put_Specific_Type_Name_Qualifier, so that it can be |
| called from more than one place. This reorganization also involves |
| replacing the procedure Put_String_Exp with a new procedure, |
| Put_String_Exp_To_Buffer, declared in a less nested scope. For |
| mutably tagged components (at the source level) the component type |
| (at the GNAT tree level) is an array of bytes (actually a two |
| field record containing an array of bytes, but that's a detail). |
| Appropriate conversions need to be generated so that we don't end |
| up generating an image for an array of bytes; this is done at the |
| same places where Put_Specific_Type_Name_Qualifier is called |
| (for components) by calling Make_Mutably_Tagged_Conversion. |
| * exp_strm.adb (Make_Field_Attribute): Add |
| Make_Mutably_Tagged_Conversion call where we construct a |
| Selected_Component node and the corresponding component type is |
| the internal representation type for a mutably tagged type. |
| (Stream_Base_Type): Return the mutably |
| tagged type if given the corresponding internal representation type. |
| * sem_ch3.adb (Array_Type_Declaration): In the case where the |
| source-level component type of an array type is mutably tagged, |
| set the Component_Type field of the base type of the declared |
| array type (as opposed to that of the first subtype of the array |
| type) to the corresponding internal representation type. |
| * sem_ch4.adb (Analyze_Selected_Component): In the case of a |
| selected component name which references a component whose type is |
| the internal representation type of a mutably tagged type, |
| generate a conversion to the mutably tagged type. |
| |
| 2025-07-21 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| PR ada/121184 |
| * styleg.adb (Check_Comment): Use consistent warning message. |
| |
| 2025-07-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * gcc-interface/trans.cc (gnat_to_gnu): Pass null pointer to |
| parse_{input,output}_constraint(). |
| |
| 2025-07-18 Steve Baird <baird@adacore.com> |
| |
| * sem_ch12.adb (Validate_Derived_Type_Instance): Cope with the case |
| where the ancestor type for a formal derived type is declared in |
| an earlier formal package but Get_Instance_Of does not return the |
| corresponding type from the corresponding actual package. |
| |
| 2025-07-18 Bob Duff <duff@adacore.com> |
| |
| * tbuild.adb (Unchecked_Convert_To): Back out |
| change. |
| |
| 2025-07-18 Marc Poulhiès <poulhies@adacore.com> |
| Eric Botcazou <botcazou@adacore.com> |
| |
| * exp_ch6.adb (Convert): Do not call Expand_Inlined_Call for |
| unsupported cases. |
| * inline.adb (Expand_Inlined_Call): Add assert to catch unsupported |
| case. |
| |
| 2025-07-18 Gary Dismukes <dismukes@adacore.com> |
| |
| * einfo.ads: Document new field Overridden_Inherited_Operation and |
| list it as a field for the entity kinds that it applies to. |
| * gen_il-fields.ads (type Opt_Field_Enum): Add new literal |
| Overridden_Inherited_Operation to the type. |
| * gen_il-gen-gen_entities.adb: Add Overridden_Inherited_Operation as |
| a field of entities of kinds E_Enumeration_Literal and Subprogram_Kind. |
| * sem_ch4.adb (Is_Callable_Private_Overriding): Change name (was |
| Is_Private_Overriding). Replace Is_Hidden test on Overridden_Operation |
| with test of Is_Hidden on the new field Overridden_Inherited_Operation. |
| * sem_ch6.adb (New_Overloaded_Entity): Set the new field |
| Overridden_Inherited_Operation on an operation derived from |
| an interface to refer to the inherited operation of a private |
| extension that's overridden by the derived operation. Also set |
| that field in the more common cases of an explicit subprogram |
| that overrides, to refer to the inherited subprogram that is |
| overridden. (Contrary to its name, the Overridden_Operation |
| field of the overriding subprogram, which is also set in these |
| places, refers to the *parent* subprogram from which the inherited |
| subprogram is derived.) Also, remove a redundant Present (Alias (S)) |
| test in an if_statement and the dead "else" part of that statement. |
| |
| 2025-07-18 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Build_Elaboration_Entity): Set ghost mode to none |
| before creating the elaboration entity; restore the ghost mode |
| afterwards. |
| |
| 2025-07-18 Javier Miranda <miranda@adacore.com> |
| |
| * exp_aggr.adb (Gen_Assign): Code cleanup. |
| (Initialize_Component): Do not adjust the tag when the type of |
| the aggregate components is a mutably tagged type. |
| |
| 2025-07-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/121056 |
| * sem_ch4.adb (Try_Object_Operation.Try_Primitive_Operation): Add |
| test on Is_Record_Type before accessing Underlying_Record_View. |
| |
| 2025-07-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * par-load.adb: Comment spelling fix: bellow -> below. |
| * libgnarl/s-taskin.ads: Likewise. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/Make-lang.in (ACATSDIR): Change to acats-4. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.cc (make_packable_type): Clear the TYPE_PACKED |
| flag in the case where the alignment is bumped. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not generate |
| a block-copy out for a null initialization procedure when the _Init |
| parameter is not passed in. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Only apply the |
| transformation to integer types. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Add guards. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): In the case of a |
| subprogram using the Copy-In/Copy-Out mechanism, deal specially with |
| the case of 2 parameters of differing sizes. |
| * gcc-interface/trans.cc (Subprogram_Body_to_gnu): In the case of a |
| subprogram using the Copy-In/Copy-Out mechanism, make sure the types |
| are consistent on the two sides for all the parameters. |
| |
| 2025-07-04 Steve Baird <baird@adacore.com> |
| |
| * sem_res.adb (Resolve_Type_Conversion): Replace code for |
| detecting a similar case with a more comprehensive test. |
| |
| 2025-07-04 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (Short_Circuit_And_Or): Add more documentation. |
| * sem_ch8.adb (Analyze_Subprogram_Renaming): |
| Disallow renamings. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-07-04 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch7.adb (Make_Final_Call): Tweak search of Finalize primitive. |
| * exp_util.adb (Finalize_Address): Likewise. |
| |
| 2025-07-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * freeze.adb (Check_Compile_Time_Size): Try harder to see whether |
| the bounds of array types are known at compile time. |
| |
| 2025-07-04 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_aux.ads (First_Discriminant): Remove space before period. |
| |
| 2025-07-04 Steve Baird <baird@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Record_Representation_Clause): In deciding |
| whether to generate a warning about a missing component clause, in |
| addition to calling Is_Unchecked_Union also call a new local |
| function, Unchecked_Union_Pragma_Pending, which checks for the |
| case of a not-yet-analyzed Unchecked_Union pragma occurring later |
| in the declaration list. |
| |
| 2025-07-04 Steve Baird <baird@adacore.com> |
| |
| * mutably_tagged.adb (Make_CW_Size_Compile_Check): Include the |
| value of the Size'Class limit in the message generated via a |
| Compile_Time_Error pragma. |
| |
| 2025-07-04 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_Freeze_Point): Remove obsolete bits. |
| |
| 2025-07-04 Ronan Desplanques <desplanques@adacore.com> |
| |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Fix error emission. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/Makefile.in (gnatlib-sjlj): Delete. |
| (gnatlib-zcx): Do not modify Frontend_Exceptions constant. |
| * libgnat/system-linux-loongarch.ads (Frontend_Exceptions): Delete. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (type_contains_only_integral_data): Do not |
| return false only because the type contains pointer data. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity): Use default messages |
| for errors reported for Object_Size clauses. |
| (validate_size): Give an error for stand-alone objects of composite |
| types if the specified size is not a multiple of the alignment. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (addressable_p): Add COMPG third parameter. |
| <COMPONENT_REF>: Do not return true out of alignment considerations |
| for non-strict-alignment targets if COMPG is set. |
| (Call_to_gnu): Pass true as COMPG in the call to the addressable_p |
| predicate if the called subprogram is an initialization procedure. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (gnat_to_gnu) <N_Allocator>: Allocate the |
| bounds alongside the data if the Is_Constr_Array_Subt_With_Bounds |
| flag is set on the designated type. |
| <N_Free_Statement>: Take into account the allocated bounds if the |
| Is_Constr_Array_Subt_With_Bounds flag is set on the designated type. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_component_type): Validate the |
| Component_Size like the size of a type only if the component type |
| is actually packed. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_elab.adb (Check_Overriding_Primitive): Find early call region |
| of the subprogram body declaration, not of the subprogram body stub. |
| |
| 2025-07-03 Bob Duff <duff@adacore.com> |
| |
| * gen_il-gen-gen_nodes.adb (N_Unchecked_Type_Conversion): |
| Remove useless Nmake_Assert. |
| * tbuild.adb (Unchecked_Convert_To): |
| Narrow the bitfield-related conditions. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_util.adb (Insert_Actions): Fix check. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Precisify comment. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the |
| declarations of return objects. |
| |
| 2025-07-03 Daniel King <dmking@adacore.com> |
| |
| * Makefile.rtl (LIBGNAT_TARGET_PAIRS): New unit s-tsgsba__cheri.adb for morello-freebsd. |
| * libgnarl/s-tassta.adb (Get_Stack_Base): New function. |
| * libgnarl/s-tsgsba__cheri.adb: New file for CHERI targets. |
| * libgnarl/s-tsgsba.adb: New default file for non-CHERI targets. |
| * libgnat/s-stausa.adb (Fill_Stack, Compute_Result): Port to CHERI. |
| * libgnat/s-stausa.ads (Initialize_Analyzer, Stack_Analyzer): Port to CHERI. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Check_Return_Subtype_Indication): Use Original_Node. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Check_Return_Subtype_Indication): Use type from |
| explicit subtype indication, when possible. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Check_Return_Subtype_Indication): Adjust error message |
| to match the RM wording. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Check_Return_Subtype_Indication): Use the nominal |
| subtype of a return object; literally implement the RM rule about |
| elementary types; check for static subtype compatibility both when |
| the subtype is given as a subtype mark and a subtype indication. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (First_Comp_Or_Discr.Is_Placed_Before): Return True |
| only if the components are in the same component list. |
| |
| 2025-07-03 Denis Mazzucato <mazzucato@adacore.com> |
| |
| * sem_disp.adb (Check_Dispatching_call): Fix uninitialized Subp_Entity. |
| * sem_util.adb (Update_Controlling_Argument): No need to replace controlling argument |
| in case of functions. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * errid.ads: Adjust header to renaming and fix copyright line. |
| * errid.adb: Adjust header to renaming and add blank line. |
| * erroutc-pretty_emitter.ads: Adjust header to renaming. |
| * erroutc-pretty_emitter.adb: Likewise. |
| * erroutc-sarif_emitter.ads: Likewise. |
| * erroutc-sarif_emitter.adb: Likewise. |
| * errsw.ads: Adjust header to renaming and add blank line. |
| * errsw.adb: Likewise. |
| * json_utils.ads: Likewise. |
| * json_utils.adb: Adjust header to renaming. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * errid.ads (Diagnostic_Entries): Now a constant. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * errid.ads (Diagnostic_Entries): Remove nested aggregate. |
| * errsw.adb (Switches): Likewise. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch7.adb (Make_Deep_Record_Body): Fix case of absent Initialize |
| primitive. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Count_Default_Sized_Task_Stacks): Refine subtypes of |
| parameters; same for callsites. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_imgv.adb (Expand_Value_Attribute): Do not call Set_Etype on N |
| after rewriting it by means of OK_Convert_To. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_aggr.adb (Generate_Finalization_Actions): Stop assuming that |
| initialize primitive exists. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch7.adb (Build_Record_Deep_Procs): Fix typo in comment. |
| |
| 2025-07-03 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch12.adb (Install_Spec): Remove "not Is_Generic_Instance (Par)" |
| in test for setting Instance_Parent_Unit. Revise comment to no longer |
| say "noninstance", plus remove "???". |
| (Remove_Parent): Restructure if_statement to allow for both "elsif" |
| parts to be executed (by changing them to be separate if_statements |
| within an "else" part). |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch3.adb (Predefined_Primitive_Bodies): Fix comment. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_tss.adb (TSS): Refactor IF condition to make code smaller. |
| * lib.adb (Increment_Serial_Number, Synchronize_Serial_Number): |
| Use type of renamed object when creating renaming. |
| * lib.ads (Unit_Record): Refine subtype of dependency number. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-valuef.adb: Document the prerequisites more precisely. |
| * libgnat/a-tifiio.adb (OK_Get_32): Adjust to the prerequisites. |
| (OK_Get_64): Likewise. |
| * libgnat/a-tifiio__128.adb (OK_Get_32): Likewise. |
| (OK_Get_64): Likewise. |
| (OK_Get_128): Likewise. |
| * libgnat/a-wtfiio.adb (OK_Get_32): Likewise. |
| (OK_Get_64): Likewise. |
| * libgnat/a-wtfiio__128.adb (OK_Get_32): Likewise. |
| (OK_Get_64): Likewise. |
| (OK_Get_128): Likewise. |
| * libgnat/a-ztfiio.adb (OK_Get_32): Likewise. |
| (OK_Get_64): Likewise. |
| * libgnat/a-ztfiio__128.adb (OK_Get_32): Likewise. |
| (OK_Get_64): Likewise. |
| (OK_Get_128): Likewise. |
| * exp_imgv.adb (Expand_Value_Attribute): Adjust the conditions under |
| which the RE_Value_Fixed{32,64,128} routines are called for ordinary |
| fixed-point types. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch3.adb (Make_Predefined_Primitive_Specs): Fix comment. |
| |
| 2025-07-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch7.adb (Insert_Actions_In_Scope_Around): Fix condition. |
| |
| 2025-07-03 Bob Duff <duff@adacore.com> |
| |
| * checks.adb: Remove unnecessary "return;" statements. |
| * eval_fat.adb: Likewise. |
| * exp_aggr.adb: Likewise. |
| * exp_attr.adb: Likewise. |
| * exp_ch3.adb: Likewise. |
| * exp_ch4.adb: Likewise. |
| * exp_ch5.adb: Likewise. |
| * exp_ch6.adb: Likewise. |
| * exp_unst.adb: Likewise. |
| * krunch.adb: Likewise. |
| * layout.adb: Likewise. |
| * libgnat/s-excdeb.adb: Likewise. |
| * libgnat/s-trasym__dwarf.adb: Likewise. |
| * par-endh.adb: Likewise. |
| * par-tchk.adb: Likewise. |
| * sem.adb: Likewise. |
| * sem_attr.adb: Likewise. |
| * sem_ch6.adb: Likewise. |
| * sem_elim.adb: Likewise. |
| * sem_eval.adb: Likewise. |
| * sfn_scan.adb: Likewise. |
| |
| 2025-07-03 Bob Duff <duff@adacore.com> |
| |
| * doc/gnat_rm/implementation_defined_characteristics.rst: |
| Change Ignore to Disable. |
| * sem_ch13.ads (Analyze_Aspect_Specifications): |
| Minor: Remove incorrect comment; there is no need to check |
| Has_Aspects (N) at the call site. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2025-07-03 Bob Duff <duff@adacore.com> |
| |
| * types.ads (Empty_Or_Error): Remove. |
| * atree.adb: Remove reference to Empty_Or_Error. |
| * par-endh.adb: Likewise. |
| * sem_ch12.adb: Likewise. |
| * sem_ch3.adb: Likewise. |
| * sem_util.adb: Likewise. |
| * treepr.adb: Likewise. |
| |
| 2025-07-03 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch10.adb(Analyze_With_Clause): Call Semantics instead |
| of Analyze to bring Current_Sem_Unit up to date. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * lib-xref-spark_specific.adb |
| (Enclosing_Subprogram_Or_Library_Package): Traverse subunits and body |
| stubs. |
| |
| 2025-07-03 Tonu Naks <naks@adacore.com> |
| |
| * libgnat/i-cstrin.ads (Value): add documentation |
| |
| 2025-07-03 Aleksandra Pasek <pasek@adacore.com> |
| |
| * libgnat/a-strsup.adb (Super_Delete): Fix index check. |
| * libgnat/a-stwisu.adb (Super_Delete): Likewise. |
| * libgnat/a-stzsup.adb (Super_Delete): Likewise. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Handle_Changed_Representation): Alphabetize local |
| variables. Set the No_Finalize_Actions flag on the assignment. |
| |
| 2025-07-03 Joffrey Huguet <huguet@adacore.com> |
| |
| * aspects.ads: Define an identifier for Potentially_Invalid. |
| * doc/gnat_rm/implementation_defined_aspects.rst: Add section for Potentially_Invalid. |
| * sem_attr.adb (Analyze_Attribute_Old_Result): Attribute Old is allowed to occur in a |
| Potentially_Invalid aspect. |
| * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Potentially_Invalid. |
| * sem_util.adb (Has_Potentially_Invalid): Returns True iff an entity is subject to the |
| Potentially_Invalid aspect. |
| * sem_util.ads (Has_Potentially_Invalid): Idem. |
| * snames.ads-tmpl: New name for Potentially_Invalid. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-07-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch10.adb (Analyze_Compilation_Unit): Ignored ghost unit need no |
| elaboration checks. |
| |
| 2025-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-valued.adb (Integer_to_Decimal): Use truncation for the |
| scaled divide operation performed for bases other than 10. |
| |
| 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 |
| * exp_ch3.adb (Expand_Freeze_Record_Type): For a controlled tagged |
| type, freeze only the controlled primitives that are present. |
| |
| 2025-04-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112958 |
| * Makefile.rtl (LIBGNAT_TARGET_PAIRS) [x86 FreeBSD]: Add specific |
| version of s-dorepr.adb. |
| * libgnat/s-dorepr__freebsd.adb: New file. |
| |
| 2025-04-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/112958 |
| * init.c (__gnat_error_handler) [__FreeBSD__]: Fix typo. |
| |
| 2025-04-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/112877 |
| * gcc-interface/utils.cc (create_param_decl): Remove the |
| targetm.calls.promote_prototypes call. |
| |
| 2025-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * gnatvsn.ads: Bump Library_Version to 16. |
| |
| 2025-04-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/119643 |
| * sem_ch8.adb (Inherit_Renamed_Profile): Add guard against the |
| peculiarities of Natural and Positive. |
| |
| 2025-04-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.cc (convert) <POINTER_TYPE>: Use fold_convert |
| to convert between thin pointers. If the source is a thin pointer |
| with zero offset from the base and the target is a pointer to its |
| array, displace the pointer after converting it. |
| * gcc-interface/utils2.cc (build_unary_op) <ATTR_ADDR_EXPR>: Use |
| fold_convert to convert the address before displacing it. |
| |
| 2025-04-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/a-ngcoar.adb (Eigensystem): Adjust notation and fix the |
| layout of the real symmetric matrix in the main comment. Adjust |
| the layout of the associated code accordingly and correctly turn |
| the 2Nx1 real vectors into Nx1 complex ones. |
| (Eigenvalues): Minor similar tweaks. |
| * libgnat/a-ngrear.adb (Jacobi): Minor tweaks in the main comment. |
| Adjust notation and corresponding parameter names of functions. |
| Fix call to Unit_Matrix routine. Adjust the comment describing |
| the various kinds of iterations to match the implementation. |
| |
| 2025-03-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): Add pragma |
| Linker_Constructor for the procedure. |
| |
| 2025-03-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/119440 |
| * gcc-interface/Make-lang.in (GCC_LINK): Filter out -pie in stage 1 |
| (GCC_LLINK): Likewise. |
| * gcc-interface/Makefile.in (COMPILER): Delete and replace by CC. |
| (COMPILER_FLAGS): Delete. |
| (ALL_COMPILERFLAGS): Delete and replace by ALL_CFLAGS. |
| (ALL_ADAFLAGS): Move around. |
| (enable_host_pie): New substituted variable. |
| (LD_PICFLAG): Likewise. Do not add it to TOOLS_LIBS. |
| (LIBIBERTY): Test enable_host_pie. |
| (LIBGNAT): Likewise and use libgnat_pic.a if yes. |
| (TOOLS_FLAGS_TO_PASS): Pass $(PICFLAG) under CFLAGS & $(LD_PICFLAG) |
| under LDFLAGS. Also pass through ADA_CFLAGS. |
| (common-tools): Add $(ALL_CFLAGS) $(ADA_CFLAGS) to the --GCC string |
| of $(GNATLINK) commands. |
| (../../gnatdll$(exeext)): Likewise. |
| (gnatmake-re): Likewise. |
| (gnatlink-re): Likewise. |
| (gnatlib-shared-dual): Remove all the object files at the end. |
| |
| 2025-03-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gnatvsn.adb (Gnat_Free_Software): Fix message formatting. |
| |
| 2025-03-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Record_Subtype>: Set |
| the may_alias attribute if a specific GCC type is built. |
| |
| 2025-03-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gen_il-gen-gen_nodes.adb (N_Formal_Package_Declaration): Use |
| N_Declaration instead of Node_Kind as ancestor. |
| * sem_ch12.adb (Get_Formal_Entity): Remove obsolete alternative. |
| (Instantiate_Formal_Package): Take into account the abbreviated |
| instances in the main loop running over the actuals of the local |
| package created for the formal package. |
| |
| 2025-02-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/118731 |
| * sem_aggr.adb (Resolve_Iterated_Association): Add missing guard. |
| |
| 2025-02-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/118712 |
| * sem_warn.adb (Check_References): Deal with small adjustments of |
| references. |
| |
| 2025-01-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/utils.cc (gnat_pushdecl): Clear TREE_PUBLIC on |
| functions really nested in another function. |
| |
| 2025-01-22 Arsen Arsenović <arsen@aarsen.me> |
| |
| * gcc-interface/lang-specs.h: Replace %{nostdinc*} %{nostdlib*} |
| with %{nostdinc} %{nostdlib}. |
| |
| 2025-01-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/118459 |
| * libgnat/s-objrea.ads (Object_Arch): Add S390 and RISCV. |
| * libgnat/s-objrea.adb (EM_S390): New named number. |
| (EM_RISCV): Likewise. |
| (ELF_Ops.Initialize): Deal with EM_S390 and EM_RISCV. |
| (Read_Address): Deal with S390 and RISCV. |
| |
| 2025-01-13 Pascal Obry <obry@adacore.com> |
| |
| * doc/gnat_ugn/platform_specific_information.rst: Update. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2025-01-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Restore calls |
| to Preanalyze_Spec_Expression that were replaced by calls to |
| Preanalyze_And_Resolve. Add documentation. |
| (Check_Aspect_At_Freeze_Point): Ditto. |
| |
| 2025-01-13 Pascal Obry <obry@adacore.com> |
| |
| * mdll.adb: For the created DLL to be relocatable we do not want to use |
| the base file name when calling gnatdll. |
| * gnatdll.adb: Removes option -d which is not working anymore. And |
| when using a truly relocatable DLL the base-address has no real |
| meaning. Also reword the usage string for -d as we do not want to |
| specify relocatable as gnatdll can be used to create both |
| relocatable and non relocatable DLL. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/a-strunb.ads: Remove redundant parentheses inside NOT |
| operators. |
| |
| 2025-01-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_util.adb (Build_Actual_Subtype_Of_Component): No action |
| under preanalysis. |
| * sem_ch5.adb (Set_Assignment_Type): If the right-hand side contains |
| target names, expansion has been disabled to prevent expansion that |
| might move target names out of the context of the assignment statement. |
| Restore temporarily the current compilation mode so that the actual |
| subtype can be built. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * par-ch4.adb (P_Factor): Warn when the operand of a unary operator |
| doesn't require parentheses. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * libgnat/s-genbig.adb: Remove redundant parentheses in comments. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb, exp_dist.adb, exp_imgv.adb, exp_util.adb, |
| libgnarl/a-reatim.adb, libgnat/a-coinve.adb, libgnat/a-nbnbre.adb, |
| libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb, libgnat/a-ngrear.adb, |
| libgnat/a-strbou.ads, libgnat/a-strfix.ads, libgnat/a-strsea.adb, |
| libgnat/a-strsea.ads, libgnat/a-strsup.ads, |
| libgnat/a-strunb__shared.ads, libgnat/g-alleve.adb, |
| libgnat/g-spitbo.adb, libgnat/s-aridou.adb, libgnat/s-arit32.adb, |
| libgnat/s-dourea.ads, libgnat/s-genbig.adb, libgnat/s-imager.adb, |
| libgnat/s-statxd.adb, libgnat/s-widthi.adb, sem_attr.adb, sem_ch10.adb, |
| sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_dim.adb, sem_prag.adb, |
| sem_res.adb, uintp.adb: Remove redundant parentheses inside NOT and ABS |
| operators. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * par-ch3.adb (P_Discrete_Range): Detect redundant parentheses in the |
| lower bound like in the upper bound. |
| |
| 2025-01-13 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Aggregate): Add another condition to prevent rewriting |
| an aggregate whose type is an array of characters, testing for the presence of |
| predicates on the component type. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch4.adb: (Expand_N_Not_In): Preserve Alternatives in expanded |
| membership operator just like preserving Right_Opnd (though only |
| one of these fields is present at a time). |
| * par-ch4.adb (P_Membership_Test): Remove redundant setting of fields |
| to their default values. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * par-ch3.adb (P_Discrete_Range): Replace N_Subexpr, which was catching |
| all subexpressions, with kinds that catch nodes that require |
| parentheses to become "simple expressions". |
| |
| 2025-01-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-valrea.adb (Large_Powfive) [2 parameters]: Add a couple |
| of additional comments. |
| |
| 2025-01-13 Piotr Trojanek <trojanek@adacore.com> |
| |
| * par-ch4.adb (P_Relation): Prevent Expr_Form to be overwritten when |
| parsing the raise expression itself. |
| (P_Simple_Expression): Fix manipulation of Expr_Form. |
| |
| 2025-01-10 squirek <squirek@adacore.com> |
| |
| * accessibility.adb: |
| (Innermost_master_Scope_Depth): Add special case for expressions |
| within library level subprograms. |
| |
| 2025-01-10 Marc Poulhiès <poulhies@adacore.com> |
| |
| * env.h: Remove last empty line. |
| |
| 2025-01-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * contracts.adb (Build_Call_Helper_Decl): Tune whitespace. |
| * exp_attr.adb (Analyze_Attribute): Set Of_Present while |
| creating the node; reorder setting Subtype_Indication to match the |
| syntax order. |
| * exp_ch3.adb (Build_Equivalent_Aggregate): Likewise for Box_Present |
| and Expression properties. |
| * sem_ch12.adb (Analyze_Formal_Derived_Type): Set type properties |
| when creating the nodes. |
| * sem_ch3.adb (Check_Anonymous_Access_Component): Likewise. |
| |
| 2025-01-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gen_il-gen-gen_nodes.adb (Gen_Nodes): Change Is_Effective_Use_Clause |
| from syntactic to semantic property. |
| |
| 2025-01-10 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Predef_Spec_Or_Body): Add explicit parameter |
| associations, because now the Empty_List actual parameter would be |
| confused as being for the Aspect_Specifications formal parameter. |
| * gen_il-gen-gen_nodes.adb (Gen_Nodes): Reorder syntactic fields. |
| * sem_util.adb (Declare_Indirect_Temp): Add explicit parameter |
| association, because now the parameter will be interpreted as a |
| subpool handle name. |
| |
| 2025-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/18765 |
| * debug.adb (d_q): Document new usage. |
| * sem_ch6.adb (New_Overloaded_Entity): Apply the special processing |
| to all equality operators whose base result type is Boolean, but do |
| not enforce the new Ada 2012 freezing rule if the result type is a |
| proper subtype of it and the -gnatd_q switch is specified. |
| |
| 2025-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/118274 |
| * sem_ch4.adb (Check_Arithmetic_Pair.Has_Fixed_Op): Use the original |
| node of the operator to identify the case of an expanded name whose |
| prefix is the package Standard. |
| |
| 2025-01-09 squirek <squirek@adacore.com> |
| |
| * libgnat/a-comutr.adb, libgnat/a-comutr.ads: |
| Move the declarations of iterator types into the specification and |
| add additional comments. |
| |
| 2025-01-09 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.adb (Freeze_Expr_Types): Reverse patch; that is, restore |
| calls to Preanalyze_Spec_Expression instead of Preanalyze_And_Resolve |
| for the sake of consistency with Analyze_Expression_Function. Patch |
| suggested by Eric Botcazou. |
| * exp_put_image.adb (Image_Should_Call_Put_Image): Ensure that |
| function Defining_Identifier is called with a proper node to |
| avoid internal assertion failure. |
| |
| 2025-01-07 Marc Poulhiès <poulhies@adacore.com> |
| |
| * libgnat/a-calcon.ads: Adjust. |
| * libgnat/a-calend.ads: Adjust. |
| |
| 2025-01-07 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): |
| Drop g-cpp, g-cppexc and g-cppstd. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc-interface/trans.cc (Call_to_gnu): Always use the return slot |
| optimization if the parent node is an initialization statement. |
| (gnat_to_gnu) <N_Assignment_Statement>: Build an INIT_EXPR instead |
| of a MODIFY_EXPR if this is an initialization statement. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gen_il-fields.ads (Opt_Field_Enum): Remove flag. |
| * gen_il-gen-gen_nodes.adb (N_Attribute_Definition_Clause): Remove |
| field. |
| * sem_ch13.adb (Validate_Address_Clauses): Remove read of the flag. |
| * sinfo.ads (Address_Warning_Posted): Remove flag description. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Packed_Array_Aggregate_Handled): Remove declaration |
| and handler for Not_Handled local exception. Check the return value |
| of Get_Component_Val instead. |
| (Get_Component_Val): Return No_Uint instead of raising Not_Handled. |
| |
| 2025-01-07 Javier Miranda <miranda@adacore.com> |
| |
| * exp_util.adb (Insert_Actions): Document behavior under strict |
| preanalysis. |
| * sem.ads (In_Strict_Preanalysis): New subprogram. |
| (Preanalysis_Active): Replace 'and' operator by 'and then'. |
| * sem.adb (In_Strict_Preanalysis): Ditto. |
| * sem_attr.adb (Check_Dereference): Replace In_Spec_Expression |
| occurrence by call to Preanalysis_Active, and document it. |
| (Resolve_Attribute [Atribute_Access]): Ditto. |
| (Eval_Attribute): No evaluation under strict preanalysis. |
| (Validate_Static_Object_Name): No action under strict preanalysis. |
| * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Replace |
| calls to Preanalyze_Spec_Expression by calls to Preanalyze_And_Resolve. |
| (Check_Aspect_At_Freeze_Point): Ditto. |
| (Resolve_Aspect_Expressions [Dynamic/Static/Predicate aspects]): Code |
| cleanup adjusting the code to emulate Preanalyze_And_Resolve, instead |
| of Preanalyze_Spec_Expression. |
| (Resolve_Aspect_Expressions [CPU/Interrupt_Priority/Priority/ |
| Storage_Size aspects]): Replace calls to Preanalyze_Spec_Expression |
| by call to Preanalyze_And _Resolve. |
| * sem_ch3.adb (Analyze_Object_Declaration): Replace In_Spec_Expression |
| occurrence by call to Preanalysis_Active. |
| (Find_Type_Of_Object): Add documentation. |
| * sem_ch4.adb (Analyze_Case_Expression): Replace In_Spec_Expression |
| occurrence by call to Preanalysis_Active. |
| * sem_ch6.adb (Analyze_Expression_Function): Minor code reorganization |
| moving the code preanalyzing the expression after the new body has |
| been inserted in the tree to ensure that its Parent attribute is |
| available for preanalysis. |
| * sem_cat.adb (Validate_Static_Object_Name): No action under strict |
| preanalysis. |
| * sem_elab.adb (Check_For_Eliminated_Subprogram): Replace In_Spec_Expression |
| occurrence by call to Preanalysis_Active. |
| * sem_eval.adb (Eval_Intrinsic_Call [Name_Enclosing_Entity]): Ditto. |
| * sem_elim.adb (Check_For_Eliminated_Subprogram): Ditto. |
| * sem_res.adb (Resolve_Entity_Name): Ditto. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * repinfo-input.adb (Decode_Name, Read_Name_With_Prefix): Use constant |
| overlay with pragma Import. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_disp.adb (Write_DT): Add guards that prevent crashes on illegal |
| node numbers. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * diagnostics-pretty_emitter.adb (Get_Last_Line_Char): Fix whitespace. |
| * sem_aggr.adb (Resolve_Array_Aggregate): Fix style. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_util.adb (Is_Null_Record_Definition): Remove check for |
| Component_List being present after using it; replace check for |
| component item being a component declaration with an assertion; |
| fix style in comment. |
| |
| 2025-01-07 Ronan Desplanques <desplanques@adacore.com> |
| |
| * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Fix abort |
| deferral. |
| |
| 2025-01-07 Steve Baird <baird@adacore.com> |
| |
| * gen_il-fields.ads: add new Renames_Limited_View field. |
| * gen_il-gen-gen_entities.adb: add Renames_Limited_View flag for |
| packages. |
| * einfo.ads: add comment documenting Renames_Limited_View flag. |
| * sem_ch8.adb (Analyze_Package_Renaming): Set new Renames_Limited_View |
| flag. Test new Renames_Limited_View flag instead of calling |
| Has_Limited_With. If Has_Limited_With is True, that just means |
| that somebody, sometime during this compilation needed to |
| reference the limited view of the package; so that function |
| returns True too often to be used here. |
| (Find_Expanded_Name): Test new Renames_Limited_View flag instead of |
| calling Has_Limited_With. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * contracts.adb (Inherit_Pragma): Don't set flag Is_Inherited_Pragma. |
| * gen_il-fields.ads (Opt_Field_Enum): Remove field identifier. |
| * gen_il-gen-gen_nodes.adb (N_Pragma): Remove field from node. |
| * sinfo.ads (Is_Inherited_Pragma): Remove field description. |
| (N_Pragma): Remove field reference. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Attribute): Replace runtime conversion |
| with existing constant. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): Simplify logic. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_attr.adb (Expand_N_Attribute_Reference): Remove explicit |
| handling of attributes related to Ada 2012 iterators. |
| * sem_attr.adb (Analyze_Attribute, Eval_Attribute): Likewise; |
| move attribute Reduce according to alphabetic order. |
| * snames.adb-tmpl (Get_Attribute_Id): Add support for new internal |
| attributes. |
| * snames.ads-tmpl: Recognize names of new internal attributes. |
| (Attribute_Id): Recognize new internal attributes. |
| (Internal_Attribute_Id): Likewise. |
| (Is_Internal_Attribute_Name): Avoid duplication in comment. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * accessibility.adb (First_Selector): Remove redundant and locally |
| inconsistent parenthesis. |
| (Check_Return_Construct_Accessibility): Remove qualifier from list |
| operation. |
| * sem_util.adb (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): |
| Likewise. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch7.ads (Store_After_Actions_In_Scope_Without_Analysis): New |
| procedure declaration. |
| * exp_ch7.adb (Store_New_Actions_In_Scope): New procedure. |
| (Store_Actions_In_Scope): Call Store_New_Actions_In_Scope when the |
| target list is empty. |
| (Store_After_Actions_In_Scope_Without_Analysis): New procedure body. |
| * exp_aggr.adb (Expand_Container_Aggregate): For a declaration that |
| is wrapped in a transient scope, also defer the analysis of the new |
| code until after the declaration is analyzed. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-powflt.ads (Maxpow_Exact): Minor comment fix. |
| * libgnat/s-powlfl.ads (Maxpow_Exact): Likewise. |
| * libgnat/s-powllf.ads (Maxpow_Exact): Likewise. |
| * libgnat/s-valrea.adb (Large_Powfive) [1 parameter]: Exit the loop |
| as soon as the result saturates to +Inf. |
| (Large_Powfive) [2 parameters]: Likewise. |
| |
| 2025-01-07 Alexandre Oliva <oliva@adacore.com> |
| |
| * libgnat/system-vxworks-ppc-rtp-smp.ads: Drop |
| --specs=vxworks-ppc-link.spec from Linker_Options. |
| * vxworks-smp-ppc-link.spec: Delete. |
| |
| 2025-01-07 Ronan Desplanques <desplanques@adacore.com> |
| |
| * atree.adb (Parent_Or_List_Containing): New function. |
| * atree.ads (Parent_Or_List_Containing): Likewise. |
| * gen_il-fields.ads: Add new field. |
| * gen_il-gen-gen_nodes.adb (Gen_Nodes): Extend handled sequence of |
| statements node. |
| * par-ch11.adb (P_Handled_Sequence_Of_Statements, P_Exception_Handler): |
| Add new syntactic construct. |
| * par-ch5.adb (P_Sequence_Of_Statements): Likewise. |
| * par.adb: Likewise. |
| * par-util.adb (Check_Future_Keyword): Warn that "finally" becomes a |
| reserved word with extensions. |
| * scans.adb (Initialize_Ada_Keywords): Add new reserved word. |
| * snames.adb-tmpl: Likewise. |
| * snames.ads-tmpl: Likewise. |
| * scans.ads: Likewise. |
| * sem_ch11.adb (Analyze_Handled_Statements): Adapt to new node field. |
| * sem_ch5.adb (Analyze_Exit_Statement): Add legality check. |
| (Analyze_Goto_Statement): Likewise. |
| * sem_ch6.adb (Analyze_Return_Statement): Likewise. |
| * sinfo-utils.adb (Lowest_Common_Ancestor, Destroy_Element): New |
| subprograms. |
| * sinfo-utils.ads (Lowest_Common_Ancestor): New function. |
| * sinfo.ads: Add documentation for new field. |
| * xsnamest.adb: Fix typo in comment. |
| * doc/gnat_rm/gnat_language_extensions.rst: Document new extension. |
| * warnsw.adb: Add new option. |
| * warnsw.ads: Likewise. |
| * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Add abort |
| deferral to finally part. |
| * gnat_rm.texi: Regenerate. |
| * gnat_ugn.texi: Regenerate. |
| * gcc-interface/trans.cc (Handled_Sequence_Of_Statements_to_gnu): |
| Handle finally statements. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Expand_Array_Aggregate): Do not exclude aggregates |
| of bit-packed array types in assignments from in-place expansion. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Reject |
| references to attribute Result. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Exceptional_Cases_In_Decl_Part): Move check |
| from GNATprove backend to GNAT frontend. |
| |
| 2025-01-07 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Analyze_Exceptional_Contract, Analyze_Variant): Fix |
| comments. |
| |
| 2025-01-07 Steve Baird <baird@adacore.com> |
| |
| * exp_put_image.adb (Image_Should_Call_Put_Image): Cope with the case |
| where the attribute prefix for an Image attribute reference |
| denotes an Itype constructed for a fixed point type. Calling |
| Has_Aspect with such an Itype misses applicable aspect |
| specifications; we need to look on the right list. This comes up |
| if the prefix of the attribute reference is |
| Some_Fixed_Point_Type'Base. |
| |
| 2025-01-07 Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch12.adb (Analyze_One_Association): In the case of a formal type |
| that has a Default_Subtype_Mark that does not have its Entity field set, |
| this means the default refers to another formal type of the same generic |
| formal part, so locate the matching subtype in the Result_Renamings and |
| set Match's Entity to that subtype prior to the call to Instantiate_Type. |
| (Validate_Formal_TypeDefault.Reference_Formal): Add test of Entity being |
| Present, to prevent blowups on End_Label ids (which don't have Entity set). |
| (Validate_Formal_Type_Default.Validate_Derived_Type_Default): Apply |
| Base_Type to Formal. |
| (Validate_Formal_Type_Default): Guard interface-related semantic checks |
| with a test of Is_Tagged_Type. |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * repinfo.adb (List_GCC_Expression.Print_Expr) <Cond_Expr>: Do not |
| output the final "end". |
| |
| 2025-01-07 Johannes Kanig <kanig@adacore.com> |
| |
| * gnat1drv.adb: (SPARK_Library_Warning): preserve Warning_Doc_Switch |
| |
| 2025-01-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Allocator_Expression): Do not build a cleanup |
| if restriction No_Exception_Propagation is active. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/118247 |
| * gcc-interface/Make-lang.in (GNATTOOLS_CROSS_MV): Copy gnatbind |
| instead of moving it. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of |
| the index type to find the type used to compute the length. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * libgnat/s-finpri.ads: Remove clause for Ada.Finalization. |
| (Finalization_Collection): Change to limited private type with the |
| Finalizable aspect. |
| (Initialize): Remove "overriding" keyword. |
| (Finalize): Likewise. |
| * libgnat/s-finpri.adb (Initialize): Likewise. |
| (Finalize): Likewise. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117569 |
| * sem_ch4.adb (Analyze_Indexed_Component_Form): Do not rewrite the |
| node as a type conversion if it is the current instance of a type |
| in a generic unit. |
| * sem_ch8.adb (Find_Selected_Component): Restrict the special case |
| of the current instance of a type to a generic unit. |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * libgnat/s-imagef.adb (Set_Image_Integer): |
| Change "RM A.3.10" to be "RM A.10.9". |
| |
| 2025-01-06 Alexandre Oliva <oliva@adacore.com> |
| |
| * libgnat/g-cppexc.adb (Convert_Caught_Object): Move... |
| * libgnat/g-cstyin.adb (Convert_Caught_Object): ... here. |
| Use object call notation. |
| (strcmp): New. |
| (Char_Arr, CharPtr, Char_Pointer, To_chars_ptr): Drop. Do not |
| import Interfaces.C.Pointers. |
| (To_Pointer): Convert from System.Address. |
| (Name_Starts_With_Asterisk): Rename local variable. |
| (Name_Past_Asterisk): Rewrite with System.Address and strcmp. |
| Import System.Storage_Elements. |
| (Equals): Use strcmp. |
| (Before): Fix logic error. Use strcmp. |
| (Name): Move conversion to String... |
| * libgnat/g-cppstd.adb (Name): ... here. Import |
| Interfaces.C.Strings. |
| * libgnat/g-cppstd.ads (Type_Info_Ptr): Disable heap |
| finalization. |
| * libgnat/g-cstyin.ads (Name): Change return type. |
| |
| 2025-01-06 Claire Dross <dross@adacore.com> |
| |
| * aspects.ads: Add aspect Aspect_Exit_Cases. |
| * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): Handle Exit_Cases. |
| (Expand_Subprogram_Contract): Idem. |
| * einfo-utils.adb (Get_Pragma): Allow Pragma_Exit_Cases. |
| * einfo-utils.ads (Get_Pragma): Idem. |
| * exp_prag.adb (Expand_Pragma_Exit_Cases): Ignore the pragma, currently we don't expand it. |
| * exp_prag.ads (Expand_Pragma_Exit_Cases): Idem. |
| * inline.adb (Remove_Aspects_And_Pragmas): Add Exit_Cases to the list. |
| (Remove_Items): Idem. |
| * par-prag.adb (Last_Arg_Is_Reason): Idem. |
| * sem_ch12.adb: Idem. |
| * sem_ch13.adb: Idem. |
| * sem_util.adb: Idem. |
| * sem_util.ads: Idem. |
| * sinfo.ads: Idem. |
| * snames.ads-tmpl: Add names Name_Exit_Cases, Name_Exception_Raised, and Name_Normal_Return |
| as well as pragma Pragma_Exit_Cases. |
| * sem_prag.adb (Analyze_Exit_Cases_In_Decl_Part): Make sure that a |
| pragma or aspect Exit_Cases is well formed. |
| (Analyze_Pragma): Make sure that a pragma or aspect Exit_Cases is at the right place. |
| * sem_prag.ads (Analyze_Exit_Cases_In_Decl_Part): Declaration. |
| * doc/gnat_rm/implementation_defined_pragmas.rst: Document the Exit_Cases pragma. |
| * doc/gnat_rm/implementation_defined_aspects.rst: Document the Exit_Cases aspect. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * sem_util.adb (Copy_Subprogram_Spec): When copying |
| an N_Defining_Operator_Symbol, create an |
| N_Defining_Operator_Symbol rather than an N_Defining_Identifier. |
| This will cause Lib.Xref to "skip the initial quote for |
| navigation purposes" (as per comments in Lib.Xref body). |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_aggr.adb (Case_Table_Type): Fix reference in comment. |
| (In_Place_Assign_OK): Move declaration around. |
| (Is_Build_In_Place_Aggregate_Return): Likewise and adjust. |
| (Expand_Array_Aggregate): Streamline for the sake of consistency. |
| (Aggr_Assignment_OK_For_Backend): Remove reference to Gigi/gcc. |
| (Backend_Processing_Possible): Likewise. |
| (Expand_Array_Aggregate): Add comment. |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads (Shift_Count_OK): Update comments. |
| (Is_Power_Of_2_For_Shift): Likewise. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * debug.adb (dQ): Document usage. |
| * exp_ch4.ads (Build_Cleanup_For_Allocator): New declaration. |
| * exp_ch4.adb (Build_Cleanup_For_Allocator): New procedure. |
| (Expand_Allocator_Expression): Build a cleanup to deallocate the |
| memory when the evaluation of the expression raises an exception. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise. |
| * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not generate the |
| detachment if the deallocation is for the cleanup of an allocator. |
| * gen_il-fields.ads (Opt_Field_Enum): Add For_Allocator. |
| * gen_il-gen-gen_nodes.adb (N_Free_Statement): Likewise. |
| * sinfo.ads (For_Allocator): Document usage on N_Free_Statement. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117956 |
| * sem_util.adb (Is_Known_On_Entry): Be prepared for constants coming |
| from a renaming declaration. |
| |
| 2025-01-06 Tonu Naks <naks@adacore.com> |
| |
| * adaint.c (__gnat_locate_exec_on_path): modify function signature |
| |
| 2025-01-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_prag.adb (Resolve_State): Continue ordinary processing. |
| |
| 2025-01-06 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch4.adb (Try_Object_Operation): if no candidate interpretation |
| matches the context, redo the same analysis with Report_Error True |
| to report the error. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch5.adb (Expand_Assign_Array): Bail out for controlled |
| components if the RHS is a function call and the assignment has |
| the No_Ctrl_Actions flag set. |
| |
| 2025-01-06 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-json_utils.adb: Add new method |
| Write_Boolean_Attribute. |
| * diagnostics-json_utils.ads: Likewise. |
| * diagnostics-sarif_emitter.adb (Print_Invocations): print |
| the executionSuccesful property value without extra quotes. |
| |
| 2025-01-06 Viljar Indus <indus@adacore.com> |
| |
| * diagnostics-sarif_emitter.adb (Print_Rule): Remove printing |
| of the level attribute since it does not match the SARIF schema. |
| |
| 2025-01-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * gen_il-gen.adb (Put_Tables): Add "not null" to the generated code. |
| * rtsfind.adb (Cstring_Ptr): Same for table with predefined RE_Id |
| error messages. |
| * impunit.adb (Aunit_Record): Same for array of alternative unit names. |
| |
| 2025-01-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * opt.ads (Ada_Version_Runtime): Now a constant, since it cannot |
| and should never be modified. |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * par-ch10.adb (P_Compilation_Unit): Give an error for "is null". |
| * sem_ch10.adb (Analyze_Subunit): Remove check for "is null" |
| as a subunit. |
| * sem_ch6.adb (Analyze_Subprogram_Declaration): |
| Remove check for "is null" as a library unit. |
| |
| 2025-01-06 Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Expression_Function): Set the parent of |
| the new node to be the parent of the original to get the proper |
| context, which is needed for complete error reporting and for |
| semantic analysis. Patch suggested by Eric Botcazou. |
| |
| 2025-01-06 Alexandre Oliva <oliva@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * Makefile.rtl (LLVM_BUILD): Define based on LLVM_CONFIG. |
| (GNATRTL_NONTASKING_OBJS): Make g-cpp, g-cppstd, and g-cstyin |
| conditional on -gcc or -arm EH, and on no LLVM_BUILD. |
| * raise-gcc.c (GXX_EH_INTEROP): Define as 0 on gnat-llvm or |
| CERT, and 1 otherwise. |
| (__gnat_get_cxx_dependent_exception) Omit on !GXX_EH_INTEROP. |
| (__gnat_maybe_get_cxx_dependent_exception): Likewise. |
| (__gnat_get_cxx_exception_type_info): Likewise. |
| (__gnat_obtain_caught_object): Likewise. |
| (is_handled_by): Omit eid parameter and G++ interop on |
| !GXX_EH_INTEROP. Adjust callers. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Returns_By_Ref): Fix description. |
| * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not |
| adjust the component manually (if need be), set No_Finalize_Actions |
| instead of No_Ctrl_Actions for this purpose. Do not adjust when |
| the expression is a naked function call. |
| * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Document the quirks of |
| the function. Assert that the LHS of the assignment does not have |
| side effects and replace calls to Duplicate_Subexpr_No_Checks with |
| calls to New_Copy_Tree. Rename local variable Asn to New_N. |
| (Expand_N_Assignment_Statement): In the tagged or controlled record |
| case, do remove side effects from both operands on entry. Remove |
| them in the controlled record case, except if the RHS is a function |
| call and the assignment has the No_Ctrl_Actions flag set. |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out when the parent |
| node is an assignment statement with the No_Ctrl_Actions flag set. |
| * sem_util.adb (Statically_Different): Return True for a function |
| call that does not return its result by reference. |
| * sinfo.ads (No_Ctrl_Actions): Adjust description and add a note for |
| the code generator. |
| (No_Finalize_Actions): Likewise. |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * gen_il-gen.adb: Fix too-long line. |
| |
| 2025-01-06 Tonu Naks <naks@adacore.com> |
| |
| * adaint.c: void parameter on non-windows platforms |
| |
| 2025-01-06 Bob Duff <duff@adacore.com> |
| |
| * gen_il-internals.ads: Split Fields field into two fields |
| Imm_Fields and Fields. |
| * gen_il-gen.adb: Modify the field-inheritance |
| algorithm to inherit at each level of the type hierarchy, |
| rather than just inheriting into concrete types. |
| For example, if C is a concrete type derived from B, |
| which is in turn derived from A, we now set the Fields |
| of B to include those of A. (We had always set the Fields |
| of C to include those of A and B, and we still do that.) |
| (Compute_Fields_For_One_Type): Detect cases where a given |
| field is declared for all descendants of a given abstract |
| type, in which case we should consider declaring it in |
| the abstract type, and inheriting it in those descendants. |
| (Exception_To_Inheritance_Rule): These are the cases where |
| we could inherit, but we don't want to. |
| * gen_il-gen-gen_nodes.adb: Move fields up the type hierarchy, |
| so they are inherited instead of being defined separately. |
| * gen_il-gen-gen_entities.adb: Likewise. |
| |
| 2025-01-06 Viljar Indus <indus@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Subprogram_Body_Helper): |
| Exchange_Limited_Views also in Ada 2005. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch6.adb (Expand_Call_Helper): Call Ultimate_Alias for the |
| detection of calls to subprograms specified for Constant_Indexing. |
| * exp_util.adb (Is_Indexed_Container): Likewise. |
| (Is_Iterated_Container): Likewise for Default_Iterator. |
| |
| 2025-01-06 Ronan Desplanques <desplanques@adacore.com> |
| |
| * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix markup. |
| * gnat_ugn.texi: Regenerate. |
| |
| 2025-01-06 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch13.adb (Validate_Unchecked_Conversions): Remove detection of |
| null arrays; remove tests for sizes being present, which are redundant |
| after calling Known_Static_RM_Size. |
| |
| 2025-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/117936 |
| * doc/gnat_rm/implementation_defined_pragmas.rst |
| (Unimplemented_Unit): Adjust the description of the error message. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-01-05 Estevan Castilho (Tevo) <estevan.cps@gmail.com> |
| |
| * libgnarl/s-taprop__dummy.adb: Remove use clause for |
| System.Parameters. |
| (Unlock): Remove Global_Lock formal parameter. |
| (Write_Lock): Likewise. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb, exp_ch4.adb, exp_disp.adb, inline.adb: Remove explicit |
| actual parameter Null_Exclusion_Present equal False. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb, exp_disp.adb: Remove explicit actual parameter |
| Constant_Present equal False; tune comments. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb, exp_ch9.adb, exp_dist.adb, exp_imgv.adb, exp_util.adb, |
| sem_dist.adb: Remove explicit actual parameter Aliased_Present equal |
| False; tune comments and whitespace. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch5.adb (Check_Call): Reuse Get_Called_Entity. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Check_Array_Type): Remove extra call. |
| * sem_util.adb (Static_Boolean): Likewise. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_aggr.adb (Others_Check): Reuse List_Length; tune whitespace. |
| * exp_ch3.adb (Constrain_Array): Remove counting of constraints. |
| * exp_disp.adb (Make_DT): Use Elist utility routines; tune whitespace. |
| * sem_ch12.adb (Formal_Dimensions): Reuse List_Length. |
| (Valid_Default_Attribute): Reuse Number_Formals. |
| * sem_prag.adb (Process_Convention): Likewise. |
| * sem_util.adb (Normalize_Actuals): Likewise. |
| (Check_Function_Writable_Actuals): Reuse List_Length. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * contracts.adb (Create_Generic_Contract): Remove calls to Present. |
| * sem_util.adb (Normalize_Actuals): Likewise. |
| |
| 2025-01-03 Bob Duff <duff@adacore.com> |
| |
| * sem_util.adb (Append_Entity_Name): Do not skip the |
| simple name for a compilation unit (which includes |
| the case of specless subprogram bodies). |
| |
| 2025-01-03 Tucker Taft <taft@adacore.com> |
| |
| * pprint.adb (Expression_Image): Adjust and improve comments |
| to match style recommendations, and change name of subtype |
| from Not_Associative to Non_Associative, in response to |
| code review. |
| |
| 2025-01-03 Tucker Taft <taft@adacore.com> |
| |
| * pprint.adb (Expression_Image): In local function Expr_Name |
| add a No_Parens flag and define a subtype Not_Associative |
| to represent the short-circuit operations and And/Or/Xor. |
| Insert parentheses to separate the subexpressions when |
| different "Not_Associative" operations occur in a |
| sequence. |
| |
| 2025-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (BIP_Initialization_Call): Adjust description. |
| * exp_ch4.adb (Expand_N_Case_Expression): Adjust commentary. |
| (Expand_N_If_Expression): Likewise. |
| * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): |
| Set BIP_Initialization_Call unconditionally in the definite case. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * uintp.adb (N_Digits): Refine return subtype, since this routine |
| always returns a positive number of digits. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * checks.adb (Generate_Index_Checks): Reuse existing utility routine. |
| * sem_ch4.adb (Analyze_Indexed_Component_Form): Likewise. |
| * sem_prag.adb (Analyze_Pragma): Likewise. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_dist.adb (Assign_Subprogram_Identifier, |
| Reserve_NamingContext_Methods): Simplify. |
| * osint.adb (Append_Suffix_To_File_Name, Find_File, Get_Directory, |
| Object_File_Name, Strip_Directory): Likewise. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_res.adb (Resolve_Alocator): Move unrelated code out of a declare |
| block. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * exp_ch3.adb (Search_Access_Discriminant, Search_Current_Instance, |
| Search_Internal_Call): Use traversal function instead of traversal |
| procedure and remove associated global variables. |
| * exp_util.adb (Search_Calls): Likewise. |
| * sem_prag.adb (Contains_Loop_Entry): Likewise. |
| * sem_util.adb (Mentions_Post_State): Likewise. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_attr.adb (Eval_Attribute): Fix comment for attribute Image. |
| * tbuild.adb (Make_SC): Remove extra whitespace. |
| |
| 2025-01-03 Alexandre Oliva <oliva@adacore.com> |
| |
| * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-cpp, g-cppstd, |
| and g-cstyin. |
| * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C++): |
| Document class-wide matching and new interfaces. |
| * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Add class-wide |
| exception matching support with 'B' as language identifier. |
| * libgnat/a-exexpr.adb (Setup_Current_Excep): Add Id formal. |
| (Set_Foreign_Occurrence): Likewise. |
| (Propagate_GCC_Exception): Adjust. |
| (Set_Exception_Parameter): Likewise. |
| (Unhandled_Except_Handler): Likewise. |
| * libgnat/g-cpp.ads: New. |
| * libgnat/g-cppexc.adb (Raise_Cpp_Exception): Match 'B' lang id. |
| (Get_Object_Address): New. |
| (Get_Object): Rewrite. |
| (Get_Access_To_Object): New. |
| (Get_Access_To_Tagged_Object): New. |
| (Get_Type_Info): New. |
| (Convert_Caught_Object): New. |
| * libgnat/g-cppexc.ads (Get_Object_Address): New. |
| (Get_Object): Note the Cpp Convention requirement. |
| (Get_Access_To_Object): New. |
| (Get_Access_To_Tagged_Object): New. |
| (Get_Type_Info): New. |
| * libgnat/g-cppstd.adb: New. |
| * libgnat/g-cppstd.ads: New. |
| * libgnat/g-csclex.ads: New, unused. |
| * libgnat/g-cstyin.adb: New. |
| * libgnat/g-cstyin.ads: New. |
| * libgnat/g-excact.adb (Exception_Language): New. |
| (Is_Foreign_Exception): Rewrite. |
| * libgnat/g-excact.ads (Exception_Languages): New. |
| (Exception_Language): New. |
| * libgnat/s-stalib.ads (Lang): Document 'B'. |
| * raise-gcc.c (__gnat_setup_current_excep): Add Exception_Id formal. |
| (CXX_DEPENDENT_EXCEPTION_CLASS): New. |
| (cxx_type_info): New. |
| (__cxa_exception): Rename exceptionType to encompass PrimaryException. |
| (_GNAT_Exception): Drop wrapper. |
| (EID_For): Adjust. |
| (exception_class_eq): Likewise. |
| (__gnat_exception_language_is_cplusplus): New. |
| (__gnat_exception_language_is_ada): New. |
| (__gnat_convert_caught_object): Declare. |
| (__gnat_get_cxx_dependent_exception): New. |
| (__gnat_maybe_get_cxx_dependent_exception): New. |
| (__gnat_get_cxx_exception_type_info): New. |
| (__gnat_obtain_caught_object): New. |
| (is_handled_by): Adjust. [!CERT] Add eid formal, handle dependent |
| exceptions and base-type matches. |
| (get_action_description_for) [!CERT]: Add eid formal. Adjust. |
| (personality_body): Adjust. |
| * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS) [!STAGE1]: |
| Add new g-cpp, g-cppstd, g-cstyin + preexisting g-cppexc |
| and i-cstrin. |
| * gnat-style.texi: Regenerate. |
| * gnat_rm.texi: Regenerate. |
| |
| 2025-01-03 Gary Dismukes <dismukes@adacore.com> |
| |
| * diagnostics-constructors.adb (Make_Default_Iterator_Not_Primitive_Error): |
| Revise message to match message change made in sem_ch13.adb. |
| * freeze.adb (Freeze_Record_Type): Output appropriate aspect name in |
| error message, using Get_Name_String. |
| (Freeze_Entity): For derived types, call Analyze_Aspects_At_Freeze_Point |
| on the parent type, and call Inherit_Nonoverridable_Aspects on the type |
| (for both parent type and any progenitor types). Add with_clause for |
| System.Case_Util. |
| * gen_il-fields.ads: Add Aspect_Subprograms to type Opt_Field_Enum. |
| * gen_il-gen-gen_nodes.adb: Add field Aspect_Subprograms to |
| N_Aspect_Specification nodes. |
| * sem_ch4.adb (Try_Container_Indexing): Remove Find_Indexing_Operations |
| and the code calling it. Add new function Indexing_Interpretations for |
| retrieving the eligible indexing functions from the appropriate aspect's |
| Aspect_Subprograms list and call that instead of Find_Value_Of_Aspect. |
| * sem_ch7.adb (Analyze_Package_Specification): In loop over entities, |
| call Analyze_Aspects_At_Freeze_Point for types that have delayed |
| aspects. |
| * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Add Nonoverridable_Only |
| formal to restrict processing to nonoverridable aspects. |
| (Check_Function_For_Indexing_Aspect): New exported procedure renamed |
| from Check_One_Function and moved to library level. |
| * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Test new formal |
| Nonoverridable_Only formal to skip processing of aspects that are not |
| nonoverridable when the formal is True. Skip the processing for |
| Aspect_Full_Access_Only when Nonoverridable_Only is True. Call |
| Check_Indexing_Functions in the case of indexing aspects (procedure |
| moved from Analyze_Attribute_Definition_Clause to top level). |
| (Analyze_Aspect_Specifications): Locate closest ancestor type with an |
| explicit matching aspect to determine the aspect spec to reference in |
| the error about a nonoverridable aspect not confirming an inherited |
| aspect (skipping intermediate derived parents). Ensures that we retain |
| existing errors flagged on explicit ancestor aspects rather than |
| implicit inherited ones. Change names of variables Parent_Type and |
| Inherited_Aspect to Ancestor_Type and Ancestor_Aspect respectively |
| for clarity. |
| (Analyze_Attribute_Definition_Clause): Move nested subprograms |
| Check_Iterator_Functions and Check_Primitive_Function to top level |
| of package. Move Check_Indexing_Functions (and its nested subprograms) |
| from here to within Analyze_Aspects_At_Freeze_Point (adding some |
| formal parameters and adjusting the code appropriately, and no longer |
| call it from this procedure). |
| (Is_CW_Or_Access_To_CW): Add test for the parent type having the |
| indexing aspect for proper setting of Aspect_Specification_Is_Inherited. |
| Delete "???" comment. |
| (Look_Through_Anon_Access): Remove unneeded tests of Is_Access_Constant |
| and Name_Constant_Indexing, which lead to wrong messages in some cases. |
| (Check_Function_For_Indexing_Aspect): Procedure renamed from |
| Check_One_Function and moved to library level (was nested within |
| Check_Indexing_Functions), plus added formals (including Valid, to |
| check result). Move scope test to beginning, to immediately exclude |
| subprograms not declared immediately within the same scope as the type. |
| Improve several error messages. Add error checking for Constant_Indexing |
| functions. Append the function entity to the Aspect_Subprograms list of |
| the aspect specification. Move code for checking for nonconfirming |
| index aspects and for checking for illegal indexing aspects on full |
| views to Check_Indexing_Functions. |
| (Check_Indexing_Functions): Move procedure Illegal_Indexing from |
| here to within Check_Function_For_Indexing_Aspect. Add a comment |
| to the loop over interpretations about the checking being done as |
| legality rules rather than resolution rules, plus a note referencing |
| AI22-0084. Check for nonconfirming indexing aspects and illegal |
| indexing aspects on full views here rather than in Check_One_Function |
| (now named Check_Function_For_Indexing_Aspect). Remove function |
| Check_One_Function (moved to library level and renamed), and call |
| Check_Function_For_Indexing_Aspect instead. |
| (Check_Inherited_Indexing): Improve spec comment. Remove nested function |
| Same_Chars, and replace call Same_Chars with call to Sem_Util.Same_Name. |
| Replace call to Illegal_Indexing with call to Error_Msg_NE. |
| (Check_One_Function): Unnested from Check_Indexing_Functions, rename |
| to Check_Function_For_Indexing_Aspect, move body to library level, |
| and move declaration to Sem_Ch13 spec. |
| (Analyze_Attribute_Definition_Clause, case Attribute_Default_Iterator): |
| Improve error message related to tagged-type requirement. Suppress call |
| to Check_Iterator_Functions for attribute definition clauses associated |
| with inherited aspects. Remove error checking that is redundant with |
| checking done in Check_Iterator_Functions. |
| (Check_Aspect_At_Freeze_Point, case Attribute_Default_Iterator): Call |
| Check_Iterator_Functions (only if the aspect is not Comes_From_Source). |
| (Check_Iterator_Functions): Procedure unnested from |
| Analyze_Attribute_Definition_Clause. Add formals Typ and Expr. |
| Error messages corrected to say "aspect Default_Iterator" instead of |
| "aspect Iterator". |
| (Valid_Default_Iterator): Improve error message to say "must be |
| a local primitive or class-wide function" instead of "must be |
| a primitive function". |
| (Check_Primitive_Function): Unnested from Analyze_Attribute_Definition_Clause. |
| Add formal Ent. |
| (Rep_Item_Too_Late): Return False when an attribute_definition_clause |
| is not Comes_From_Source, since it was generated by the compiler (such |
| as for an inherited aspect). |
| (Resolve_Aspect_Aggregate): Capture implementation base type. |
| (Valid_Empty): Use implementation base types for result type comparison. |
| (Valid_Add_Named): Use impl base types for comparison of formal's type. |
| (Valid_Add_Unnamed): Use impl base types for comparison of formal's type. |
| (Valid_New_Indexed): Use impl base types for result type comparison. |
| (Validate_Literal_Aspect): Return immediately when aspect does not have |
| Comes_From_Source True (no point in validating inherited aspects). |
| * sem_res.adb (Has_Applicable_User_Defined_Literal): Remove Base_Type |
| comparison and always call Corresponding_Op_Of_Derived_Type for derived |
| types. Add "???" comment about issue with wrapper functions (and |
| indicate that it would be nice to eliminate the call to |
| Corresponding_Primitive_Op). |
| * sem_util.ads (Inherit_Nonoverridable_Aspects): New procedure. |
| (Corresponding_Op_Of_Derived_Type): Update spec comment to indicate |
| return of Ancestor_Op and name changed from Corresponding_Primitive_Op. |
| * sem_util.adb (Check_Inherited_Nonoverridable_Aspects): Fix name in |
| header comment. |
| (Corresponding_Op_Of_Derived_Type): Move declaration of Typ down with |
| other local variables. Remove Assert that doesn't apply in some cases. |
| Simply return Ancestor_Op when it isn't a primitive (it can be a |
| class-wide op). Function name changed from Corresponding_Primitive_Op. |
| (Find_Untagged_Type_Of): Add test of Is_Type (E) as a guard for checking |
| Direct_Primitive_Operations. Remove Assert (False), and return Empty |
| when the primitive is not found. |
| (Profile_Matches_Ancestor): Change comparisons to use implementation |
| base types of the operations' formal and result types. Add tests for |
| interface ancestors. Revise "???" comment. |
| (Is_Confirming): Simplify name-matching test to use the names associated |
| with the aspects rather than going to the N_Attribute_Definition_Clause |
| nodes (may facilitate elimination of those clauses at some point). |
| (Inherit_Nonoverridable_Aspects): New procedure to traverse the |
| aspects of a derived type's parent type and create inherited versions |
| of the parent type's nonoverridable aspects, identifying the appropriate |
| subprograms for each such inherited aspect. |
| (Inherit_Nonoverridable_Aspect): New procedure nested in |
| Inherit_Nonoverridable_Aspects to inherit individual nonoverridable |
| aspects. Identifies the corresponding subprogram(s) associated with |
| an inherited nonoverridable aspect. In the case of indexing aspects, |
| new eligible indexing functions of the type are also identified here, |
| and the entities of all of the identified subprograms are appended to |
| the aspect's Aspect_Subprograms Elist. Add a "???" comment about this. |
| * sinfo.ads: Add documentation for the new Aspect_Subprograms field. |
| |
| 2025-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Insert_Conditional_Object_Declaration): Create the |
| Master_Node even if the declaration is turned into a renaming. |
| |
| 2025-01-03 Piotr Trojanek <trojanek@adacore.com> |
| |
| * sem_ch3.adb (Array_Type_Declaration): Don't copy parent for an itype |
| created by an array component declaration. |
| |
| 2025-01-03 Douglas B Rupp <rupp@adacore.com> |
| |
| * socket.c [__vxworks]: Change vxw_h_addr type to long from |
| int, and cast the conversion of char* to vxw_h_addr to avoid |
| warning/error. |
| |
| 2025-01-03 Tonu Naks <naks@adacore.com> |
| |
| * adaint.c: change default behaviour of __gnat_locate_exec_on_path |
| * adaint.h: change prototype of __gnat_locate_exec_on_path |
| * libgnat/s-os_lib.adb: pass optional argument in Locate_Exec_On_Path |
| * libgnat/s-os_lib.ads: change spec of Locate_Exec_On_Path |
| * libgnat/s-trasym__dwarf.adb: update import of __gnat_locate_exec_on_path |
| |
| 2025-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_ch4.adb (Expand_Allocator_Expression): Put back the call to |
| Remove_Side_Effects in the case of a function call, a class-wide |
| designated type and a regular storage pool. |
| |
| 2025-01-03 Bob Duff <duff@adacore.com> |
| |
| * sem_ch6.adb (Analyze_Expression_Function): Mark the implicit |
| spec for an expression function as Comes_From_Source. |
| (Analyze_Null_Procedure): Minor cleanup. |
| * sem_warn.adb (Source_E1): New function to compute whether |
| to give warnings. In particular, return True for [in] out |
| parameters of expression functions. |
| |
| 2025-01-03 Steve Baird <baird@adacore.com> |
| |
| * exp_aggr.adb (Check_Bounds): Remove calls that were setting the |
| Analyzed flag to False for two aggregate bound expressions. |
| |
| 2025-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * einfo.ads (Is_Independent): Document usage on Master_Node objects. |
| * exp_aggr.adb (In_Place_Assign_OK): Remove Parent_Kind variable. |
| (Convert_To_Assignments): Call Unconditional_Parent and remove the |
| restriction on the known size for the in-place expansion of the |
| aggregate in the context of an object declaration. |
| (Expand_Array_Aggregate): Remove Parent_Kind variable and call |
| Unconditional_Parent and Delay_Conditional_Expressions_Between |
| * exp_ch3.adb: Remove clauses for Exp_Dbug. |
| (Expand_N_Object_Declaration): Factor out the code rewriting the |
| declaration as a renaming in Rewrite_Object_Declaration_As_Renaming |
| and call the procedure. |
| * exp_ch4.adb (Insert_Conditional_Object_Declaration): Declare. |
| (Expand_N_Case_Expression): Delay expanding the expression if it is |
| in the context of an optimizable object declaration. If the parent |
| node is this object declaration, then replace it with a renaming of |
| the dereference of an access value designating an object initialized |
| with the dependent expression chosen by the condition. |
| (Expand_N_If_Expression): Likewise. |
| (Insert_Conditional_Object_Declaration): New procedure. |
| * exp_ch6.adb (Expand_Ctrl_Function_Call): Test the unconditional |
| parent in the case of an object declaration too. |
| * exp_ch7.adb (Build_Finalizer.Process_Declarations): Pass Strict to |
| Processing_Actions from the Is_Independent flag on a Master_Node. |
| * exp_util.ads (Rewrite_Object_Declaration_As_Renaming): Declare. |
| * exp_util.adb: Add clauses for Exp_Dbug. |
| (Rewrite_Object_Declaration_As_Renaming): New procedure extracted |
| from Expand_N_Object_Declaration. |
| * sem_ch3.adb (Analyze_Object_Declaration): Also leave the analysis |
| if the declaration has been replaced with a renaming in the case of |
| an initialization expression that is a conditional expression. |
| |
| 2025-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * checks.adb (Apply_Predicate_Check): Preserve Comes_From_Source. |
| * exp_ch4.adb (Expand_Allocator_Expression): Factor out common code |
| for the various cases. Also delay applying the 2nd predicate check. |
| In the default case, defer to Make_Build_In_Place_Call_In_Allocator |
| entirely in the build-in-place case. |
| * sem_ch4.adb (Analyze_Allocator): Do not give the warning or error |
| for a default-initialized allocator with No_Initialization. |
| |
| 2025-01-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * lib-writ.adb (Write_ALI): Remove useless space. |
| |
| 2025-01-03 Ronan Desplanques <desplanques@adacore.com> |
| |
| * lib-writ.adb (Write_ALI): Remove condition for writing P line |
| parameters. |
| * lib-writ.ads: Fix typos. Clarify comment. |
| |
| 2025-01-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * gnat_ugn.texi: Bump @copying's copyright year. |
| * gnat_rm.texi: Likewise. |
| |
| |
| Copyright (C) 2025 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |