forked from OERV-TOOLCHAIN/gcc-rva23
4501 lines
175 KiB
Plaintext
4501 lines
175 KiB
Plaintext
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.
|