8290 lines
323 KiB
Text
8290 lines
323 KiB
Text
2024-12-18 Simon Wright <simon@pushface.org>
|
||
|
||
PR target/117538
|
||
* libgnat/s-trasym.adb (Symbolic_Traceback): Prepend the load
|
||
address of the executable if it is not null.
|
||
|
||
2024-12-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/118011
|
||
* gcc-interface/misc.cc (gnat_post_options): Test
|
||
!OPTION_SET_P (flag_short_enums) rather than flag_short_enums == 2.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (compare_elmt_bitpos): Deal specially with
|
||
0-sized components when the bit position is the same.
|
||
|
||
2024-12-13 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to
|
||
create_type_decl.
|
||
|
||
2024-12-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem.ads (Inside_Preanalysis_Without_Freezing): Removed.
|
||
* sem.adb (Semantics): Remove Inside_Preanalysis_Without_Freezing.
|
||
* sem_ch6.adb (Preanalyze_Formal_Expression): Removed.
|
||
* sem_ch3.ads (Preanalyze_Assert_Expression): Add documentation.
|
||
(Preanalyze_Spec_Expression): Add documentation.
|
||
* sem_ch3.adb (Preanalyze_Assert_Expression) Code cleanup.
|
||
(Preanalyze_Default_Expression): Code cleanup.
|
||
* sem_res.ads (Preanalyze_With_Freezing_And_Resolve): Removed.
|
||
* sem_res.adb (Preanalyze_With_Freezing_And_Resolve): Removed.
|
||
(Preanalyze_And_Resolve): Code cleanup.
|
||
* freeze.adb (Freeze_Entity): No freeze under strict preanalysis.
|
||
(Freeze_Expression): Code cleanup.
|
||
(Freeze_Expr_Types): Replace call to Preanalyze_Spec_Expression by
|
||
strict preanalysis during preanalysis of a duplicate of the
|
||
expression performed to have available the minimum decoration
|
||
to locate referenced unfrozen types.
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Minor code cleanup.
|
||
* sem_attr.adb (Resolve_Attribute): Add documentation.
|
||
* sem_ch13.adb (Resolve_Aspect_Expressions[Aspect_Default_Value]):
|
||
Replace call to Preanalyze_Spec_Expression by Preanalyze_And_Resolve.
|
||
(Resolve_Aspect_Expressions[Aspect_Default_Component_Value]): Ditto.
|
||
* sem_ch8.adb (Set_Entity_Or_Discriminal): Code cleaup.
|
||
* sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Replace
|
||
call to Preanalyze_Assert_Expression by call to Preanalyze_And_Resolve.
|
||
(Analyze_Pre_Post_Condition): Replace call to Preanayze_Spec_Expression
|
||
by call to Preanalyze_Assert_Expression.
|
||
* sem_util.ads (In_Pragma_Expression): Adding a formal to extend the
|
||
functionality of this subprogram.
|
||
(Within_Static_Expression): New subprogram.
|
||
* sem_util.adb (In_Pragma_Expression): Ditto.
|
||
(Within_Static_Expression): Ditto.
|
||
* checks.adb (Install_Null_Excluding_Check): No check during preanalysis.
|
||
(Install_Primitive_Elaboration_Check): Ditto.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Is_Delayed_Conditional_Expression): Move to...
|
||
* exp_aggr.adb (Is_Delayed_Conditional_Expression): Move to...
|
||
(Convert_To_Assignments): Use Delay_Conditional_Expressions_Between.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Reset the Analyzed flag
|
||
by means of Unanalyze_Delayed_Conditional_Expression.
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Likewise. Delay expanding
|
||
the expression if it is in the context of a simple return statement.
|
||
(Expand_N_If_Expression): Likewise.
|
||
(Expand_N_Qualified_Expression): Fold identical operand. Distribute
|
||
the expression into an operand that is a conditional expression with
|
||
expansion delayed.
|
||
(Process_Transient_In_Expression): Also test the parent node for the
|
||
presence of a simple return statement.
|
||
* exp_ch6.adb (Expand_Ctrl_Function_Call): Test the unconditional
|
||
parent node for the presence of a simple return statement.
|
||
* exp_util.ads (Delayed Expansion): New description.
|
||
(Delay_Conditional_Expressions_Between): New procedure.
|
||
(Is_Delayed_Conditional_Expression): ...here.
|
||
(Unanalyze_Delayed_Conditional_Expression): New procedure.
|
||
(Unconditional_Parent): New function.
|
||
* exp_util.adb (Find_Hook_Context): Take into account conditional
|
||
statements coming from conditional expressions.
|
||
(Within_Conditional_Expression): Likewise.
|
||
(Delay_Conditional_Expressions_Between): New procedure.
|
||
(Is_Delayed_Conditional_Expression): ...here.
|
||
(Unanalyze_Delayed_Conditional_Expression): New procedure.
|
||
(Unconditional_Parent): New function.
|
||
* sinfo.ads (Expansion_Delayed): Adjust description.
|
||
|
||
2024-12-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_aggr.adb (Case_Bounds): Fix indentation.
|
||
* sem_case.adb (Choice_Bounds): Likewise.
|
||
* libgnat/s-dourea.ads (Duuble_T): Likewise.
|
||
* libgnat/s-excmac__arm.ads (Cleanup_Cache_Type): Likewise.
|
||
|
||
2024-12-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* atree.adb, diagnostics-pretty_emitter.adb,
|
||
diagnostics-utils.adb, einfo-utils.adb, errout.adb, exp_aggr.adb,
|
||
exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_imgv.adb,
|
||
exp_pakd.adb, exp_prag.adb, exp_unst.adb, exp_util.adb, gnatchop.adb,
|
||
gnatlink.adb, inline.adb, itypes.adb, osint.adb, rtsfind.adb,
|
||
sem_aggr.adb, sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
|
||
sem_ch4.adb, sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_util.adb,
|
||
sprint.adb, switch-m.adb, table.adb: Fix code indentation.
|
||
|
||
2024-12-13 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* libgnat/a-tifiio.adb (OK_Get_32): Use 'Base.
|
||
(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
|
||
* libgnat/a-tifiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
|
||
(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
|
||
* libgnat/a-wtfiio.adb (OK_Get_32): Likewise.
|
||
(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
|
||
* libgnat/a-wtfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
|
||
(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
|
||
* libgnat/a-ztfiio.adb (OK_Get_32): Likewise.
|
||
(OK_Put_32, OK_Get_64, OK_Put_64): Likewise.
|
||
* libgnat/a-ztfiio__128.adb (OK_Get_32, OK_Put_32, OK_Get_64)
|
||
(OK_Put_64, OK_Get_128, OK_Put_128): Likewise.
|
||
|
||
2024-12-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Report_Ambiguous_Argument): Code cleanup.
|
||
(Resolve): Code cleanup.
|
||
|
||
2024-12-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Is_Effectively_Volatile,
|
||
Is_Effectively_Volatile_For_Reading): Implement new rule for
|
||
record types.
|
||
* sem_util.ads (Is_Effectively_Volatile,
|
||
Is_Effectively_Volatile_For_Reading): Adjust comments.
|
||
|
||
2024-12-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Is_Effectively_Volatile,
|
||
Is_Effectively_Volatile_For_Reading): Remove Ignore_Protected
|
||
parameter.
|
||
(Is_Effectively_Volatile_Object,
|
||
Is_Effectively_Volatile_Object_For_Reading): Remove
|
||
single-parameter wrappers that are needed to instantiate
|
||
generic subprogram.
|
||
* sem_util.ads (Is_Effectively_Volatile,
|
||
Is_Effectively_Volatile_For_Reading): Remove parameter; adjust
|
||
comment.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Do not preventively
|
||
call Remove_Side_Effects on the expression in the nonlimited
|
||
by-reference case. Always call Build_Allocate_Deallocate_Proc
|
||
in the default case.
|
||
* exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out if the call
|
||
is the qualified expression of an allocator.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Replace all the
|
||
calls to Relocate_Node by calls to Duplicate_Subexpr_No_Checks.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Do not call again
|
||
Preanalyze_And_Resolve on the expression.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Aggr_Expr): Always perform a full analysis
|
||
of the expression in SPARK mode.
|
||
|
||
2024-12-13 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Fix typo.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Call_Helper): Also create a temporary in the
|
||
case of a noncontrolled user-defined indexing.
|
||
|
||
2024-12-13 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_rm/standard_library_routines.rst: Fix documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-12-13 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnat2.gpr: Add library units to coverage exclusion list.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code): Remove obsolete comment.
|
||
(Convert_To_Positional): Remove Ctyp local variable.
|
||
(Is_Static_Element): Remove Dims parameter and do not preanalyze the
|
||
expression there.
|
||
(Expand_Array_Aggregate): Make Ctyp a constant.
|
||
(Compute_Others_Present): Do not preanalyze the expression there.
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): New Ctyp constant. Use it
|
||
throughout the procedure to denote the component type.
|
||
(Resolve_Aggr_Expr): Always preanalyze a copy of the expression in
|
||
an iteration context. Preanalyze it directly when the expander is
|
||
active and the choice may cover multiple components. Otherwise,
|
||
fully analyze it.
|
||
Do not reanalyze an iterated component association with an others
|
||
choice either when there are positional components.
|
||
(Resolve_Iterated_Component_Association): Do not remove references
|
||
from the expression after invoking Resolve_Aggr_Expr on it.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-imager.adb (Set_Image_Real): In the case where a double
|
||
integer is needed, do not implicit assume that it can contain up to
|
||
'Digits of the floating-point type.
|
||
|
||
2024-12-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-imager.adb (Maxscaling): Change to Natural constant and
|
||
add Maxdigs to value.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117996
|
||
* libgnat/a-ngrear.adb (Jacobi): Remove default value for
|
||
Compute_Vectors formal parameter.
|
||
(Sort_Eigensystem): Add Compute_Vectors formal parameter. Do not
|
||
modify the Vectors if Compute_Vectors is False.
|
||
(Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem.
|
||
(Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem.
|
||
|
||
2024-12-12 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* par-ch5.adb (Test_Statement_Required): Fix comment.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Convert_Aggr_In_Object_Decl): Clear the component
|
||
referenced on the right-hand side of the first assignment generated
|
||
for a bit-packed array, if any.
|
||
(Expand_Array_Aggregate): Do not exclude aggregates of bit-packed
|
||
array types in object declarations from in-place expansion.
|
||
* sem_eval.adb (Eval_Indexed_Component): Do not attempt a constant
|
||
evaluation for a bit-packed array type.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch3.adb (Access_Subprogram_Declaration): Replace assertion with
|
||
more defensive code.
|
||
|
||
2024-12-12 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb (Write_JSON_Location): Avoid going through
|
||
symbolic links when printing the full name.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnat/s-imager.adb (Image_Floating_Point): Tweak display of
|
||
invalid floating point values.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch3.adb (Access_Definition): Remove test for task entry context.
|
||
* sem_ch6.adb (Process_Formals): Add improved test for task entry
|
||
context.
|
||
|
||
2024-12-12 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Move call
|
||
to Comes_From_Source to the outer if-statement.
|
||
|
||
2024-12-12 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Only set
|
||
flag Is_Null_Loop when loop parameter specification comes from
|
||
a loop and not from a quantified expression.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Array_Aggregate): Do not exclude aggregates
|
||
of bit-packed array types in allocators from in-place expansion.
|
||
|
||
2024-12-12 Sebastian Poeplau <poeplau@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move
|
||
the LLVM chapter one level up.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_eval.ads (Is_OK_Static_Expression_Of_Type): New function.
|
||
* sem_eval.adb (Is_OK_Static_Expression_Of_Type): Likewise.
|
||
* sem_ch13.adb (Check_Expr_Is_OK_Static_Expression): Use new function.
|
||
* sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Likewise.
|
||
* sem_ch3.adb (Apply_External_Initialization): Accept static strings
|
||
for the parameter.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnat/a-tifiio.adb: Fix comment.
|
||
* libgnat/a-tifiio__128.adb: Likewise.
|
||
* libgnat/s-imaged.ads (Image_Decimal): Likewise.
|
||
* libgnat/s-imagef.ads (Image_Fixed): Likewise.
|
||
* libgnat/s-imager.ads (Image_Fixed_Point): Likewise.
|
||
* libgnat/s-imde32.ads (Image_Decimal32): Likewise.
|
||
* libgnat/s-imfi64.ads (Image_Fixed64): Likewise.
|
||
* libgnat/s-imgcha.adb (Image_Character): Likewise.
|
||
* libgnat/s-valuer.adb (Scan_Raw_Real): Likewise.
|
||
* sem_attr.adb (Eval_Attribute): Likewise.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Treat the various size attributes
|
||
like Component_Size for nonstatic array types.
|
||
|
||
2024-12-12 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Is_Ambiguous_Operand): Add missing decoration of
|
||
the operand when it is labeled overloaded but has just one
|
||
interpretation.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add Target formal
|
||
parameter and check that it is not a bit-aligned component or slice.
|
||
Return False in CodePeer mode as well.
|
||
(Build_Array_Aggr_Code): Remove redundant tests done in conjunction
|
||
with a call to Aggr_Assignment_OK_For_Backend.
|
||
(Expand_Array_Aggregate): Likewise. Add a couple of comments and
|
||
improve formatting.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Fix computation of type
|
||
category.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Is_Representation_Aspect): True for External_Name.
|
||
(Aspect_Delay): Use Rep_Aspect for External_Name, Link_Name and
|
||
Linker_Section.
|
||
* einfo.ads (Initialization_Statements): Document extended usage.
|
||
* exp_util.adb (Needs_Initialization_Statements): Return True for
|
||
all delayed aspects.
|
||
* freeze.adb (Check_Address_Clause): Do not move the initialization
|
||
expression here...
|
||
(Freeze_Object_Declaration): ...but here instead, as well as for all
|
||
delayed aspects. Remove test for pragma Linker_Section.
|
||
* sem_ch13.adb (Analyze_One_Aspect): Do not delay in the Rep_Aspect
|
||
case if the expression is a string literal.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnat/s-valuti.ads (Scan_Sign): Fix documentation comment.
|
||
|
||
2024-12-12 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_util.adb (Build_Task_Image_Decls):
|
||
Deal properly with the case of an expanded name.
|
||
Minor cleanup: use a case statement instead of if/elsif chain.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Traverse_Proc_For_Aggregate): New generic procedure.
|
||
(Replace_Discriminants): Instantiate it instead of Traverse_Proc.
|
||
(Replace_Self_Reference): Likewise.
|
||
(Convert_To_Assignments): Remove limitation for nested aggregates
|
||
that contain self-references.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Remove obsolete comment
|
||
about C code generation. Do not create a useless target type if
|
||
the parent statement is rewritten instead of the expression. Use
|
||
a nonnull accesss type for the expansion done for composite types.
|
||
(Expand_N_If_Expression): Simplify the expansion when the condition
|
||
is known at compile time. Apply the expansion done for by-reference
|
||
types to indefinite types and remove the obsolete special case for
|
||
unconstrained array types Use a nonnull access type in this case.
|
||
Rename New_If local variable to If_Stmt for the sake of consistency.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Make_Address_For_Finalize): Look at the underlying
|
||
subtype to detect the unconstrained array type case.
|
||
* sprint.adb (Write_Itype) <E_Private_Subtype>: New case.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Update
|
||
External_Initialization section.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* fname.adb (Is_Predefined_File_Name): Tweak test.
|
||
|
||
2024-12-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch3.adb (Apply_External_Initialization): Restrict File lookup.
|
||
|
||
2024-12-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Initialization_Statements): Document usage precisely.
|
||
* exp_aggr.adb (Convert_Aggr_In_Object_Decl): Do not create a
|
||
compound statement in most cases, do it only if necessary.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Remove a couple of
|
||
useless statements.
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
|
||
Use the Initialization_Statements mechanism if necessary.
|
||
* exp_ch7.adb: Remove clauses for Aspects package.
|
||
(Insert_Actions_In_Scope_Around): Use the support code of Exp_Util
|
||
for the Initialization_Statements mechanism.
|
||
* exp_prag.adb (Undo_Initialization): Remove obsolete code.
|
||
* exp_util.ads (Move_To_Initialization_Statements): New procedure.
|
||
(Needs_Initialization_Statements): New function.
|
||
* exp_util.adb (Move_To_Initialization_Statements): New procedure.
|
||
(Needs_Initialization_Statements): New predicate.
|
||
|
||
2024-12-12 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Ctrl_Function_Call): Avoid expansion
|
||
of controlled types when the LHS is a function call.
|
||
|
||
2024-12-12 Daniel King <dmking@adacore.com>
|
||
|
||
* init.c (__gnat_error_handler): Handle SIGPROT
|
||
(__gnat_install_handler): Install SIGPROT handler
|
||
|
||
2024-12-12 Daniel King <dmking@adacore.com>
|
||
|
||
* libgnat/i-cheri-exceptions.ads: Export CHERI exception IDs.
|
||
|
||
2024-12-12 Johannes Kliemann <kliemann@adacore.com>
|
||
|
||
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Take
|
||
Minimum_Stack_Size into account when preallocating task stacks.
|
||
* rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Minimum_Stack_Size.
|
||
|
||
2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* Makefile.rtl: Add x86_64-pc-gnu section.
|
||
|
||
2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* libgnat/system-gnu.ads: New file.
|
||
* Makefile.rtl (x86-gnuhurd): Use libgnat/system-gnu.ads instead of
|
||
libgnat/system-freebsd.ads.
|
||
|
||
2024-12-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* libgnarl/a-intnam__freebsd.ads: Rename to...
|
||
* libgnarl/a-intnam__bsd.ads: ... new file.
|
||
* libgnarl/a-intnam__dragonfly.ads: Remove file.
|
||
* Makefile.rtl (x86-kfreebsd, x86-gnuhurd, x86_64-kfreebsd,
|
||
aarch64-freebsd, x86-freebsd, x86_64-freebsd): Use
|
||
libgnarl/a-intnam__bsd.ads instead of libgnarl/a-intnam__freebsd.ads.
|
||
(x86_64-dragonfly): Use libgnarl/a-intnam__bsd.ads instead of
|
||
libgnarl/a-intnam__dragonfly.ads.
|
||
|
||
2024-11-26 Eric Botcazou <ebotcazou@adacore.come>
|
||
|
||
* gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Access>: Do not
|
||
pass ATTR_ADDR_EXPR to build_unary_op for 'Unrestricted_Access.
|
||
|
||
2024-11-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Do not insert the tag
|
||
assignment there if the object has the Address aspect.
|
||
* exp_ch7.adb: Add clauses for Aspect package.
|
||
(Build_Finalizer.Process_Object_Declaration): Deal with an object
|
||
with delayed freezing.
|
||
(Insert_Actions_In_Scope_Around): If the target is the declaration
|
||
of an object with address clause or aspect, move all the statements
|
||
that have been inserted after it into the Initialization_Statements
|
||
list of the object.
|
||
* freeze.adb (Check_Address_Clause): Do not reassign the tag here,
|
||
instead set the appropriate flag on the assignment statement.
|
||
|
||
2024-11-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_res.adb (Valid_Conversion): Do not initialize Opnd_Type before
|
||
calling Get_Corresponding_Mutably_Tagged_Type_If_Present.
|
||
|
||
2024-11-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Export_Import): Add explicit mention
|
||
of the declaration in the error message for the Import.
|
||
* sem_prag.adb (Process_Extended_Import_Export_Object_Pragma): Also
|
||
test Has_Init_Expression on the declaration node for Import_Object
|
||
and use the same wording as that of Import.
|
||
(Process_Import_Or_Interface): Also test Has_Init_Expression on the
|
||
declaration node for Import.
|
||
|
||
2024-11-26 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch2.adb (Check_Ambiguous_Call): Replace code factorized
|
||
code by call to the new subprogram Is_Ambiguous_Operand.
|
||
* sem_res.ads (Is_Ambiguous_Operand): New subprogram that
|
||
factorizes previous code in Check_Ambiguous_Call and
|
||
Valid_Conversion.
|
||
* sem_res.adb (Is_Ambiguous_Operand): New subprogram.
|
||
(Valid_Tagged_Conversion): Replace factorized code by call to
|
||
the new subprogram Is_Ambiguous_Operand.
|
||
(Report_Error_N): New subprogram.
|
||
(Report_Error_NE): New subprogram.
|
||
(Report_Interpretation): New subprogram.
|
||
(Conversion_Error_N): Removed; replaced by Report_Error_N.
|
||
(Conversion_Error_NE): Removed; replaced by Report_Error_NE.
|
||
(Valid_Conversion): Update Opnd_Type after the call to
|
||
Is_Ambiguous_Operand in the overloaded case.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb: Remove implmentation of Write_Error_Summary.
|
||
* erroutc.adb: Add implemenetation of Write_Error_Summary.
|
||
* erroutc.ads: Add spec of Write_Error_Summary.
|
||
* errutil.adb: Remove implementation for writing the error summary.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb: Remove implemntation of Set_Msg_Insertion_Column.
|
||
* erroutc.adb: Add implementation of Set_Msg_Insertion_Column.
|
||
* erroutc.ads: Add spec of Set_Msg_Insertion_Column.
|
||
* errutil.adb: Remove implementation of Set_Msg_Insertion_Column.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb: Set Warn_Err as true if Is_Runtime_Error was
|
||
set in the error message.
|
||
* erroutc.adb: Remove instances of Warn_Runtime_Raise.
|
||
* erroutc.ads: Likewise.
|
||
* errutil.adb: Likewise.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb: Use Is_Redundant_Error_Message.
|
||
* erroutc.adb: Move the common code for checking if a message
|
||
can be removed to Is_Redundant_Error_Message.
|
||
* erroutc.ads: Add definition of Is_Redundant_Error_Message.
|
||
* errutil.adb: Use Is_Redundant_Error_Message.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.ads: Remove Current_Node.
|
||
* errout.adb: Remove uses of Current_Node.
|
||
* par-ch6.adb: Same as above.
|
||
* par-ch7.adb: Same as above.
|
||
* par-ch9.adb: Same as above.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* err_vars.ads: Remove Raise_Exception_On_Error and
|
||
Error_Msg_Exception.
|
||
* errout.ads: Same as above.
|
||
* errout.adb: Remove uses of Raise_Exception_On_Error and
|
||
Error_Msg_Exception.
|
||
* errutil.adb: Same as above.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-converter.adb: Use new enum values instead
|
||
of the old attributes.
|
||
* diagnostics-switch_repository.adb: Same as above.
|
||
* diagnostics-utils.adb: Same as above.
|
||
* diagnostics.adb: Same as above.
|
||
* diagnostics.ads: Same as above.
|
||
* errout.adb: Same as above.
|
||
* erroutc.adb: Same as above.
|
||
* erroutc.ads: Remove old attriubtes and replace them
|
||
with Error_Msg_Kind.
|
||
* errutil.adb: Same as others.
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* errout.adb: Use Output_Msg_Location
|
||
* erroutc.adb: add common implementation for printing the
|
||
error message line.
|
||
* erroutc.ads: Add new method Output_Msg_Location
|
||
* errutil.adb: use Output_Msg_Location
|
||
|
||
2024-11-26 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-converter.adb: Remove uses of Info_Warning type. Use
|
||
common constructors to simplify implementation.
|
||
* diagnostics-pretty_emitter.adb: Remove Info_Warning type.
|
||
* diagnostics-utils.adb: Remove uses of Info_Warning.
|
||
* diagnostics.adb: Simplify implementation of Primary_Location.
|
||
* diagnostics.ads: Remove Info_Warning type.
|
||
|
||
2024-11-26 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* doc/gnat_ugn/the_gnat_compilation_model.rst: The format of
|
||
the ali file is documented in lib-writ.ads.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-26 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* uname.ads (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Change
|
||
specifications to take a Unit_Name_Type as input.
|
||
(Encoded_Library_Unit_Name): New subprogram.
|
||
(Is_Predefined_Unit_Name): New overloaded subprogram.
|
||
(Get_External_Unit_Name_String): Make use of new
|
||
Encoded_Library_Unit_Name subprogram.
|
||
* uname.adb (Is_Internal_Unit_Name, Is_Predefined_Unit_Name): Adapt
|
||
bodies to specification changes.
|
||
* fname-uf.adb (Get_File_Name): Adapt to Uname interface changes.
|
||
|
||
2024-11-26 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* fname-uf.adb (Get_File_Name): Use local name buffers.
|
||
|
||
2024-11-26 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_util.adb (Get_Library_Unit_Name): Improve use of Uname.
|
||
|
||
2024-11-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb: Remove clauses for Exp_Ch3.
|
||
(Check_Address_Clause): Always reassign the tag for an object of a
|
||
tagged type if there is an initialization expression.
|
||
|
||
2024-11-23 Maciej W. Rozycki <macro@orcam.me.uk>
|
||
|
||
* gcc-interface/Make-lang.in (gnattools): Remove $(GCC_PARTS).
|
||
|
||
2024-11-22 Andrew Pinski <quic_apinski@quicinc.com>
|
||
|
||
PR bootstrap/117737
|
||
* gcc-interface/misc.cc (INCLUDE_MEMORY): Remove.
|
||
* gcc-interface/trans.cc (INCLUDE_MEMORY): Remove.
|
||
* gcc-interface/utils.cc (INCLUDE_MEMORY): Remove.
|
||
|
||
2024-11-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/117024
|
||
* gcc-interface/utils.cc (flag_isoc2y): New variable.
|
||
|
||
2024-11-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117538
|
||
PR ada/117708
|
||
* Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_PAIRS).
|
||
(x86-64 kfreebsd): Likewise.
|
||
(aarch64 FreeBSD): Likewise.
|
||
(x86-64 DragonFly): Likewise.
|
||
(S390 Linux): Likewise and add Linux version of s-tsmona.adb.
|
||
(Mips Linux): Likewise.
|
||
(SPARC Linux): Likewise.
|
||
(HP/PA Linux): Linux.
|
||
(M68K Linux): Likewise.
|
||
(SH4 Linux): Likewise.
|
||
(Alpha Linux): Likewise.
|
||
(RISC-V Linux): Likewise.
|
||
|
||
2024-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117538
|
||
* Makefile.rtl (GNU Hurd): Add $(TRASYM_DWARF_UNIX_OBJS).
|
||
(x86-64 kfreebsd): Likewise.
|
||
(aarch64 FreeBSD): Likewise.
|
||
(x86-64 DragonFly): Likewise.
|
||
(S390 Linux): Likewise.
|
||
(Mips Linux): Likewise.
|
||
(SPARC Linux): Likewise.
|
||
(HP/PA Linux): Linux.
|
||
(M68K Linux): Likewise.
|
||
(SH4 Linux): Likewise.
|
||
(Alpha Linux): Likewise.
|
||
(RISC-V Linux): Likewise.
|
||
|
||
2024-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_util.ads (Within_Case_Or_If_Expression): Rename into...
|
||
(Within_Conditional_Expression): ...this.
|
||
* exp_util.adb (Within_Case_Or_If_Expression): Rename into...
|
||
(Within_Conditional_Expression): ...this.
|
||
* checks.adb (Install_Null_Excluding_Check): Adjust for renaming.
|
||
|
||
2024-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Assignment_With_Temporary): Inline into...
|
||
(Build_Array_Aggr_Code): ...this. Set the Analyzed flag on the
|
||
relocated aggregate if it is to be handled by the back-end.
|
||
|
||
2024-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb: Remove clauses for Expander.
|
||
(Expand_N_Object_Declaration): Remove special processing for delayed
|
||
aggregates of limited types as initialization expressions.
|
||
* freeze.adb (Warn_Overlay): Bail out if No_Initialization is set on
|
||
the declaration node of the entity.
|
||
* sem_ch3.adb (Delayed_Aspect_Present): Delete.
|
||
(Expand_N_Object_Declaration): Do not block the resolution of the
|
||
initialization expression that is an aggregate when the object has
|
||
an address clause or delayed aspects.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Remove the test on
|
||
enclosing predicate function for the return optimization.
|
||
Rewrite it in the general case to catch all nondynamic predicates.
|
||
(Expand_N_If_Expression): Remove the test on enclosing predicate
|
||
function for the return optimization.
|
||
|
||
2024-11-18 Bob Duff <duff@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_characteristics.rst:
|
||
Remove Atomic_Synchronization.
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
|
||
Likewise.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst: DRY.
|
||
Consolidate documentation of Disable/Enable_Atomic_Synchronization.
|
||
* checks.adb: Comment fix.
|
||
* exp_util.ads: Likewise.
|
||
* targparm.ads: Likewise.
|
||
* types.ads: Likewise.
|
||
* gnat1drv.adb: Likewise. DRY.
|
||
* sem_prag.adb (Process_Disable_Enable_Atomic_Sync):
|
||
Change name of Atomic_Synchronization to start with
|
||
underscore.
|
||
(Process_Suppress_Unsuppress): No need to check Comes_From_Source for
|
||
Atomic_Synchronization anymore; _Atomic_Synchronization can never
|
||
come from source. (Anyway, it shouldn't be ignored; it should be
|
||
an error.)
|
||
* snames.ads-tmpl (Atomic_Synchronization):
|
||
Change name to start with underscore.
|
||
* switch-c.adb (Scan_Front_End_Switches):
|
||
Minor cleanup: Use 'in'.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_eval.adb (Eval_Indexed_Component): Clear Do_Range_Check on
|
||
the expressions if Kill_Range_Check is set on the node.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_util.adb (Remove_Init_Call): Rewrite a compound statement in
|
||
the Initialization_Statements of the variable as a null statement
|
||
instead of removing it.
|
||
* freeze.adb (Explode_Initialization_Compound_Statement): Small
|
||
comment tweaks.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (UI_Are_In_Int_Range): New predicate.
|
||
(Aggr_Size_OK): Use it.
|
||
(Flatten): Likewise.
|
||
(Packed_Array_Aggregate_Handled): Likewise.
|
||
(Static_Array_Aggregate): Likewise.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.ads (Explode_Initialization_Compound_Statement): Adjust the
|
||
description.
|
||
* freeze.adb (Explode_Initialization_Compound_Statement): If the
|
||
entity has its freezing delayed, append the initialization actions
|
||
to its freeze actions.
|
||
(Freeze_Object_Declaration): Remove commented out code.
|
||
(Freeze_Entity): Remove bypass for object of anonymous array type.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_sel.ads (Build_Abort_Block): Remove second parameter and
|
||
rename the third.
|
||
(Build_Abort_Block_Handler): Fix description.
|
||
* exp_sel.adb (Build_Abort_Block): Remove second parameter, rename
|
||
the third and adjust accordingly.
|
||
* exp_ch9.adb (Expand_N_Asynchronous_Select): Fix the description
|
||
of the exception handler throughout. Remove Abort_Block_Ent and
|
||
Hdle local variables. Call Build_Abort_Block consistently to build
|
||
the abort block and adjust existing calls.
|
||
|
||
2024-11-18 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_aggr.adb (Convert_To_Positional.Flatten): Avoid raising
|
||
Constraint_Error in UI_To_Int by testing UI_Is_In_Int_Range first.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code): Build the simple assignment
|
||
for the case of an aggregate that can be handled by the back end.
|
||
(Expand_Array_Aggregate): Adjust description of the processing.
|
||
Move handling of declaration case to STEP 4 and remove handling of
|
||
the case of an aggregate that can be processed by the back end.
|
||
(Late_Expansion): Likewise for the second part.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Deal with a delayed
|
||
aggregate synthesized for the default initialization, if any.
|
||
* sem_eval.adb (Eval_Indexed_Component): Bail out for the name of
|
||
an assignment statement.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (In_Place_Assign_OK): Remove handling of allocators
|
||
and call Must_Slide instead of implementing the check manually.
|
||
(Convert_To_Assignments): Adjust outdated comment.
|
||
(Expand_Array_Aggregate): Move handling of allocator case to STEP 3
|
||
and call Must_Slide directly for it.
|
||
(Must_Slide): Replace tests based on Is_OK_Static_Expression with
|
||
tests based on Compile_Time_Known_Value.
|
||
|
||
2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Convert_Array_Aggr_In_Allocator): Delete.
|
||
(Convert_Aggr_In_Allocator): Do not call above procedure.
|
||
(Late_Expansion): Deal with a target that is the dereference of a
|
||
prefix with a Storage_Model. Remove an useless actual parameter
|
||
in the call to Build_Array_Aggr_Code.
|
||
|
||
2024-11-18 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): Add by default a null-exclusion
|
||
check on the prefix of the call when it is an access-type; it can
|
||
be disabled using -gnatd_P.
|
||
* debug.adb (gnatd_P): Update documentation.
|
||
|
||
2024-11-18 squirek <squirek@adacore.com>
|
||
|
||
* accessibility.adb (Accessibility_Level): Handle the Input attribute
|
||
case
|
||
|
||
2024-11-18 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* frontend.adb (Frontend): tweak test for predefined main unit.
|
||
|
||
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (elaborate_expression_2): Do not divide and
|
||
multiply back if the alignment factor is already explicit.
|
||
|
||
2024-11-14 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Delta_Aggregate): The rule about
|
||
discriminant dependent component references in choices applies to
|
||
both array and record delta aggregates, so check for violations in
|
||
Resolve_Delta_Aggregate. Call a new procedure,
|
||
Check_For_Bad_Dd_Component_Choice, for each choice.
|
||
(Resolve_Delta_Record_Aggregate): Call a new procedure,
|
||
Check_For_Bad_Overlap, for each pair of choices.
|
||
|
||
2024-11-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* bindgen.adb (Gen_Elab_Calls): Tweak test.
|
||
(Gen_Elab_Externals): Likewise.
|
||
|
||
2024-11-14 Claire Dross <dross@adacore.com>
|
||
|
||
* libgnat/a-strmap.adb: Add assert to regain proofs.
|
||
* libgnat/a-strsup.adb: Likewise.
|
||
* libgnat/s-aridou.adb: Add assertions to regain proofs.
|
||
* libgnat/s-arit32.adb: Use Exceptional_Cases to specify Raise.
|
||
* libgnat/s-arit64.adb: Use Round_Quatient from Impl instead of
|
||
redefining it.
|
||
* libgnat/s-arit64.ads: Likewise.
|
||
* libgnat/s-expmod.adb: Regain proof of lemma.
|
||
* libgnat/s-exponn.adb: Likewise.
|
||
* libgnat/s-expont.adb: Likewise.
|
||
* libgnat/s-imgboo.adb: Add local lemma to regain proof.
|
||
* libgnat/s-valuti.ads: Add Always_Terminates on Bad_Value.
|
||
|
||
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-imagef.ads (Image_Fixed): Adjust outdated sentence.
|
||
|
||
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Record_Hole_Check): Deal consistently with the base
|
||
type throughout the processing. Return if its declaration is not a
|
||
full type declaration. Assert that its record definition is either
|
||
a derived type definition or a record definition. If the type has a
|
||
private declaration that does not specify unknown discriminants, use
|
||
it as the source of discriminant specifications, if any.
|
||
(Check_Component_List): Process every N_Discriminant_Specification
|
||
but assert that its defining identifier is really a discriminant.
|
||
|
||
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-aridou.ads (Add_With_Ovflo_Check): Adjust description.
|
||
(Subtract_With_Ovflo_Check): Likewise.
|
||
(Multiply_With_Ovflo_Check): Likewise.
|
||
(Scaled_Divide): Likewise.
|
||
(Double_Divide): Likewise.
|
||
* libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise.
|
||
* libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise.
|
||
|
||
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/112524
|
||
PR ada/113781
|
||
* par-ch4.adb (P_Primary) <Tok_For>: Give an error about missing
|
||
parentheses in the (purported) iterated component case too.
|
||
(P_Unparen_Cond_Expr_Etc): Likewise.
|
||
* sem.adb (Analyze): Raise PE on N_Iterated_Component_Association.
|
||
* sem_util.ads (Diagnose_Iterated_Component_Association): Delete.
|
||
* sem_util.adb (Diagnose_Iterated_Component_Association): Likewise.
|
||
|
||
2024-11-12 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in: Remove extra 'with'.
|
||
|
||
2024-11-12 squirek <squirek@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Assignment): Add condition to fetch corresponding
|
||
record types for concurrent tagged types.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized
|
||
from the index type to compute the length. Simplify and remove
|
||
useless calls to New_Copy_Tree for this computation.
|
||
|
||
2024-11-12 Pat Bernardi <bernardi@adacore.com>
|
||
|
||
* libgnarl/a-dynpri.ads: Add design annotations.
|
||
* libgnarl/a-reatim.ads: Likewise.
|
||
* libgnarl/a-synbar.ads: Likewise.
|
||
* libgnarl/a-taside.ads: Likewise.
|
||
* libgnarl/s-tarest.ads: Likewise.
|
||
* libgnarl/s-tasinf.ads: Likewise.
|
||
* libgnarl/s-taspri__posix.ads: Likewise.
|
||
* libgnarl/s-tpobmu.ads: Likewise.
|
||
* libgnat/a-assert.ads: Likewise.
|
||
* libgnat/a-comlin.ads: Likewise.
|
||
* libgnat/a-nbnbig.ads: Likewise.
|
||
* libgnat/a-nubinu.ads: Likewise.
|
||
* libgnat/a-numeri.ads: Likewise.
|
||
* libgnat/a-unccon.ads: Likewise.
|
||
* libgnat/a-uncdea.ads: Likewise.
|
||
* libgnat/ada.ads: Likewise.
|
||
* libgnat/g-debuti.ads: Likewise.
|
||
* libgnat/g-sestin.ads: Likewise.
|
||
* libgnat/g-souinf.ads: Likewise.
|
||
* libgnat/gnat.ads: Likewise.
|
||
* libgnat/i-cexten.ads: Likewise.
|
||
* libgnat/i-cexten__128.ads: Likewise.
|
||
* libgnat/i-cstrin.adb: Likewise.
|
||
* libgnat/i-cstrin.ads: Likewise.
|
||
* libgnat/interfac__2020.ads: Likewise.
|
||
* libgnat/machcode.ads: Likewise.
|
||
* libgnat/s-addope.ads: Likewise.
|
||
* libgnat/s-aridou.ads: Likewise.
|
||
* libgnat/s-arit32.ads: Likewise.
|
||
* libgnat/s-arit64.ads: Likewise.
|
||
* libgnat/s-assert.ads: Likewise.
|
||
* libgnat/s-atacco.ads: Likewise.
|
||
* libgnat/s-atocou.ads: Likewise.
|
||
* libgnat/s-atocou__builtin.adb: Likewise.
|
||
* libgnat/s-atopri.ads: Likewise.
|
||
* libgnat/s-bitops.ads: Likewise.
|
||
* libgnat/s-boarop.ads: Likewise.
|
||
* libgnat/s-bytswa.ads: Likewise.
|
||
* libgnat/s-carsi8.ads: Likewise.
|
||
* libgnat/s-carun8.ads: Likewise.
|
||
* libgnat/s-casi16.ads: Likewise.
|
||
* libgnat/s-casi32.ads: Likewise.
|
||
* libgnat/s-casi64.ads: Likewise.
|
||
* libgnat/s-caun16.ads: Likewise.
|
||
* libgnat/s-caun32.ads: Likewise.
|
||
* libgnat/s-caun64.ads: Likewise.
|
||
* libgnat/s-exnint.ads: Likewise.
|
||
* libgnat/s-exnllf.ads: Likewise.
|
||
* libgnat/s-exnlli.ads: Likewise.
|
||
* libgnat/s-expint.ads: Likewise.
|
||
* libgnat/s-explli.ads: Likewise.
|
||
* libgnat/s-expllu.ads: Likewise.
|
||
* libgnat/s-expmod.ads: Likewise.
|
||
* libgnat/s-exponn.ads: Likewise.
|
||
* libgnat/s-expont.ads: Likewise.
|
||
* libgnat/s-exponu.ads: Likewise.
|
||
* libgnat/s-expuns.ads: Likewise.
|
||
* libgnat/s-fatflt.ads: Likewise.
|
||
* libgnat/s-fatgen.ads: Likewise.
|
||
* libgnat/s-fatlfl.ads: Likewise.
|
||
* libgnat/s-fatllf.ads: Likewise.
|
||
* libgnat/s-flocon.ads: Likewise.
|
||
* libgnat/s-geveop.ads: Likewise.
|
||
* libgnat/s-imageb.ads: Likewise.
|
||
* libgnat/s-imaged.ads: Likewise.
|
||
* libgnat/s-imagef.ads: Likewise.
|
||
* libgnat/s-imagei.ads: Likewise.
|
||
* libgnat/s-imagen.ads: Likewise.
|
||
* libgnat/s-imageu.ads: Likewise.
|
||
* libgnat/s-imagew.ads: Likewise.
|
||
* libgnat/s-imde128.ads: Likewise.
|
||
* libgnat/s-imde32.ads: Likewise.
|
||
* libgnat/s-imde64.ads: Likewise.
|
||
* libgnat/s-imen16.ads: Likewise.
|
||
* libgnat/s-imen32.ads: Likewise.
|
||
* libgnat/s-imenu8.ads: Likewise.
|
||
* libgnat/s-imfi32.ads: Likewise.
|
||
* libgnat/s-imfi64.ads: Likewise.
|
||
* libgnat/s-imgbiu.ads: Likewise.
|
||
* libgnat/s-imgboo.ads: Likewise.
|
||
* libgnat/s-imgcha.ads: Likewise.
|
||
* libgnat/s-imgint.ads: Likewise.
|
||
* libgnat/s-imgllb.ads: Likewise.
|
||
* libgnat/s-imglli.ads: Likewise.
|
||
* libgnat/s-imgllu.ads: Likewise.
|
||
* libgnat/s-imgllw.ads: Likewise.
|
||
* libgnat/s-imgrea.ads: Likewise.
|
||
* libgnat/s-imguns.ads: Likewise.
|
||
* libgnat/s-imguti.ads: Likewise.
|
||
* libgnat/s-imgwiu.ads: Likewise.
|
||
* libgnat/s-maccod.ads: Likewise.
|
||
* libgnat/s-multip.ads: Likewise.
|
||
* libgnat/s-pack03.ads: Likewise.
|
||
* libgnat/s-pack05.ads: Likewise.
|
||
* libgnat/s-pack06.ads: Likewise.
|
||
* libgnat/s-pack07.ads: Likewise.
|
||
* libgnat/s-pack09.ads: Likewise.
|
||
* libgnat/s-pack10.ads: Likewise.
|
||
* libgnat/s-pack100.ads: Likewise.
|
||
* libgnat/s-pack101.ads: Likewise.
|
||
* libgnat/s-pack102.ads: Likewise.
|
||
* libgnat/s-pack103.ads: Likewise.
|
||
* libgnat/s-pack104.ads: Likewise.
|
||
* libgnat/s-pack105.ads: Likewise.
|
||
* libgnat/s-pack106.ads: Likewise.
|
||
* libgnat/s-pack107.ads: Likewise.
|
||
* libgnat/s-pack108.ads: Likewise.
|
||
* libgnat/s-pack109.ads: Likewise.
|
||
* libgnat/s-pack11.ads: Likewise.
|
||
* libgnat/s-pack110.ads: Likewise.
|
||
* libgnat/s-pack111.ads: Likewise.
|
||
* libgnat/s-pack112.ads: Likewise.
|
||
* libgnat/s-pack113.ads: Likewise.
|
||
* libgnat/s-pack114.ads: Likewise.
|
||
* libgnat/s-pack115.ads: Likewise.
|
||
* libgnat/s-pack116.ads: Likewise.
|
||
* libgnat/s-pack117.ads: Likewise.
|
||
* libgnat/s-pack118.ads: Likewise.
|
||
* libgnat/s-pack119.ads: Likewise.
|
||
* libgnat/s-pack12.ads: Likewise.
|
||
* libgnat/s-pack120.ads: Likewise.
|
||
* libgnat/s-pack121.ads: Likewise.
|
||
* libgnat/s-pack122.ads: Likewise.
|
||
* libgnat/s-pack123.ads: Likewise.
|
||
* libgnat/s-pack124.ads: Likewise.
|
||
* libgnat/s-pack125.ads: Likewise.
|
||
* libgnat/s-pack126.ads: Likewise.
|
||
* libgnat/s-pack127.ads: Likewise.
|
||
* libgnat/s-pack13.ads: Likewise.
|
||
* libgnat/s-pack14.ads: Likewise.
|
||
* libgnat/s-pack15.ads: Likewise.
|
||
* libgnat/s-pack17.ads: Likewise.
|
||
* libgnat/s-pack18.ads: Likewise.
|
||
* libgnat/s-pack19.ads: Likewise.
|
||
* libgnat/s-pack20.ads: Likewise.
|
||
* libgnat/s-pack21.ads: Likewise.
|
||
* libgnat/s-pack22.ads: Likewise.
|
||
* libgnat/s-pack23.ads: Likewise.
|
||
* libgnat/s-pack24.ads: Likewise.
|
||
* libgnat/s-pack25.ads: Likewise.
|
||
* libgnat/s-pack26.ads: Likewise.
|
||
* libgnat/s-pack27.ads: Likewise.
|
||
* libgnat/s-pack28.ads: Likewise.
|
||
* libgnat/s-pack29.ads: Likewise.
|
||
* libgnat/s-pack30.ads: Likewise.
|
||
* libgnat/s-pack31.ads: Likewise.
|
||
* libgnat/s-pack33.ads: Likewise.
|
||
* libgnat/s-pack34.ads: Likewise.
|
||
* libgnat/s-pack35.ads: Likewise.
|
||
* libgnat/s-pack36.ads: Likewise.
|
||
* libgnat/s-pack37.ads: Likewise.
|
||
* libgnat/s-pack38.ads: Likewise.
|
||
* libgnat/s-pack39.ads: Likewise.
|
||
* libgnat/s-pack40.ads: Likewise.
|
||
* libgnat/s-pack41.ads: Likewise.
|
||
* libgnat/s-pack42.ads: Likewise.
|
||
* libgnat/s-pack43.ads: Likewise.
|
||
* libgnat/s-pack44.ads: Likewise.
|
||
* libgnat/s-pack45.ads: Likewise.
|
||
* libgnat/s-pack46.ads: Likewise.
|
||
* libgnat/s-pack47.ads: Likewise.
|
||
* libgnat/s-pack48.ads: Likewise.
|
||
* libgnat/s-pack49.ads: Likewise.
|
||
* libgnat/s-pack50.ads: Likewise.
|
||
* libgnat/s-pack51.ads: Likewise.
|
||
* libgnat/s-pack52.ads: Likewise.
|
||
* libgnat/s-pack53.ads: Likewise.
|
||
* libgnat/s-pack54.ads: Likewise.
|
||
* libgnat/s-pack55.ads: Likewise.
|
||
* libgnat/s-pack56.ads: Likewise.
|
||
* libgnat/s-pack57.ads: Likewise.
|
||
* libgnat/s-pack58.ads: Likewise.
|
||
* libgnat/s-pack59.ads: Likewise.
|
||
* libgnat/s-pack60.ads: Likewise.
|
||
* libgnat/s-pack61.ads: Likewise.
|
||
* libgnat/s-pack62.ads: Likewise.
|
||
* libgnat/s-pack63.ads: Likewise.
|
||
* libgnat/s-pack65.ads: Likewise.
|
||
* libgnat/s-pack66.ads: Likewise.
|
||
* libgnat/s-pack67.ads: Likewise.
|
||
* libgnat/s-pack68.ads: Likewise.
|
||
* libgnat/s-pack69.ads: Likewise.
|
||
* libgnat/s-pack70.ads: Likewise.
|
||
* libgnat/s-pack71.ads: Likewise.
|
||
* libgnat/s-pack72.ads: Likewise.
|
||
* libgnat/s-pack73.ads: Likewise.
|
||
* libgnat/s-pack74.ads: Likewise.
|
||
* libgnat/s-pack75.ads: Likewise.
|
||
* libgnat/s-pack76.ads: Likewise.
|
||
* libgnat/s-pack77.ads: Likewise.
|
||
* libgnat/s-pack78.ads: Likewise.
|
||
* libgnat/s-pack79.ads: Likewise.
|
||
* libgnat/s-pack80.ads: Likewise.
|
||
* libgnat/s-pack81.ads: Likewise.
|
||
* libgnat/s-pack82.ads: Likewise.
|
||
* libgnat/s-pack83.ads: Likewise.
|
||
* libgnat/s-pack84.ads: Likewise.
|
||
* libgnat/s-pack85.ads: Likewise.
|
||
* libgnat/s-pack86.ads: Likewise.
|
||
* libgnat/s-pack87.ads: Likewise.
|
||
* libgnat/s-pack88.ads: Likewise.
|
||
* libgnat/s-pack89.ads: Likewise.
|
||
* libgnat/s-pack90.ads: Likewise.
|
||
* libgnat/s-pack91.ads: Likewise.
|
||
* libgnat/s-pack92.ads: Likewise.
|
||
* libgnat/s-pack93.ads: Likewise.
|
||
* libgnat/s-pack94.ads: Likewise.
|
||
* libgnat/s-pack95.ads: Likewise.
|
||
* libgnat/s-pack96.ads: Likewise.
|
||
* libgnat/s-pack97.ads: Likewise.
|
||
* libgnat/s-pack98.ads: Likewise.
|
||
* libgnat/s-pack99.ads: Likewise.
|
||
* libgnat/s-parame.ads: Likewise.
|
||
* libgnat/s-rident.ads: Likewise.
|
||
* libgnat/s-spark.ads: Likewise.
|
||
* libgnat/s-spcuop.ads: Likewise.
|
||
* libgnat/s-stoele.ads: Likewise.
|
||
* libgnat/s-traent.ads: Likewise.
|
||
* libgnat/s-unstyp.ads: Likewise.
|
||
* libgnat/s-vaispe.ads: Likewise.
|
||
* libgnat/s-valspe.ads: Likewise.
|
||
* libgnat/s-vauspe.ads: Likewise.
|
||
* libgnat/s-veboop.ads: Likewise.
|
||
* libgnat/s-vector.ads: Likewise.
|
||
* libgnat/s-vs_int.ads: Likewise.
|
||
* libgnat/s-vs_lli.ads: Likewise.
|
||
* libgnat/s-vs_llu.ads: Likewise.
|
||
* libgnat/s-vs_uns.ads: Likewise.
|
||
* libgnat/s-vsllli.ads: Likewise.
|
||
* libgnat/text_io.ads: Likewise.
|
||
* libgnat/unchconv.ads: Likewise.
|
||
* libgnat/unchdeal.ads: Likewise.
|
||
* s-pack.ads.tmpl: Likewise.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* s-pack.adb.tmpl: Add '7' suffix to all existing constructs and
|
||
add variants with suffixes ranging from '0' to '6'.
|
||
(Get_@@): Dereference the address as a record object whose accessed
|
||
component is always the last.
|
||
(GetU_@@): Likewise.
|
||
(Set_@@): Likewise.
|
||
(SetU_@@): Likewise.
|
||
* libgnat/s-pack03.adb: Regenerate.
|
||
* libgnat/s-pack05.adb: Likewise.
|
||
* libgnat/s-pack06.adb: Likewise.
|
||
* libgnat/s-pack07.adb: Likewise.
|
||
* libgnat/s-pack09.adb: Likewise.
|
||
* libgnat/s-pack10.adb: Likewise.
|
||
* libgnat/s-pack100.adb: Likewise.
|
||
* libgnat/s-pack101.adb: Likewise.
|
||
* libgnat/s-pack102.adb: Likewise.
|
||
* libgnat/s-pack103.adb: Likewise.
|
||
* libgnat/s-pack104.adb: Likewise.
|
||
* libgnat/s-pack105.adb: Likewise.
|
||
* libgnat/s-pack106.adb: Likewise.
|
||
* libgnat/s-pack107.adb: Likewise.
|
||
* libgnat/s-pack108.adb: Likewise.
|
||
* libgnat/s-pack109.adb: Likewise.
|
||
* libgnat/s-pack11.adb: Likewise.
|
||
* libgnat/s-pack110.adb: Likewise.
|
||
* libgnat/s-pack111.adb: Likewise.
|
||
* libgnat/s-pack112.adb: Likewise.
|
||
* libgnat/s-pack113.adb: Likewise.
|
||
* libgnat/s-pack114.adb: Likewise.
|
||
* libgnat/s-pack115.adb: Likewise.
|
||
* libgnat/s-pack116.adb: Likewise.
|
||
* libgnat/s-pack117.adb: Likewise.
|
||
* libgnat/s-pack118.adb: Likewise.
|
||
* libgnat/s-pack119.adb: Likewise.
|
||
* libgnat/s-pack12.adb: Likewise.
|
||
* libgnat/s-pack120.adb: Likewise.
|
||
* libgnat/s-pack121.adb: Likewise.
|
||
* libgnat/s-pack122.adb: Likewise.
|
||
* libgnat/s-pack123.adb: Likewise.
|
||
* libgnat/s-pack124.adb: Likewise.
|
||
* libgnat/s-pack125.adb: Likewise.
|
||
* libgnat/s-pack126.adb: Likewise.
|
||
* libgnat/s-pack127.adb: Likewise.
|
||
* libgnat/s-pack13.adb: Likewise.
|
||
* libgnat/s-pack14.adb: Likewise.
|
||
* libgnat/s-pack15.adb: Likewise.
|
||
* libgnat/s-pack17.adb: Likewise.
|
||
* libgnat/s-pack18.adb: Likewise.
|
||
* libgnat/s-pack19.adb: Likewise.
|
||
* libgnat/s-pack20.adb: Likewise.
|
||
* libgnat/s-pack21.adb: Likewise.
|
||
* libgnat/s-pack22.adb: Likewise.
|
||
* libgnat/s-pack23.adb: Likewise.
|
||
* libgnat/s-pack24.adb: Likewise.
|
||
* libgnat/s-pack25.adb: Likewise.
|
||
* libgnat/s-pack26.adb: Likewise.
|
||
* libgnat/s-pack27.adb: Likewise.
|
||
* libgnat/s-pack28.adb: Likewise.
|
||
* libgnat/s-pack29.adb: Likewise.
|
||
* libgnat/s-pack30.adb: Likewise.
|
||
* libgnat/s-pack31.adb: Likewise.
|
||
* libgnat/s-pack33.adb: Likewise.
|
||
* libgnat/s-pack34.adb: Likewise.
|
||
* libgnat/s-pack35.adb: Likewise.
|
||
* libgnat/s-pack36.adb: Likewise.
|
||
* libgnat/s-pack37.adb: Likewise.
|
||
* libgnat/s-pack38.adb: Likewise.
|
||
* libgnat/s-pack39.adb: Likewise.
|
||
* libgnat/s-pack40.adb: Likewise.
|
||
* libgnat/s-pack41.adb: Likewise.
|
||
* libgnat/s-pack42.adb: Likewise.
|
||
* libgnat/s-pack43.adb: Likewise.
|
||
* libgnat/s-pack44.adb: Likewise.
|
||
* libgnat/s-pack45.adb: Likewise.
|
||
* libgnat/s-pack46.adb: Likewise.
|
||
* libgnat/s-pack47.adb: Likewise.
|
||
* libgnat/s-pack48.adb: Likewise.
|
||
* libgnat/s-pack49.adb: Likewise.
|
||
* libgnat/s-pack50.adb: Likewise.
|
||
* libgnat/s-pack51.adb: Likewise.
|
||
* libgnat/s-pack52.adb: Likewise.
|
||
* libgnat/s-pack53.adb: Likewise.
|
||
* libgnat/s-pack54.adb: Likewise.
|
||
* libgnat/s-pack55.adb: Likewise.
|
||
* libgnat/s-pack56.adb: Likewise.
|
||
* libgnat/s-pack57.adb: Likewise.
|
||
* libgnat/s-pack58.adb: Likewise.
|
||
* libgnat/s-pack59.adb: Likewise.
|
||
* libgnat/s-pack60.adb: Likewise.
|
||
* libgnat/s-pack61.adb: Likewise.
|
||
* libgnat/s-pack62.adb: Likewise.
|
||
* libgnat/s-pack63.adb: Likewise.
|
||
* libgnat/s-pack65.adb: Likewise.
|
||
* libgnat/s-pack66.adb: Likewise.
|
||
* libgnat/s-pack67.adb: Likewise.
|
||
* libgnat/s-pack68.adb: Likewise.
|
||
* libgnat/s-pack69.adb: Likewise.
|
||
* libgnat/s-pack70.adb: Likewise.
|
||
* libgnat/s-pack71.adb: Likewise.
|
||
* libgnat/s-pack72.adb: Likewise.
|
||
* libgnat/s-pack73.adb: Likewise.
|
||
* libgnat/s-pack74.adb: Likewise.
|
||
* libgnat/s-pack75.adb: Likewise.
|
||
* libgnat/s-pack76.adb: Likewise.
|
||
* libgnat/s-pack77.adb: Likewise.
|
||
* libgnat/s-pack78.adb: Likewise.
|
||
* libgnat/s-pack79.adb: Likewise.
|
||
* libgnat/s-pack80.adb: Likewise.
|
||
* libgnat/s-pack81.adb: Likewise.
|
||
* libgnat/s-pack82.adb: Likewise.
|
||
* libgnat/s-pack83.adb: Likewise.
|
||
* libgnat/s-pack84.adb: Likewise.
|
||
* libgnat/s-pack85.adb: Likewise.
|
||
* libgnat/s-pack86.adb: Likewise.
|
||
* libgnat/s-pack87.adb: Likewise.
|
||
* libgnat/s-pack88.adb: Likewise.
|
||
* libgnat/s-pack89.adb: Likewise.
|
||
* libgnat/s-pack90.adb: Likewise.
|
||
* libgnat/s-pack91.adb: Likewise.
|
||
* libgnat/s-pack92.adb: Likewise.
|
||
* libgnat/s-pack93.adb: Likewise.
|
||
* libgnat/s-pack94.adb: Likewise.
|
||
* libgnat/s-pack95.adb: Likewise.
|
||
* libgnat/s-pack96.adb: Likewise.
|
||
* libgnat/s-pack97.adb: Likewise.
|
||
* libgnat/s-pack98.adb: Likewise.
|
||
* libgnat/s-pack99.adb: Likewise.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114127
|
||
* sem_aggr.adb (Is_Null_Aggregate): Replace test on Ada_Version
|
||
with test on Nkind.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Do not call
|
||
Checks_Off on the newly built N_Indexed_Component node but instead
|
||
set Kill_Range_Check on it.
|
||
* exp_ch4.ads (Expand_N_Unchecked_Expression): Delete.
|
||
* exp_ch4.adb (Expand_N_Indexed_Component): Remove handling of
|
||
N_Unchecked_Expression.
|
||
(Expand_N_Unchecked_Expression): Delete.
|
||
(Expand_N_Unchecked_Type_Conversion): Propagate the Assignment_OK
|
||
flag and rewrite the node manually.
|
||
* exp_util.adb (Insert_Actions): Remove handling of
|
||
N_Unchecked_Expression.
|
||
(Side_Effect_Free): Likewise.
|
||
* expander.adb (Expand): Likewise.
|
||
* gen_il-gen-gen_nodes.adb (N_Indexed_Component): Add flag
|
||
Kill_Range_Check for the purpose of semantics.
|
||
(N_Unchecked_Expression): Delete.
|
||
* gen_il-internals.ads (Type_Frequency): Remove entry for
|
||
N_Unchecked_Expression.
|
||
* gen_il-types.ads (Opt_Type_Enum): Remove N_Unchecked_Expression.
|
||
* pprint.adb (Expression_Image): Remove handling of
|
||
N_Unchecked_Expression.
|
||
* sem.adb (Analyze): Likewise.
|
||
* sem_ch4.ads (Analyze_Unchecked_Expression): Delete.
|
||
* sem_ch4.adb (Analyze_Unchecked_Expression): Likewise.
|
||
* sem_res.adb (Resolve_Unchecked_Expression): Likewise.
|
||
(Resolve): Remove handling of N_Unchecked_Expression.
|
||
(Resolve_Indexed_Component): Do not call Apply_Scalar_Range_Check
|
||
on the expressions if Kill_Range_Check is set on the node.
|
||
* sem_util.adb (Is_Non_Preelaborable_Construct): Remove handling of
|
||
N_Unchecked_Expression.
|
||
* sinfo.ads (Kill_Range_Check): Document it for N_Indexed_Component.
|
||
(Unchecked Expression): Delete specification.
|
||
* sprint.adb (Sprint_Node_Actual): Remove handling of
|
||
N_Unchecked_Expression.
|
||
* tbuild.ads (Checks_Off): Delete.
|
||
* tbuild.adb (Checks_Off): Likewise.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/112979
|
||
* sem_ch8.adb (Find_Selected_Component): Try to recognize the
|
||
object operation notation only if the selector is a subprogram.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/113037
|
||
* sem_prag.adb (Analyze_Pragma) <Pragma_Invariant>: Reject types
|
||
that are derived from formal private types.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/112821
|
||
* scans.ads (Token_Type): Remove Tok_Left_Bracket from Namext.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114300
|
||
* exp_ch7.adb (Attach_Object_To_Master_Node): Propagate the
|
||
Is_Ignored_Ghost_Entity flag from the finalization procedure.
|
||
(Build_Finalizer.Process_Declarations): Move up the test on
|
||
Is_Ignored_Ghost_Entity.
|
||
* exp_util.adb (Requires_Cleanup_Actions): Likewise.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/55725
|
||
* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Be
|
||
prepared for no collection if the access type is anonymous.
|
||
* exp_ch7.adb (Build_Anonymous_Collection): Return early for the
|
||
anonymous access result type of a library function.
|
||
|
||
2024-11-12 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_util.adb (Make_Variant_Comparison): Accept new types in
|
||
expansion.
|
||
* rtsfind.adb (Get_Unit_Name): Support SPARK.Big_Integers.
|
||
* rtsfind.ads (RTU_Id, RE_Id, RE_Unit_Table): Support new type
|
||
and its enclosing unit.
|
||
* sem_prag.adb (Analyze_Pragma): Support new type in pragma
|
||
Loop_Variant.
|
||
(Analyze_Subprogram_Variant_In_Decl_Part): Support new type in
|
||
aspect Subprogram_Variant.
|
||
|
||
2024-11-12 Viljar Indus <indus@adacore.com>
|
||
|
||
* libgnarl/s-interr__vxworks.ads (new): A VXWorks specific
|
||
version of the file where Register_Interrupt_Handler is marked
|
||
with the Obsolescent pragma.
|
||
* libgnarl/s-interr__vxworks.adb: Remove pragma Obsoloescent
|
||
that had no effect.
|
||
* Makefile.rtl: Add entries for using the
|
||
libgnarl/s-interr__vxworks.ads file.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/113868
|
||
* par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>:
|
||
Add delta aggregate alongside the other forms of aggregates.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): In the case of an others
|
||
choice with a box, do not call Resolve_Aggr_Exp and give the error
|
||
for a multidimensional array directly.
|
||
(Resolve_Aggr_Expr): Remove bypasses for above case.
|
||
|
||
2024-11-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* frontend.adb (Frontend): Move call to Fmap.Initialize ...
|
||
* gnat1drv.adb (Gnat1drv): ... here. Look up Fmap when loading System.
|
||
* par-prag.adb (Prag): Allow pragma Source_File_Name for System when
|
||
it confirms an existing mapping.
|
||
|
||
2024-11-12 Richard Kenner <kenner@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor
|
||
markup errors.
|
||
* doc/gnat_ugn/gnat_utility_programs.rst: Likewise.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* s-pack.adb.tmpl: Add "with System.Address_To_Access_Conversions".
|
||
(Cluster_Ref): Delete.
|
||
(AAC): New instance of System.Address_To_Access_Conversions.
|
||
(Rev_Cluster_Ref): Delete.
|
||
(Rev_ACC): New instance of System.Address_To_Access_Conversions.
|
||
(ClusterU_Ref): Delete.
|
||
(AACU): New instance of System.Address_To_Access_Conversions.
|
||
(Rev_ClusterU_Ref): Delete.
|
||
(Rev_ACCU): New instance of System.Address_To_Access_Conversions.
|
||
(Get_@@): Use a direct address-to-access conversion.
|
||
(GetU_@@): Likewise.
|
||
(Set_@@): Likewise.
|
||
(SetU_@@): Likewise.
|
||
* libgnat/s-pack03.adb: Regenerate.
|
||
* libgnat/s-pack05.adb: Likewise.
|
||
* libgnat/s-pack06.adb: Likewise.
|
||
* libgnat/s-pack07.adb: Likewise.
|
||
* libgnat/s-pack09.adb: Likewise.
|
||
* libgnat/s-pack10.adb: Likewise.
|
||
* libgnat/s-pack100.adb: Likewise.
|
||
* libgnat/s-pack101.adb: Likewise.
|
||
* libgnat/s-pack102.adb: Likewise.
|
||
* libgnat/s-pack103.adb: Likewise.
|
||
* libgnat/s-pack104.adb: Likewise.
|
||
* libgnat/s-pack105.adb: Likewise.
|
||
* libgnat/s-pack106.adb: Likewise.
|
||
* libgnat/s-pack107.adb: Likewise.
|
||
* libgnat/s-pack108.adb: Likewise.
|
||
* libgnat/s-pack109.adb: Likewise.
|
||
* libgnat/s-pack11.adb: Likewise.
|
||
* libgnat/s-pack110.adb: Likewise.
|
||
* libgnat/s-pack111.adb: Likewise.
|
||
* libgnat/s-pack112.adb: Likewise.
|
||
* libgnat/s-pack113.adb: Likewise.
|
||
* libgnat/s-pack114.adb: Likewise.
|
||
* libgnat/s-pack115.adb: Likewise.
|
||
* libgnat/s-pack116.adb: Likewise.
|
||
* libgnat/s-pack117.adb: Likewise.
|
||
* libgnat/s-pack118.adb: Likewise.
|
||
* libgnat/s-pack119.adb: Likewise.
|
||
* libgnat/s-pack12.adb: Likewise.
|
||
* libgnat/s-pack120.adb: Likewise.
|
||
* libgnat/s-pack121.adb: Likewise.
|
||
* libgnat/s-pack122.adb: Likewise.
|
||
* libgnat/s-pack123.adb: Likewise.
|
||
* libgnat/s-pack124.adb: Likewise.
|
||
* libgnat/s-pack125.adb: Likewise.
|
||
* libgnat/s-pack126.adb: Likewise.
|
||
* libgnat/s-pack127.adb: Likewise.
|
||
* libgnat/s-pack13.adb: Likewise.
|
||
* libgnat/s-pack14.adb: Likewise.
|
||
* libgnat/s-pack15.adb: Likewise.
|
||
* libgnat/s-pack17.adb: Likewise.
|
||
* libgnat/s-pack18.adb: Likewise.
|
||
* libgnat/s-pack19.adb: Likewise.
|
||
* libgnat/s-pack20.adb: Likewise.
|
||
* libgnat/s-pack21.adb: Likewise.
|
||
* libgnat/s-pack22.adb: Likewise.
|
||
* libgnat/s-pack23.adb: Likewise.
|
||
* libgnat/s-pack24.adb: Likewise.
|
||
* libgnat/s-pack25.adb: Likewise.
|
||
* libgnat/s-pack26.adb: Likewise.
|
||
* libgnat/s-pack27.adb: Likewise.
|
||
* libgnat/s-pack28.adb: Likewise.
|
||
* libgnat/s-pack29.adb: Likewise.
|
||
* libgnat/s-pack30.adb: Likewise.
|
||
* libgnat/s-pack31.adb: Likewise.
|
||
* libgnat/s-pack33.adb: Likewise.
|
||
* libgnat/s-pack34.adb: Likewise.
|
||
* libgnat/s-pack35.adb: Likewise.
|
||
* libgnat/s-pack36.adb: Likewise.
|
||
* libgnat/s-pack37.adb: Likewise.
|
||
* libgnat/s-pack38.adb: Likewise.
|
||
* libgnat/s-pack39.adb: Likewise.
|
||
* libgnat/s-pack40.adb: Likewise.
|
||
* libgnat/s-pack41.adb: Likewise.
|
||
* libgnat/s-pack42.adb: Likewise.
|
||
* libgnat/s-pack43.adb: Likewise.
|
||
* libgnat/s-pack44.adb: Likewise.
|
||
* libgnat/s-pack45.adb: Likewise.
|
||
* libgnat/s-pack46.adb: Likewise.
|
||
* libgnat/s-pack47.adb: Likewise.
|
||
* libgnat/s-pack48.adb: Likewise.
|
||
* libgnat/s-pack49.adb: Likewise.
|
||
* libgnat/s-pack50.adb: Likewise.
|
||
* libgnat/s-pack51.adb: Likewise.
|
||
* libgnat/s-pack52.adb: Likewise.
|
||
* libgnat/s-pack53.adb: Likewise.
|
||
* libgnat/s-pack54.adb: Likewise.
|
||
* libgnat/s-pack55.adb: Likewise.
|
||
* libgnat/s-pack56.adb: Likewise.
|
||
* libgnat/s-pack57.adb: Likewise.
|
||
* libgnat/s-pack58.adb: Likewise.
|
||
* libgnat/s-pack59.adb: Likewise.
|
||
* libgnat/s-pack60.adb: Likewise.
|
||
* libgnat/s-pack61.adb: Likewise.
|
||
* libgnat/s-pack62.adb: Likewise.
|
||
* libgnat/s-pack63.adb: Likewise.
|
||
* libgnat/s-pack65.adb: Likewise.
|
||
* libgnat/s-pack66.adb: Likewise.
|
||
* libgnat/s-pack67.adb: Likewise.
|
||
* libgnat/s-pack68.adb: Likewise.
|
||
* libgnat/s-pack69.adb: Likewise.
|
||
* libgnat/s-pack70.adb: Likewise.
|
||
* libgnat/s-pack71.adb: Likewise.
|
||
* libgnat/s-pack72.adb: Likewise.
|
||
* libgnat/s-pack73.adb: Likewise.
|
||
* libgnat/s-pack74.adb: Likewise.
|
||
* libgnat/s-pack75.adb: Likewise.
|
||
* libgnat/s-pack76.adb: Likewise.
|
||
* libgnat/s-pack77.adb: Likewise.
|
||
* libgnat/s-pack78.adb: Likewise.
|
||
* libgnat/s-pack79.adb: Likewise.
|
||
* libgnat/s-pack80.adb: Likewise.
|
||
* libgnat/s-pack81.adb: Likewise.
|
||
* libgnat/s-pack82.adb: Likewise.
|
||
* libgnat/s-pack83.adb: Likewise.
|
||
* libgnat/s-pack84.adb: Likewise.
|
||
* libgnat/s-pack85.adb: Likewise.
|
||
* libgnat/s-pack86.adb: Likewise.
|
||
* libgnat/s-pack87.adb: Likewise.
|
||
* libgnat/s-pack88.adb: Likewise.
|
||
* libgnat/s-pack89.adb: Likewise.
|
||
* libgnat/s-pack90.adb: Likewise.
|
||
* libgnat/s-pack91.adb: Likewise.
|
||
* libgnat/s-pack92.adb: Likewise.
|
||
* libgnat/s-pack93.adb: Likewise.
|
||
* libgnat/s-pack94.adb: Likewise.
|
||
* libgnat/s-pack95.adb: Likewise.
|
||
* libgnat/s-pack96.adb: Likewise.
|
||
* libgnat/s-pack97.adb: Likewise.
|
||
* libgnat/s-pack98.adb: Likewise.
|
||
* libgnat/s-pack99.adb: Likewise.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sinfo.ads (Assignment_OK): Remove obsolete ??? comment.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* checks.adb (Range_Checks_Suppressed): Remove test on the
|
||
Kill_Range_Checks flag.
|
||
* einfo.ads (Kill_Range_Checks): Delete.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Remove Kill_Range_Checks.
|
||
* gen_il-gen-gen_entities.adb (Entity_Kind): Likewise.
|
||
* sem_ch3.adb (Record_Type_Declaration): Do not set the
|
||
Kill_Range_Checks flag.
|
||
* sem_util.adb (Denotes_Discriminant): In a default expression,
|
||
also return True for a discriminal.
|
||
|
||
2024-11-12 Steve Baird <baird@adacore.com>
|
||
|
||
* prep.adb (Expression): Improve error message text when an
|
||
implicitly-defined Boolean-valued symbol is used in a context that
|
||
requires an integer value.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Directly test
|
||
the node and remove dead code for extended return statements.
|
||
|
||
2024-11-12 Johannes Kliemann <kliemann@adacore.com>
|
||
|
||
* Makefile.rtl: Use libgnat/s-parame__aarch64-linux.adb for
|
||
s-parame.adb on aarch64-linux.
|
||
* libgnat/s-parame__aarch64-linux.adb: Add file.
|
||
|
||
2024-11-12 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/the_implementation_of_standard_i_o.rst
|
||
(Shared Files): Add trailing period.
|
||
* libgnat/s-ficobl.ads (AFCB): Reflect new behavior in comment.
|
||
* libgnat/s-fileio.adb (Open): Detect inconsistent sharing,
|
||
just like we do in System.File_IO.Reset.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-12 squirek <squirek@adacore.com>
|
||
|
||
* accessibility.adb (Type_Access_Level): Add handling for
|
||
subprogram aliases.
|
||
|
||
2024-11-12 squirek <squirek@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Type_Conversion): Add special runtime check
|
||
generation for mutably tagged objects.
|
||
|
||
2024-11-12 Douglas B Rupp <rupp@adacore.com>
|
||
|
||
* libgnat/a-calcon.adb (To_Ada_Time) (To_Duration)
|
||
(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
|
||
(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
|
||
(To_Unix_Time_64): New.
|
||
* libgnat/a-calcon.ads (To_Ada_Time) (To_Duration)
|
||
(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
|
||
(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
|
||
(To_Unix_Time_64): New.
|
||
* libgnat/a-calend.adb (To_Ada_Time) (To_Duration)
|
||
(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
|
||
(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
|
||
(To_Unix_Time_64): New.
|
||
* libgnat/a-calend.ads (To_Ada_Time) (To_Duration)
|
||
(To_Struct_Timespec) (To_Unix_Time): Mark as obsolescent.
|
||
(To_Ada_Time_64) (To_Duration_64) (To_Struct_Timespec_64)
|
||
(To_Unix_Time_64): New.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117018
|
||
* exp_aggr.adb (Build_Array_Aggr_Code): Do not expect the
|
||
Loop_Actions field to be already present on association nodes.
|
||
* exp_util.adb (Insert_Actions): For association nodes, insert
|
||
into the Loop_Actions field only if it is already present.
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Add Iterated parameter.
|
||
(Resolve_Aggregate): Adjust calls to Resolve_Array_Aggregate.
|
||
(Resolve_Aggr_Expr): Add Iterated_Elmt defaulted parameter and
|
||
a default for Single_Elmt. Adjust call to Resolve_Array_Aggregate.
|
||
Preanalyze a copy of the expression in an iteration context.
|
||
(Resolve_Iterated_Component_Association): Pass Iterated_Elmt as
|
||
True to Resolve_Aggr_Expr and remove processing of Loop_Actions.
|
||
Do not check incorrect use of dynamically tagged expression in
|
||
an iteration context.
|
||
(Resolve_Iterated_Association): Use Copy_Separate_Tree instead of
|
||
New_Copy_Tree and set the Parent field of the result.
|
||
(Resolve_Delta_Array_Aggregate): Likewise. Only preanalyze the
|
||
copy instead of analyzing it.
|
||
|
||
2024-11-12 Richard Kenner <kenner@adacore.com>
|
||
|
||
* doc/gnat_ugn/about_this_guide.rst: Add information about GNAT LLVM.
|
||
Be consistent about spelling of "back end".
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Likewise.
|
||
* doc/gnat_ugn/gnat_and_program_execution.rst: Be consistent about
|
||
spelling of "back end".
|
||
* doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* mdll.adb (Build_Dynamic_Library): Fix indentation.
|
||
|
||
2024-11-12 Pascal Obry <obry@adacore.com>
|
||
|
||
* mdll.adb: Use the same procedure to create relocatable or non
|
||
relocatable DLL. The only difference is wether the base address is
|
||
passed to the final linker. If no base-address is given the DLL is
|
||
relocatable.
|
||
|
||
2024-11-12 squirek <squirek@adacore.com>
|
||
|
||
* inline.adb (In_Main_Unit_Or_Subunit): Use Other_Comp_Unit instead of
|
||
Spec_Or_Body_Lib_Unit.
|
||
(Must_Inline): Use Other_Comp_Unit instead of Spec_Or_Body_Lib_Unit.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Also return
|
||
True for functions returning on the secondary stack or returning
|
||
a by-reference type if the back end exposes its return slot.
|
||
(Expand_Array_Aggregate): Call Is_Build_In_Place_Aggregate_Return
|
||
to spot aggregates to be built in place.
|
||
* exp_ch3.adb (Make_Allocator_For_Return): Add missing condition
|
||
in assertion pragma deduced from Expand_Subtype_From_Expr.
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): Rewrite the statement
|
||
as an extended return statement if the expression is an aggregate
|
||
whose expansion is delayed. Properly relocate the expression in
|
||
this case.
|
||
* sem_ch6.adb: Add clauses for Exp_Aggr.
|
||
(Analyze_Function_Return): Do not apply the predicate check to an
|
||
aggregate whose expansion is delayed. Extended the processing of
|
||
case expressions to all conditional expressions.
|
||
|
||
2024-11-12 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnat2.gpr: New file.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Delta_Array_Aggregate): Move declaration.
|
||
(Expand_Delta_Record_Aggregate): Likewise.
|
||
(Expand_Container_Aggregate): Likewise. Move implementation to
|
||
Build_Container_Aggr_Code. Implement built-in-place expansion
|
||
for object declarations and allocators.
|
||
(Build_Container_Aggr_Code): New function containing most of the
|
||
code of the original Expand_Container_Aggregate. Do not build a
|
||
temporary for the size calculation. Minor formatting tweaks.
|
||
(Expand_N_Aggregate): Add comment.
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Detect the case of
|
||
a container aggregate as qualified expression. Do not apply the
|
||
predicate check on entry in this case and rewrite the allocator.
|
||
* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Deal
|
||
with Last_Aggregate_Assignment first to compute the attachment
|
||
point (as already done in Attach_Object_To_Master_Node).
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aux.ads (Has_Unconstrained_Elements): Delete.
|
||
* sem_aux.adb (Has_Unconstrained_Elements): Likewise.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete code.
|
||
|
||
2024-11-12 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* sem.adb (Process_Bodies_In_Context): check that Spec's unit is
|
||
an N_Lib_Unit_Declaration_Id.
|
||
|
||
2024-11-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Assign_Array): Make Act_Rhs a constant and
|
||
do not recompute it, as well as R_Type, when there is a change of
|
||
representation. Move comment about the RHS from here to...
|
||
(Expand_N_Assignment_Statement): ...here.
|
||
|
||
2024-11-12 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* xspack.py: New
|
||
* s-pack.ads.tmpl: New.
|
||
* s-pack.adb.tmpl: New.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Recognize null
|
||
string literal subtypes and set their bounds to 1 .. 0.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Remove special
|
||
case for string literal subtypes.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (process_decls): Remove tests on Nkind that
|
||
contain a typo and would be redundant if written correctly.
|
||
|
||
2024-11-04 Bob Duff <duff@adacore.com>
|
||
|
||
* sinfo.ads (Library_Unit): Rewrite documentation. Note that
|
||
the "??? not (always) true..." comment was not true;
|
||
the Subunit_Parent never points to the spec.
|
||
(N_Compilation_Unit): Improve documentation. The Aux_ node
|
||
was not created to solve the mentioned problems; it was
|
||
created because the size of nodes was limited.
|
||
Misc doc improvements.
|
||
* sinfo-utils.ads: Add new wrappers for Library_Unit field.
|
||
Use subtypes with predicates for the parameters.
|
||
(First_Real_Statement): Still used in codepeer.
|
||
* sinfo-utils.adb: Add new wrappers for Library_Unit field,
|
||
with suitable assertions.
|
||
* sem_prag.adb: Use new field wrapper names.
|
||
(Matching_Name): New name for Same_Name to avoid
|
||
potential confusion with the other function with the
|
||
same name (Sem_Util.Same_Name), which is also called
|
||
in this same file.
|
||
(Matching_Convention): Change Same_Convention to match
|
||
Matching_Name.
|
||
* sem_util.ads (Same_Name): Improve comments; the old comment
|
||
implied that it works for all names, which was not true.
|
||
* sem_util.adb: Use new field wrapper names.
|
||
* gen_il-gen.adb: Rename N_Unit_Body to be N_Lib_Unit_Body.
|
||
Plain "unit" is ambiguous in Ada (library unit, compilation
|
||
unit, program unit, etc).
|
||
Add new union types N_Lib_Unit_Declaration and
|
||
N_Lib_Unit_Renaming_Declaration.
|
||
* gen_il-gen-gen_nodes.adb (Compute_Ranges): Raise exception
|
||
earlier (it is already raised later, in Verify_Type_Table).
|
||
Add a comment explaining why it might be raised.
|
||
* gen_il-types.ads: Rename N_Unit_Body to be N_Lib_Unit_Body, and add
|
||
new N_Lib_Unit_Declaration and N_Lib_Unit_Renaming_Declaration.
|
||
* einfo.ads: Fix obsolete comment (was left over from before
|
||
the "variable-sized nodes").
|
||
* exp_ch7.adb: Use new field wrapper names.
|
||
* exp_disp.adb: Use new field wrapper names.
|
||
* exp_unst.adb: Use new field wrapper names.
|
||
* exp_util.adb: Use new field wrapper names.
|
||
* fe.h: Add new field wrapper names. These are currently not
|
||
used in gigi, but this change prepares for using them in
|
||
gigi.
|
||
* inline.adb: Use new field wrapper names.
|
||
* lib.adb: Use new field wrapper names.
|
||
Comment improvements.
|
||
* lib-load.adb: Use new field wrapper names.
|
||
Minor cleanup.
|
||
* lib-writ.adb: Use new field wrapper names.
|
||
* live.adb: Use new field wrapper names.
|
||
* par-load.adb: Use new field wrapper names.
|
||
Comment improvements. Minor cleanup.
|
||
* rtsfind.adb: Use new field wrapper names.
|
||
* sem.adb: Use new field wrapper names.
|
||
* sem_ch10.adb: Use new field wrapper names.
|
||
Comment improvements. Minor cleanup.
|
||
* sem_ch12.adb: Use new field wrapper names.
|
||
* sem_ch7.adb: Use new field wrapper names.
|
||
* sem_ch8.adb: Use new field wrapper names.
|
||
* sem_elab.adb: Use new field wrapper names.
|
||
Comment improvements.
|
||
* errout.adb (Output_Source_Line): Fix blowup in some
|
||
obscure cases, where List_Pragmas is not fully set up.
|
||
|
||
2024-11-04 Nicolas Roche <roche@adacore.com>
|
||
|
||
* libgnat/a-stwiun__shared.adb: Restructure code to inline only
|
||
the most common cases. Remove whenever possible runtime checks.
|
||
* libgnat/a-stwiun__shared.ads: Add Inline => True to Append
|
||
variants and Element.
|
||
|
||
2024-11-04 Nicolas Roche <roche@adacore.com>
|
||
|
||
* libgnat/a-stzunb__shared.adb: Restructure code to inline only
|
||
the most common cases. Remove whenever possible runtime checks.
|
||
* libgnat/a-stzunb__shared.ads: Add Inline => True to Append
|
||
variants and Element.
|
||
|
||
2024-11-04 Nicolas Roche <roche@adacore.com>
|
||
|
||
* libgnat/a-strunb__shared.adb: Restructure code to inline only
|
||
the most common cases. Remove whenever possible runtime checks.
|
||
* libgnat/a-strunb__shared.ads: Add Inline => True to Append
|
||
variants and Element.
|
||
|
||
2024-11-04 Steve Baird <baird@adacore.com>
|
||
|
||
* aspects.ads: Add Aspect_Extended_Access to Aspect_Id
|
||
enumeration.
|
||
* par-prag.adb: Add Pragma_Extended_Access to list of pragmas that
|
||
get no interesting processing in the parser.
|
||
* sem_attr.adb: Relax legality checks on Access/Unchecked_Access
|
||
attribute references if access type is Extended_Access.
|
||
* sem_ch12.adb (Validate_Access_Type_Instance): For an instance of
|
||
a generic with a formal access type, check that formal and actual
|
||
agree with with respect to Extended_Access aspect.
|
||
* sem_prag.adb (Analyze_Pragma): Add analysis code for pragma
|
||
Extended_Access. Set Pragma_Extended_Access element in Sig_Flags
|
||
aggregate.
|
||
* sem_prag.ads: Set Pragma_Extended_Access element in
|
||
Aspect_Specifying_Pragma aggregate.
|
||
* sem_res.adb (Valid_Conversion): Disallow
|
||
extended-to-not-extended access conversion.
|
||
* sem_util.adb (Is_Extended_Access_Access_Type): Implement new
|
||
function.
|
||
(Is_Aliased_View): If (and only if) the new Boolean For_Extended
|
||
parameter is True, then a slice of an aliased non-bitpacked array
|
||
is aliased, a constrained nominal subtype does not force a result
|
||
of False, and a dereference of an extended access value is
|
||
aliased. The last point is somewhat subtle. This is how we prevent
|
||
covert fat-to-nonfat type conversions via things like
|
||
"Not_Extended_Type'(Extended_Ptr.all'Access)" or passing
|
||
Extended_Ptr.all as an actual parameter corresponding to an
|
||
explicitly aliased formal parameter.
|
||
* sem_util.ads (Is_Extended_Access_Type): Declare new function.
|
||
(Is_Aliased_View): Add new defaults-False parameter For_Extended.
|
||
* snames.ads-tmpl: Declare Name_Extended_Access Name_Id constant
|
||
and Pragma_Extended_Access Pragma_Id enumeration literal.
|
||
|
||
2024-11-04 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_warn.adb (Check_One_Unit): When a system extension is
|
||
present always check entities from that unit before marking
|
||
the unit unreferenced.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/113036
|
||
* freeze.adb (Freeze_Expression): Deal with freezing actions coming
|
||
from within nested internal loops present in spec expressions.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Iterated_Component_Association): Change to
|
||
function returning Boolean and return the result of the call made
|
||
to Resolve_Aggr_Expr.
|
||
(Resolve_Array_Aggregate): Return failure status if the call to
|
||
Resolve_Iterated_Component_Association returns false.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Iterated_Component_Association): Move up
|
||
declaration of Expr and remove dead code from older processing.
|
||
|
||
2024-11-04 Viljar Indus <indus@adacore.com>
|
||
|
||
* usage.adb: Update the wording for -gnatVa and -gnatVd.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Is_Two_Pass_Aggregate): Beef up comment.
|
||
|
||
2024-11-04 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* comperr.adb (Compiler_Abort): Display message in exception handler.
|
||
|
||
2024-11-04 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Use the
|
||
base type of the type imposed by the context for building the
|
||
interpolated string image; required to allow the expander adding
|
||
the missing runtime check when the target type is constrained.
|
||
(Apply_Static_Length_Check): New subprogram.
|
||
|
||
2024-11-04 Daniel King <dmking@adacore.com>
|
||
|
||
* Makefile.rtl: Use s-secsta__cheri.adb on Morello CheriBSD.
|
||
* libgnat/s-secsta__cheri.adb: New file.
|
||
|
||
2024-11-04 Daniel King <dmking@adacore.com>
|
||
|
||
* libgnarl/s-intman__cheribsd.adb: Add SIGPROT to interrupt list.
|
||
|
||
2024-11-04 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-sarif_emitter.adb (Print_Runs): Add printing for
|
||
the invocation node that consists of a single invocations that
|
||
is composed of the commandLine and executionSuccessful attributes.
|
||
|
||
2024-11-04 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-sarif_emitter.adb (Print_SARIF_Report): Add a
|
||
Schema field to the SARIF report.
|
||
|
||
2024-11-04 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-mudido__affinity.adb (Unchecked_Set_Affinity): Set new
|
||
ATCB component.
|
||
* libgnarl/s-taprop__linux.adb (Create_Task): Only set CPU affinity
|
||
when required.
|
||
(Requires_Affinity_Change): New subprogram.
|
||
(Set_Task_Affinity): Likewise.
|
||
* libgnarl/s-tarest.adb (Create_Restricted_Task): Adapt to
|
||
Initialize_ATCB change.
|
||
* libgnarl/s-taskin.adb (Initialize_ATCB): Update parameter list.
|
||
Record whether aspects were explicitly specified.
|
||
* libgnarl/s-taskin.ads (Common_ATCB): Add component.
|
||
* libgnarl/s-tassta.adb (Create_Task): Update call to Initialize_ATCB.
|
||
* libgnarl/s-tporft.adb (Register_Foreign_Thread): Likewise.
|
||
|
||
2024-11-04 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Fix format for second line of
|
||
warning (should be a continuation line)
|
||
|
||
2024-11-04 Daniel King <dmking@adacore.com>
|
||
|
||
* Makefile.rtl: Build support for Morello CheriBSD.
|
||
* libgnarl/s-intman__cheribsd.adb: New file for CheriBSD.
|
||
* libgnarl/s-osinte__cheribsd.ads: New file for CheriBSD.
|
||
|
||
2024-11-04 Daniel King <dmking@adacore.com>
|
||
|
||
* libgnat/i-cheri.ads: Remove exception declarations.
|
||
* libgnat/i-cheri-exceptions.ads: New file.
|
||
|
||
2024-11-04 Daniel King <dmking@adacore.com>
|
||
|
||
* libgnat/s-oslock__posix.ads: Fix alignment of pthread_mutex_t
|
||
for CHERI targets.
|
||
|
||
2024-11-04 Claire Dross <dross@adacore.com>
|
||
|
||
* Makefile.rtl: Remove references to moved units.
|
||
* libgnat/a-chtgfk.adb: Removed.
|
||
* libgnat/a-chtgfk.ads: Removed.
|
||
* libgnat/a-chtgfo.adb: Removed.
|
||
* libgnat/a-chtgfo.ads: Removed.
|
||
* libgnat/a-cohata.ads (Generic_Formal_Hash_Table_Types): Removed.
|
||
|
||
2024-11-04 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117051
|
||
* freeze.adb (Freeze_Entity): Call the layout procedure on subtypes
|
||
declared in a generic unit when they are static.
|
||
|
||
2024-11-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* adaint.c: Replace initialize.c with rtinit.c in comment.
|
||
* sysdep.c (__gnat_set_mode): Fix reference in comment.
|
||
* libgnat/i-cstrea.ads (Content_Encoding): Adjust comment.
|
||
|
||
2024-11-04 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch10.adb (Analyze_With_Clause): In the case of a
|
||
self-referential with clause, if there is a subsequent use clause
|
||
for the same package (which is necessarily useless), remove it from
|
||
the context clause. Reenable the warning.
|
||
|
||
2024-11-04 Javier Miranda <miranda@adacore.com>
|
||
|
||
* einfo.ads (Is_Dispatch_Table_Wrapper): Complete documentation.
|
||
* exp_ch6.adb (Install_Class_Preconditions_Check): Dispatch table
|
||
wrappers do not require installing the check since it is performed
|
||
by the caller.
|
||
(Class_Preconditions_Subprogram): Use new predicate Is_LSP_Wrapper.
|
||
* freeze.adb (Check_Inherited_Conditions): Rename Postcond_Wrappers to
|
||
Condition_Wrappers to handle implicitly inherited subprograms that
|
||
implement pre-/postconditions inherited from interface primitives.
|
||
Use new predicate Is_LSP_Wrapper.
|
||
* sem_disp.adb (Check_Dispatching_Operation): Complete assertion to
|
||
handle functions returning class-wide types.
|
||
* exp_util.ads (Is_LSP_Wrapper): New subprogram.
|
||
* exp_util.adb (Is_LSP_Wrapper): New subprogram.
|
||
* contracts.adb (Process_Spec_Postconditions): Use Is_LSP_Wrapper.
|
||
(Process_Inherited_Conditions): Use Is_LSP_Wrapper.
|
||
* sem_ch6.adb (New_Overloaded_Entity): Use Is_LSP_Wrapper.
|
||
* sem_util.adb (Nearest_Class_Condition_Subprogram): Use Is_LSP_Wrapper.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch7.adb (Uninstall_Declarations): Mark Taft amendment
|
||
types like we mark other types declared in private package
|
||
declarations.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Op_Multiply): Remove extra whitespace.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Op_Subtract): Replace numeric literal
|
||
with universal integer constant, just like it is done in
|
||
expansion of addition operator.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_res.adb (In_Decl): Rename and move local variable where
|
||
it is used.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_res.adb (Type_In_P): Add non-null qualifier.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Intrinsic_Operator)
|
||
(Resolve_Intrinsic_Unary_Operator): Replace traversals of
|
||
homonyms with a direct lookup.
|
||
|
||
2024-11-04 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Intrinsic_Unary_Operator): Disable when
|
||
expansion is inactive.
|
||
|
||
2024-10-29 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR other/116613
|
||
* gcc-interface/misc.cc (internal_error_function): Update for
|
||
m_printer becoming reference printer.
|
||
|
||
2024-10-29 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* types.h: fix static_assert.
|
||
|
||
2024-10-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/62122
|
||
* doc/gnat_rm/implementation_defined_attributes.rst
|
||
(Unrestricted_Access): Remove null exclusion.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Use gnu_fat_type as the type
|
||
context for a XUB type.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Update some calls to
|
||
create_type_decl.
|
||
* gcc-interface/gigi.h (create_type_decl): Add can_be_nameless parameter.
|
||
* gcc-interface/utils.cc (create_type_decl): Add can_be_nameless
|
||
parameter. Set DECL_NAMELESS on type decl.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/utils.cc (record_builtin_type, create_type_stub_decl):
|
||
Set DECL_NAMELESS on type decls.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass 'true' to
|
||
create_type_decl when creating XUA type.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Set TYPE_NAMELESS on
|
||
XUB types.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Pass artificial_p to
|
||
build_unc_object_type.
|
||
* gcc-interface/gigi.h (build_unc_object_type): Update.
|
||
* gcc-interface/utils.cc (build_unc_object_type) Add artificial_p
|
||
parameter.
|
||
(build_unc_object_type_from_ptr): Update.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (is_artificial): New function.
|
||
(gnat_to_gnu_entity): Use it.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (Call_to_gnu): If the formal is passed by
|
||
reference and the actual is a type conversion but not addressable,
|
||
create the temporary in the target type of the conversion if this
|
||
is needed to enforce strict aliasing.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/116551
|
||
* gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return
|
||
false if the type of the entity is an unconstrained array type.
|
||
(node_is_volatile_full_access) <N_Identifier>: Likewise.
|
||
|
||
2024-10-25 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch10.adb (Analyze_With_Clause): Temporarily disable warning.
|
||
|
||
2024-10-25 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch10.adb: (Analyze_With_Clause): Check for self-referential
|
||
with clause. Give a warning, and set Is_Implicit_With, which we
|
||
are reusing in this obscure case even though it's not really
|
||
implicit.
|
||
(Analyze_Context): Remove check for self-referential with clause.
|
||
It wasn't correct -- it only triggered for Acts_As_Spec
|
||
subprograms. Corrected check is now in Analyze_With_Clause.
|
||
(Implicit_With): Rename to be Is_Implicit_With. Misc cleanup,
|
||
comment fixes.
|
||
(Process_Spec_Clauses): Remove default for Exit_On_Self parameter.
|
||
Use "exit when" instead of if statement.
|
||
* sinfo.ads (Implicit_With): Rename to be Is_Implicit_With.
|
||
Document new use for self-referential withs.
|
||
* ali.adb (Scan_ALI): Use an aggregate to initialize Withs entry.
|
||
* exp_put_image.adb (Preload_Root_Buffer_Type): Make this a
|
||
once-only procedure.
|
||
* sem_util.ads (Is_Ancestor_Package): Fix comment -- a libraryunit
|
||
is an ancestor of itself, but this doesn't return True in that
|
||
case.
|
||
* sem_util.adb (Is_Ancestor_Package): Better to initialize things
|
||
on their declaration.
|
||
* lib-load.adb: Minor comment fix.
|
||
* sem_prag.adb: Implicit_With --> Is_Implicit_With. Minor comment
|
||
fix.
|
||
* gen_il-fields.ads: Implicit_With --> Is_Implicit_With.
|
||
* gen_il-gen-gen_nodes.adb: Likewise
|
||
* lib.adb: Likewise
|
||
* lib-writ.adb: Likewise
|
||
* rtsfind.adb: Likewise
|
||
* sem_cat.adb: Likewise
|
||
* sem_ch12.adb: Likewise
|
||
* sem_ch8.adb: Likewise
|
||
* sem_elab.adb: Likewise
|
||
* sem_warn.adb: Likewise
|
||
* gcc-interface/trans.cc: (Implicit_With): Rename to be
|
||
Is_Implicit_With.
|
||
|
||
2024-10-25 Tom Tromey <tromey@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (namespace_map): New global.
|
||
(Compilation_Unit_to_gnu): Also handle N_With_Clause and
|
||
N_Use_Package_Clause.
|
||
(get_or_create_namespace, get_namespace): New functions.
|
||
(gnat_to_gnu) <N_Package_Renaming_Declaration>: Call
|
||
get_namespace.
|
||
<N_Use_Package_Clause, N_With_Clause>: Likewise.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Expression.In_Expanded_Body): Tweak comments.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Entity): If the entity is an access-to-subprogram
|
||
type declaration that pre/postcondition contracts, build the
|
||
wrapper
|
||
(if not previously done as part of processing aspects).
|
||
* sem_ch3.adb (Build_Access_Subprogram_Wrapper): Add missing support
|
||
for building the wrapper when the access type has pragmas
|
||
Pre_Class/Post_Class.
|
||
(Build_Access_Subprogram_Wrapper_Declaration): New subprogram.
|
||
* sem_ch3.ads (Build_Access_Subprogram_Wrapper): Spec moved to the
|
||
public part of the package.
|
||
* sem_prag.adb (Analyze_Pre_Post_Condition): Store in the tree copy of
|
||
class-wide pre/postcondition expression; required to merge it with
|
||
inherited conditions.
|
||
(Is_Valid_Assertion_Kind): Added Pre_Class and Post_Class.
|
||
|
||
2024-10-25 Richard Kenner <kenner@adacore.com>
|
||
|
||
* doc/gnat_ugn/about_this_guide.rst: Numerous changes to language
|
||
and style and add some LLVM-specific information.
|
||
* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Likewise.
|
||
* doc/gnat_ugn/example_of_binder_output.rst: Likewise.
|
||
* doc/gnat_ugn/getting_started_with_gnat.rst: Likewise.
|
||
* doc/gnat_ugn/gnat_and_program_execution.rst: Likewise.
|
||
* doc/gnat_ugn/gnat_utility_programs.rst: Likewise.
|
||
* doc/gnat_ugn/inline_assembler.rst: Likewise.
|
||
* doc/gnat_ugn/platform_specific_information.rst: Likewise.
|
||
* doc/gnat_ugn/the_gnat_compilation_model.rst: Likewise.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/43485
|
||
* libgnarl/a-retide.adb: Add with clause for System.Soft_Links.
|
||
(Delay_Until): Defer and undefer abort around the call to the
|
||
Timed_Delay routine of System.Task_Primitives.Operations.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Expression.In_Expanded_Body): Also return True
|
||
for the body of a helper/wrapper built for class-wide preconditions.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pre_Post_Condition): Allow the use of
|
||
pragma Pre_Class/Post_Class with abstract subprograms.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch3.adb (Record_Type_Definition): For tagged types, add
|
||
the missing decoration to the First_Entity in the corresponding
|
||
class-wide type entity.
|
||
|
||
2024-10-25 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Adjust documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-25 Richard Kenner <kenner@adacore.com>
|
||
|
||
* comperr.ads (Compiler_Error): Update documentation.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* uintp.ads (Type_Size_For): New function declaration.
|
||
* uintp.adb (Type_Size_For): New function body.
|
||
* exp_imgv.adb (Rewrite_Object_Image): Call Type_Size_For to get
|
||
the size of a narrower integer type.
|
||
|
||
2024-10-25 Tonu Naks <naks@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: update
|
||
simpler accessibility model
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-25 Bob Duff <duff@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst:
|
||
Minor wording improvments.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-25 squirek <squirek@adacore.com>
|
||
|
||
* libgnarl/s-taprop__mingw.adb: Modify stack size and update
|
||
documentation.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* gen_il-fields.ads: New node field (Is_Expanded_Prefixed_Call).
|
||
* gen_il-gen-gen_nodes.adb: New semantic field for N_Function_Call
|
||
and N_Procedure_Call_Statement nodes.
|
||
* sem_ch4.adb (Complete_Object_Operation): Mark the rewritten node
|
||
with the Is_Expanded_Prefixed_Call flag.
|
||
* sem_res.adb (Check_Prefixed_Call): Code cleanup and addition of
|
||
documentation.
|
||
(Resolve_Actuals): Add a null-exclusion check on the
|
||
prefix of the call when it is an access-type.
|
||
* sinfo.ads: Adding new semantic flag (Is_Expanded_Prefixed_Call)
|
||
to N_Function_Call and N_Procedure_Call_Statement nodes.
|
||
* debug.adb: Adding documentation for switch d_P.
|
||
|
||
2024-10-25 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): change the call to
|
||
`Error_Msg_GNAT_Extension` to allow this aspect in core
|
||
extensions. Put the code path in core extensions.
|
||
* exp_util.adb (Name_Of_Controlled_Prim_Op): Put the code path
|
||
in core extensions
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_type.ads (Interp ): Add Opnd_Typ component and remove default
|
||
value for Abstract_Op component.
|
||
(Add_One_Interp): Rename Opnd_Type parameter to Opnd_Typ.
|
||
* sem_type.adb (Add_One_Interp): Likewise.
|
||
(Add_One_Interp.Add_Entry): Record the operand type as well.
|
||
(Collect_Interp): Record Empty for the operand type.
|
||
(Disambiguate.Is_Ambiguous_Boolean_Operator): New predicate.
|
||
(Disambiguate): Use it to detect recorded ambiguity cases.
|
||
* sem_ch4.adb (Find_Comparison_Equality_Types): Add commentary.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch8.adb (Freeze_Actual_Profile): Do not report error
|
||
on incomplete types, since they do not cause freezing.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* namet.adb (Append_Decoded_With_Brackets): Fix condition for the
|
||
cheap test at the beginning of the loop.
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115507
|
||
* rtsfind.ads (RE_Id): Add RE_Enum_[Wide_]Wide_String_To_String.
|
||
(RE_Unit_Table): Add entries for the new values.
|
||
* exp_attr.adb (Is_User_Defined_Enumeration_Type): New predicate.
|
||
(Expand_N_Attribute_Reference) <Attribute_Wide_Value>: Build a call
|
||
to RE_Enum_Wide_String_To_String for user-defined enumeration types.
|
||
<Attribute_Wide_Wide_Value>: Likewise with
|
||
RE_Enum_Wide_Wide_String_To_String.
|
||
* exp_imgv.adb (Expand_Value_Attribute): Adjust to above.
|
||
* libgnat/s-wchwts.ads (Enum_Wide_String_To_String): New function.
|
||
(Enum_Wide_Wide_String_To_String): Likewise.
|
||
* libgnat/s-wchwts.adb: Add clauses for System.Case_Util.
|
||
(Normalize_String): New local procedure.
|
||
(Enum_Wide_String_To_String): New function body.
|
||
(Enum_Wide_Wide_String_To_String): Likewise.
|
||
|
||
2024-10-25 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): Add checks for incomplete
|
||
type actuals.
|
||
|
||
2024-10-25 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* par-ch5.adb (P_Sequence_Of_Statements): Forbid repr clauses in
|
||
handled_statements.
|
||
|
||
2024-10-25 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* sem_util.ads: Introduce Inspect_Deferred_Constant_Completion
|
||
on a single object declaration, to better factorize the code
|
||
* sem_util.adb: Introduce aforementioned overload
|
||
* sem_ch4.adb (Analyze_Expression_With_Actions): Check deferred
|
||
constant completions
|
||
* sem_ch5.adb (Analyze_Statements): Check deferred constant
|
||
completions
|
||
|
||
2024-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Actuals.Is_Legal_Copy): Return True for an
|
||
initialization procedure with a full access formal parameter.
|
||
(Expand_Actuals.Requires_Atomic_Or_Volatile_Copy): Return True if
|
||
the formal parameter is of a full access unconstrained array type.
|
||
|
||
2024-10-24 David Malcolm <dmalcolm@redhat.com>
|
||
Gaius Mulley <gaiusmod2@gmail.com>
|
||
|
||
PR other/116613
|
||
* gcc-interface/misc.cc: Add #define INCLUDE_MEMORY
|
||
* gcc-interface/trans.cc: Likewise.
|
||
* gcc-interface/utils.cc: Likewise.
|
||
|
||
2024-10-11 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/116498
|
||
PR ada/117087
|
||
* gcc-interface/decl.cc (validate_size): Fix thinko.
|
||
|
||
2024-10-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/117038
|
||
* fe.h (struct c_array): Add 'const' to declaration of pointer.
|
||
(C_Source_Buffer): Use consistent formatting.
|
||
* par-ch3.adb (P_Component_Items): Properly set Aliased_Present on
|
||
access definition.
|
||
* sinput.ads: Remove clause for Interfaces.C.
|
||
(C_Array): Change type of Length to Integer and make both components
|
||
aliased. Remove Convention aspect.
|
||
(C_Source_Buffer): Remove all aspects.
|
||
* sinput.adb (C_Source_Buffer): Adjust to above change.
|
||
|
||
2024-10-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* Makefile.rtl: Remove HP-UX 10 section.
|
||
* libgnarl/s-osinte__hpux-dce.ads: Delete.
|
||
* libgnarl/s-osinte__hpux-dce.adb: Likewise.
|
||
* libgnarl/s-taprop__hpux-dce.adb: Likewise.
|
||
* libgnarl/s-taspri__hpux-dce.ads: Likewise.
|
||
* libgnat/s-oslock__hpux-dce.ads: Likewise.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/116498
|
||
* gcc-interface/decl.cc (validate_size): Use the size of the default
|
||
pointer mode as the minimum size for access types and fat pointers.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (Raise_Error_to_gnu) <CE_Invalid_Data>:
|
||
Do not the generate range information if the value is a call to a
|
||
Rep_To_Pos function.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* sigtramp-armdroid.c: Refactor into ...
|
||
* sigtramp-android.c, sigtramp-android-asm.h: New files.
|
||
* Makefile.rtl (arm/aarch64-android section): Add
|
||
sigtramp-android.o to EXTRA_LIBGNAT_OBJS unconditionally. Add
|
||
sigtramp.h and sigtramp-android-asm.h to EXTRA_LIBGNAT_SRCS.
|
||
* init.c (android section, __gnat_error_handler): Defer to
|
||
__gnat_sigramp unconditionally again.
|
||
* sigtramp.h: Adjust comments to allow neutral signal handling
|
||
relays, merely forwarding to the underlying handler without any
|
||
intermediate CFI magic.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115507
|
||
* exp_imgv.adb (Expand_Valid_Value_Attribute): Add actual parameter
|
||
for Is_Wide formal in the call to Valid_Value_Enumeration_NN.
|
||
(Expand_Value_Attribute): Likewise.
|
||
* libgnat/s-vaen16.ads (Value_Enumeration_16): Add Is_Wide formal.
|
||
(Valid_Value_Enumeration_16): Likewise.
|
||
* libgnat/s-vaen32.ads (Value_Enumeration_32): Likewise.
|
||
(Valid_Value_Enumeration_32): Likewise.
|
||
* libgnat/s-vaenu8.ads (Value_Enumeration_8): Likewise.
|
||
(Valid_Value_Enumeration_8): Likewise.
|
||
* libgnat/s-valboo.adb (Value_Boolean): Pass True for To_Upper_Case
|
||
formal parameter in call to Normalize_String.
|
||
* libgnat/s-valcha.adb (Value_Character): Likewise.
|
||
* libgnat/s-valuen.ads (Value_Enumeration): Add Is_Wide formal.
|
||
(Valid_Value_Enumeration): Likewise.
|
||
* libgnat/s-valuen.adb (Value_Enumeration_Pos): Likewise and pass
|
||
its negation for To_Upper_Case formal in call to Normalize_String.
|
||
(Valid_Value_Enumeration): Add Is_Wide formal and forward it in
|
||
call to Value_Enumeration_Pos.
|
||
(Value_Enumeration): Likewise.
|
||
* libgnat/s-valuti.ads (Normalize_String): Add To_Upper_Case formal
|
||
parameter and adjust post-condition accordingly.
|
||
* libgnat/s-valuti.adb (Normalize_String): Add To_Upper_Case formal
|
||
parameter and adjust implementation accordingly.
|
||
* libgnat/s-valwch.adb (Value_Wide_Wide_Character): Pass False for
|
||
To_Upper_Case formal parameter in call to Normalize_String.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114636
|
||
* sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
|
||
formal discrete type, skip the generated implicit base type.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115535
|
||
* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size
|
||
of the underlying type to find the support type.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114640
|
||
* exp_util.adb (Find_Hook_Context): For a node present within a
|
||
conditional expression, do not return an N_Elsif_Part node.
|
||
|
||
2024-10-08 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-constructors.adb
|
||
(Make_Mixed_Container_Aggregate_Error): New function for the error
|
||
message
|
||
(Record_Mixed_Container_Aggregate_Error): New function for the
|
||
error message.
|
||
* diagnostics-constructors.ads: Likewise.
|
||
* diagnostics-repository.ads: register new diagnostics id
|
||
* diagnostics.ads: add new diagnostics id
|
||
* errout.adb (First_And_Last_Node): Detect the span for component
|
||
associations.
|
||
* sem_aggr.adb (Resolve_Container_Aggregate): reject container
|
||
aggregates that have both named and positional elements.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* snames.ads-tmpl: Add new pragma definition.
|
||
* par-prag.adb (Prag): Handle new pragma.
|
||
* sem_prag.adb (Analyze_Pragma): Implement new pragma.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* snames.ads-tmpl: Tweak position of comment.
|
||
|
||
2024-10-08 Tonu Naks <naks@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: replace
|
||
references to RFC's with appropriate text from the rfc
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* lib-writ.ads (Add_Preprocessing_Dependency): Update
|
||
documentation comment.
|
||
* sem_ch3.adb (Apply_External_Initialization): Add call to
|
||
Add_Preprocessing_Dependency.
|
||
|
||
2024-10-08 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Siz_Exp): Support deriving the size of the
|
||
container aggregate with multi-dimensional arrays. Make the
|
||
function return an node of an expression instead of an integer.
|
||
Additionally calculate the size expression for
|
||
Component_Associations.
|
||
(To_Int) make this method available for more functions.
|
||
(Aggregate_Size) Relocate the calculation of
|
||
Componenet_Associations to Build_Siz_Exp.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_tss.ads (Is_Rep_To_Pos): New function declaration.
|
||
* exp_tss.adb (Is_Rep_To_Pos): New function body.
|
||
* fe.h (Is_Rep_To_Pos): New macro and extern declaration.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_imgv.adb (Rewrite_Object_Image): When the prefix is a type
|
||
conversion to Universal_Integer, use its expression directly. When
|
||
the prefix is an integer literal with Universal_Integer type, try
|
||
to compute a narrower type.
|
||
|
||
2024-10-08 Raphaël AMIARD <amiard@adacore.com>
|
||
|
||
* par-ch11.adb (P_Sequence_Of_Statements): Remove Handled
|
||
parameter. Always wrap the statements in a block when there are
|
||
declarations in it.
|
||
* par-ch5.adb: Adapt call to P_Sequence_Of_Statements Update
|
||
outdated comment, remove useless `Style_Checks` pragma.
|
||
(P_Sequence_Of_Statements): Don't emit an error in core extensions
|
||
mode. Emit an error when a non valid declaration is parsed in
|
||
sequence of statements.
|
||
* par.adb: Adapt P_Sequence_Of_Statements' signature
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Adapt documentation
|
||
now.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
|
||
Fix behavior on child subprograms without specs.
|
||
|
||
2024-10-08 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Don't freeze here
|
||
if Has_Delayed_Freeze returns True.
|
||
* sem_type.adb (Valid_Equality_Arg): Treat an incomplete type like
|
||
a limited type because neither has an implicitly-defined equality
|
||
primitive.
|
||
(Covers): If either argument is an incomplete type
|
||
whose full view is available, then look through to the full view.
|
||
* sem_res.adb (Resolve_Actuals): If the actual parameter type is
|
||
complete and the formal parameter type is not, then update the
|
||
formal parameter type to use the complete view.
|
||
|
||
2024-10-08 squirek <squirek@adacore.com>
|
||
|
||
* sem_ch3.adb (Derived_Type_Declaration): Modify generation of
|
||
compile time check.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-trasym__dwarf.adb (LDAD_Header): New String constant.
|
||
(Symbolic_Traceback): Print the load address of the executable at
|
||
the beginning if it is not null.
|
||
|
||
2024-10-08 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Discriminant_Conformance): In testing whether
|
||
a default expression is permitted for an access discriminant, we
|
||
need to know whether the discriminated type is immutably limited.
|
||
Handle another part of this test that cannot easily be handled in
|
||
Sem_Aux.Is_Immutably_Limited. This involves declaring a new local
|
||
function, Is_Derived_From_Immutably_Limited_Type.
|
||
|
||
2024-10-08 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_attr.adb (Resolve_Attribute): When setting the Etype of a
|
||
universal-integer-valued attribute reference to the subtype
|
||
determined by its context, use the basetype of that subtype
|
||
instead of the subtype itself if there is a possibility that the
|
||
attribute value will not satisfy the constraints of that subtype.
|
||
Otherwise the compiler is, in effect, assuming something that
|
||
might not be true. Except use the subtype in the case of a
|
||
not-from-source 'Pos attribute reference in order to avoid
|
||
breaking things.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* comperr.adb (Compiler_Abort): Add call to
|
||
Generate_Minimal_Reproducer and replace call to Namet.Unlock with
|
||
call to Unlock_If_Locked.
|
||
* debug.adb: Document new purpose of -gnatd_m and -gnatd_M.
|
||
* fname-uf.adb (Instantiate_SFN_Pattern): New procedure.
|
||
(Get_Default_File_Name): New function.
|
||
(Get_File_Name): Replace inline code with call to
|
||
Instantiate_SFN_Pattern.
|
||
* fname-uf.ads (Get_Default_File_Name): New function.
|
||
* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
|
||
New procedure.
|
||
* namet.adb (Unlock_If_Locked): New function.
|
||
* namet.ads (Unlock_If_Locked): Likewise.
|
||
* par-prag.adb (Prag): Add special behavior with -gnatd_M.
|
||
* set_targ.adb: Minor fixes to comments.
|
||
* gcc-interface/Make-lang.in: Update list of object files.
|
||
|
||
2024-10-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
|
||
* exp_aggr.adb (Is_Two_Pass_Aggregate): New function body.
|
||
(Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the
|
||
aggregates that need the 2-pass expansion.
|
||
* exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array
|
||
case, build the initialization procedure if the initial value in
|
||
the object declaration is a 2-pass aggregate.
|
||
|
||
2024-10-08 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Fix
|
||
indentation.
|
||
|
||
2024-10-08 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* aspects.ads: Add entities for External_Initialization.
|
||
* checks.adb (Selected_Length_Checks): Add support for
|
||
N_External_Initializer nodes.
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Add section for the added
|
||
extension.
|
||
* exp_util.adb (Insert_Actions): Add support for N_External_Initializer
|
||
nodes.
|
||
* fe.h (C_Source_Buffer): New function.
|
||
* gen_il-fields.ads: Add new field.
|
||
* gen_il-gen-gen_nodes.adb: Add N_External_Initializer node kind.
|
||
* gen_il-gen.adb: Add new field type.
|
||
* gen_il-types.ads: Add new node kind and new field type.
|
||
* pprint.adb (Expr_Name): Handle new node kind.
|
||
* sem.adb (Analyze): Add support for N_External_Initializer nodes.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications, Check_Aspect_At_Freeze_Point):
|
||
Add support for External_Initialization aspect.
|
||
* sem_ch3.adb (Apply_External_Initialization): New subprogram.
|
||
(Analyze_Object_Declaration): Add support for External_Initialization aspect.
|
||
* sem_res.adb (Resolve_External_Initializer): New procedure.
|
||
(Resolve): Add support for N_External_Initializer nodes.
|
||
(Set_String_Literal_Subtype): Extend to handle N_External_Initializer nodes.
|
||
* sinfo-utils.adb (Is_In_Union_Id): Adapt to new field addition.
|
||
* sinfo.ads: Add documentation for new node kind and new field.
|
||
* sinput.adb, sinput.ads (C_Source_Buffer): Add new C interface function.
|
||
* snames.ads-tmpl: Add new aspect identifier.
|
||
* sprint.adb (Sprint_Node_Actual): Add nop handling of N_External_Initializer
|
||
nodes.
|
||
* types.ads: Modify type to allow for new C interface.
|
||
* gcc-interface/trans.cc (gnat_to_gnu): Handle new GNAT node type.
|
||
* gcc-interface/Make-lang.in: Update list of stage1 run-time library units.
|
||
* gnat-style.texi: Regenerate.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* Makefile.rtl (arm/aarch64-android): Associate a-nallfl.ads with
|
||
libgnat/a-nallfl__wraplf.ads.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* libgnarl/s-linux__android-arm.ads: Define SIGSYS.
|
||
* libgnarl/s-linux__android-aarch64.ads: Define SIGSYS.
|
||
* libgnarl/s-osinte__android.ads: Expose SIGSYS value.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* libgnarl/s-linux__android-arm.ads: New file, renaming of ...
|
||
* libgnarl/s-linux__android.ads: ... this file.
|
||
* libgnarl/s-linux__android-aarch64.ads: New file. Based on the
|
||
-arm variant, with sa_ field positions adjusted.
|
||
* Makefile.rtl (arm/aarch64-android pairs): Adjust accordingly.
|
||
* libgnarl/s-osinte__android.ads: Rather than making assumptions
|
||
on the actual type of the C sigset_t, use
|
||
Os_Constants.SIZEOF_sigset_t to define an Ada sigset_t type of the
|
||
proper size. Use C.int instead of unsigned_long for sa_flags.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* init.c (__gnat_error_handler): Map signals straight to Ada
|
||
exceptions, without a local CFI trampoline.
|
||
(__gnat_adjust_context_for_raise): Guard arm specific code on __arm__
|
||
compilation. Do nothing otherwise, relying on libgcc's signal
|
||
frame recognition for PC/RA adjustments.
|
||
|
||
2024-10-08 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* Makefile.rtl: Extend arm-android section to aarch64, in a similar
|
||
fashion as other arm/arch64 configurations. Introduce pair
|
||
selection guards to prevent match of aarch64-linux-android on the
|
||
regular aarch64-linux% cross as well.
|
||
|
||
2024-10-08 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Turn
|
||
Compile_Time pragmas into null nodes
|
||
|
||
2024-10-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR middle-end/116933
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Out_Parameter>: Add
|
||
the "uninitialized" attribute on Out parameters.
|
||
* gcc-interface/utils.cc (gnat_internal_attributes): Add entry for
|
||
the "uninitialized" attribute.
|
||
(handle_uninitialized_attribute): New function.
|
||
|
||
2024-09-25 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR other/116801
|
||
* gcc-interface/lang.opt.urls: Regenerate.
|
||
|
||
2024-09-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/misc.cc: Include memmodel.h before tm_p.h.
|
||
|
||
2024-09-10 Viljar Indus <indus@adacore.com>
|
||
|
||
* gcc-interface/decl.cc: Use same warning characters in
|
||
continuation messages.
|
||
* gcc-interface/trans.cc: Likewise.
|
||
|
||
2024-09-10 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Call
|
||
Error_Msg_GNAT_Extension() to report an error when the aspect
|
||
First_Controlling_Parameter is set to True and the sources are
|
||
compiled without Core_Extensions_ Allowed.
|
||
* sem_prag.adb (Pragma_First_Controlling_Parameter): Call
|
||
subprogram Error_Msg_GNAT_Extension() to report an error when the
|
||
aspect First_Controlling_Parameter is set to True and the sources
|
||
are compiled without Core_Extensions_Allowed. Report an error when
|
||
the aspect pragma does not confirm an inherited True value.
|
||
|
||
2024-09-10 Viljar Indus <indus@adacore.com>
|
||
|
||
* diagnostics-pretty_emitter.adb (Get_Last_Line_Char): New. Get
|
||
the last non line change character. Write_Span_Labels use the
|
||
adjusted line end pointer to calculate the length of the span.
|
||
|
||
2024-09-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_intr.ads, exp_intr.adb (Expand_Source_Info): Move
|
||
declaration to package spec.
|
||
* sem_eval.adb (Eval_Intrinsic_Call): Evaluate calls to
|
||
GNAT.Source_Info where possible.
|
||
|
||
2024-09-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.adb (Remove_Checks): Combine CASE alternatives.
|
||
|
||
2024-09-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* libgnat/s-os_lib.ads: Remove extra whitespace.
|
||
|
||
2024-09-09 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR other/116613
|
||
* gcc-interface/misc.cc (internal_error_function): Rename
|
||
diagnostic_context's "printer" field to "m_printer".
|
||
|
||
2024-09-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add bypass
|
||
for internal fields on strict-alignment platforms.
|
||
|
||
2024-09-05 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (default_field_alignment): New function.
|
||
* gcc-interface/misc.cc: Include tm_p header file.
|
||
(default_field_alignment): New function.
|
||
* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Replace
|
||
previous alignment klduge with call to default_field_alignment.
|
||
* gcc-interface/utils.cc (finish_record_type): Likewise for the
|
||
alignment based on which DECL_BIT_FIELD should be cleared.
|
||
|
||
2024-09-05 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_util.ads, exp_util.adb (Duplicate_Subexpr_No_Checks):
|
||
Remove parameters, which are no longer used.
|
||
|
||
2024-09-05 Viljar Indus <indus@adacore.com>
|
||
|
||
* par-endh.adb: add call to new diagnostic for end loop errors.
|
||
* sem_ch13.adb: add call to new diagnostic for default iterator
|
||
error and record representation being too late.
|
||
* sem_ch4.adb: Add new diagnostic for wrong operands.
|
||
* sem_ch9.adb: Add new diagnostic for a Lock_Free warning.
|
||
* libgnat/g-lists.adb (Ensure_Unlocked): Make checks for tampering
|
||
conditional.
|
||
* libgnat/g-lists.ads: Add parameter Tampering_Checks to control
|
||
whether tampering checks should be executed.
|
||
* backend_utils.adb: Add new gcc switches
|
||
'-fdiagnostics-format=sarif-file' and
|
||
'-fdiagnostics-format=sarif-stderr'.
|
||
* debug.adb: document -gnatd_D switch.
|
||
* diagnostics-brief_emitter.adb: New package for displaying
|
||
diagnostic messages in a compact manner.
|
||
* diagnostics-brief_emitter.ads: Same as above.
|
||
* diagnostics-constructors.adb: New pacakge for providing simpler
|
||
constructor methods for new diagnostic objects.
|
||
* diagnostics-constructors.ads: Same as above.
|
||
* diagnostics-converter.adb: New package for converting old
|
||
Error_Msg_Object-s to Diagnostic_Types.
|
||
* diagnostics-converter.ads: Same as above.
|
||
* diagnostics-json_utils.adb: Package for utility methods related
|
||
to emitting JSON.
|
||
* diagnostics-json_utils.ads: Same as above.
|
||
* diagnostics-pretty_emitter.adb: New package for displaying
|
||
diagnostic messages in a more elaborate manner.
|
||
* diagnostics-pretty_emitter.ads: Same as above.
|
||
* diagnostics-repository.adb: New package for collecting all
|
||
created error messages.
|
||
* diagnostics-repository.ads: Same as above.
|
||
* diagnostics-sarif_emitter.adb: New pacakge for converting all of
|
||
the diagnostics into a report in the SARIF format.
|
||
* diagnostics-sarif_emitter.ads: Same as above.
|
||
* diagnostics-switch_repository.adb: New package containing the
|
||
definitions for all of the warninging switches.
|
||
* diagnostics-switch_repository.ads: Same as above.
|
||
* diagnostics-utils.adb: Contains various utility methods for the
|
||
diagnostic pacakges.
|
||
* diagnostics-utils.ads: Same as above.
|
||
* diagnostics.adb: Contains the definitions and common functions
|
||
for all the new diagnostics objects.
|
||
* diagnostics.ads: Same as above.
|
||
* errout.adb: Relocate the old implementations for brief and
|
||
pretty printing the diagnostic messages and the entrypoint to the
|
||
new implementation if a debug switch is used.
|
||
* errout.ads: Improve documentation. Make Set_Msg_Text publicly
|
||
available.
|
||
* opt.ads: Add the flag SARIF_File which controls whether the
|
||
diagnostic messages should be printed to a file in the SARIF
|
||
format. Add the flag SARIF_Output to control whether the
|
||
diagnostic messages should be printed to std-err in the SARIF
|
||
format.
|
||
* gcc-interface/Make-lang.in: Add new pacakages to the object
|
||
list.
|
||
* gcc-interface/Makefile.in: Add new pacakages to the object list.
|
||
|
||
2024-09-05 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* ali-util.adb (Get_File_Checksum): Force the parsing for
|
||
the checksum computation of runtime files to be done in
|
||
the corresponding recent Ada version.
|
||
|
||
2024-09-05 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* inline.adb (Cannot_Inline): Remove assertion.
|
||
* inline.ads (Cannot_Inline): Add precondition.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Add kludge
|
||
to cope with ancient 32-bit ABIs.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (create_temporary): Deal with types whose
|
||
size is self-referential by allocating the maximum size.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (get_atomic_access): Deal specifically with
|
||
nodes that are both Atomic and Volatile_Full_Access in Ada 2012.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (addressable_p) <COMPONENT_REF>: Take into
|
||
account the alignment of the field on all platforms.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_field): Clear again gnu_size
|
||
after updating it if it is not constant.
|
||
|
||
2024-09-03 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* exp_unst.adb (Check_Static_Type::Note_Uplevel_Bound): Refactor
|
||
to use the generic Traverse_Proc.
|
||
(Check_Static_Type): Adjust calls to Note_Uplevel_Bound as the
|
||
previous second parameter was unused, so removed.
|
||
|
||
2024-09-03 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): If it makes sense
|
||
to do so, then rewrite a Length attribute reference as an
|
||
equivalent conditional expression.
|
||
|
||
2024-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_res.adb (Is_Atomic_Ref_With_Address): Rename into...
|
||
(Is_Atomic_Non_VFA_Ref_With_Address): ...this and adjust the
|
||
implementation to exclude Volatile_Full_Access objects.
|
||
(Resolve_Indexed_Component): Adjust to above renaming.
|
||
(Resolve_Selected_Component): Likewise.
|
||
|
||
2024-09-03 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Implement the two new
|
||
legality rules of AI11-0106. Add code to avoid cascading error
|
||
messages.
|
||
|
||
2024-09-03 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call):
|
||
Remove Finalize_Storage_Only from the code that checks whether to
|
||
pass null to the Collection parameter. Having done that, we don't
|
||
need to check for Is_Library_Level_Entity, because
|
||
No_Heap_Finalization requires that. And if we ever change
|
||
No_Heap_Finalization to allow nested access types, we will still
|
||
want to pass null. Note that the comment "Such a type lacks a
|
||
collection." is incorrect in the case of Finalize_Storage_Only;
|
||
such types have a collection.
|
||
|
||
2024-09-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Cap the Esize of a
|
||
floating-point type to the size of the widest format supported in
|
||
hardware if it is explicity defined.
|
||
|
||
2024-09-02 Viljar Indus <indus@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: update
|
||
documentation for the -gnatw_l switch.
|
||
* usage.adb: Add -gnatw_l entry.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-09-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnatcmd.adb (GNATCmd): Fix standard output stream.
|
||
|
||
2024-09-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
|
||
minor issues.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-09-02 Bob Duff <duff@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: I assume "extended set
|
||
of extensions" was a typo for "experimental set of extensions",
|
||
because "extended extensions" is repetitive and redundant. "in
|
||
addition" clarifies that the one subsumes the other. Add a
|
||
reminder at the start of each subsection about what switch/pragma
|
||
enables what extensions. Add new section about "Inference of
|
||
Dependent Types in Generic Instantiations".
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-09-02 Patrick Bernardi <bernardi@adacore.com>
|
||
|
||
* s-oscons-tmplt.c: Define sizes of pthread data types on FreeBSD.
|
||
* tracebak.c: Use GCC unwinder and adjust PC appropriately on
|
||
aarch64-freebsd.
|
||
|
||
2024-09-02 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* exp_ch9.adb (Reset_Scopes_To): Adjust comment.
|
||
(Reset_Scopes_To.Reset_Scope): Adjust the scope reset for object
|
||
declaration. In particular, visit the children nodes if any. Also
|
||
extend the handling of other declarations to
|
||
N_Implicit_Label_Declaration.
|
||
|
||
2024-09-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Replace calls to Sloc
|
||
with uses of Loc; turn variable Prag into constant.
|
||
|
||
2024-09-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_imgv.adb (Expand_User_Defined_Enumeration_Image)
|
||
(Expand_Image_Attribute): Remove redundant guards.
|
||
|
||
2024-08-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch8.adb (Has_Private_With): Add test on Is_Entity_Name.
|
||
|
||
2024-08-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* checks.adb (Selected_Length_Checks.Get_E_Length): For a
|
||
component of a record with discriminants and if the expression is
|
||
a selected component, try to build an actual subtype from its
|
||
prefix instead of from the discriminal.
|
||
|
||
2024-08-29 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Discriminant_Conformance): Immediately after
|
||
calling Is_Immutably_Limited_Type, perform an additional test that
|
||
one might reasonably imagine would instead have been part of
|
||
Is_Immutably_Limited_Type. The new test is a call to a new
|
||
function Has_Tagged_Limited_Partial_View whose implementation
|
||
includes a call to Incomplete_Or_Partial_View, which cannot be
|
||
easily be called from Is_Immutably_Limited_Type (because sem_aux,
|
||
which is in the closure of the binder, cannot easily "with"
|
||
sem_util).
|
||
* sem_aux.adb (Is_Immutably_Limited): Include
|
||
N_Derived_Type_Definition case when testing Limited_Present flag.
|
||
|
||
2024-08-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Call_Helper): In the case of a function
|
||
call, look at the Etype of the call node to determine whether
|
||
finalization actions need to be performed.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* erroutc.adb (dmsg): Print Insertion_Sloc.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Range_Component): Remove extra warning
|
||
character. Use same conditional warning char.
|
||
* freeze.adb (Warn_Overlay): Use named warning character.
|
||
* restrict.adb (Id_Case): Use named warning character.
|
||
* sem_prag.adb (Rewrite_Assertion_Kind): Use default warning
|
||
character.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* par-ch4.adb (P_Name): Use Error_Msg_Sloc for the location of the
|
||
continuation message.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_prag.adb (Expand_Pragma_Inspection_Point): Improve sub
|
||
diagnostic generation.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch12.adb (Abandon_Instantiation): Remove continuation
|
||
characters from the error message.
|
||
* sem_ch13.adb (Check_False_Aspect_For_Derived_Type): Remove
|
||
continuation characters from the error message.
|
||
* sem_ch6.adb (Assert_False): Avoid creating a continuation
|
||
message without a parent. If no primary message is created then
|
||
the message is considered as primary.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* erroutc.adb (Prescan_Message): Avoid not parsing all of the
|
||
message attributes.
|
||
* erroutc.ads: Update the documentation.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* freeze.adb: Remove warning insertion characters from a
|
||
continuation message.
|
||
* sem_util.adb: Remove warning insertion characters from a
|
||
continuation message.
|
||
* sem_warn.adb: Use same warning character as the main message.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* erroutc.ads: Add new method Output_Text_Within
|
||
* erroutc.adb: Move the line fitting code to a new method called
|
||
Output_Text_Within
|
||
|
||
2024-08-29 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.adb (Expr_Known_Valid): Use Validated_View, which strips
|
||
type derivation and privacy.
|
||
* exp_ch3.adb (Simple_Init_Private_Type): Kill checks inside
|
||
unchecked conversions, just like in Simple_Init_Scalar_Type.
|
||
|
||
2024-08-29 Viljar Indus <indus@adacore.com>
|
||
|
||
* styleg.adb (Check_Line_Max_Length): Add the actual line length
|
||
to the diagnostic message.
|
||
|
||
2024-08-29 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Add loop over associations to locate
|
||
N_Iterated_Component_Associations that do not have an Iterator_Specification,
|
||
and if their Discrete_Choices list consists of a single choice, analyze it and
|
||
if it's the name of an iterator object, then create an Iterator_Specification
|
||
and associate it with the iterated component association.
|
||
(Resolve_Iterated_Association): Replace test for function call with test of
|
||
Is_Object_Reference, to handle other forms of iterator objects in container
|
||
aggregates.
|
||
|
||
2024-08-29 Javier Miranda <miranda@adacore.com>
|
||
|
||
* usage.adb (Usage): Document switch -gnatw_j
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Add documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-08-29 Justin Squirek <squirek@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Move conditional when
|
||
constructs out of the curated set.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
|
||
|
||
PR middle-end/115495
|
||
* gcc-interface/utils2.cc (fast_modulo_reduction): Require mode.
|
||
(nonbinary_modular_operation): Ditto.
|
||
|
||
2024-08-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/misc.cc (gnat_get_array_descr_info): Test the
|
||
BIT_PACKED_ARRAY_TYPE_P flag only once on the final debug type. In
|
||
the case of records containing a template, replay the entire
|
||
processing for the array type contained therein.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* scng.adb (Scan): Call Error_Msg_GNAT_Extension() to report an
|
||
error, when the sources are compiled without Core_Extensions_
|
||
Allowed, and the scanner detects the beginning of an interpolated
|
||
string.
|
||
|
||
2024-08-23 Sebastian Poeplau <poeplau@adacore.com>
|
||
|
||
* libgnat/s-dwalin.adb (Symbolic_Address): Ignore symbol size in
|
||
address-to-symbol translation for PECOFF files.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference: [Put_Image]): Add
|
||
support for custom string types.
|
||
* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Add a type
|
||
conversion to the result object declaration of custom string
|
||
types.
|
||
* exp_put_image.adb (Build_String_Put_Image_Call): Handle custom
|
||
string types.
|
||
|
||
2024-08-23 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Generate
|
||
error if an aspect specification specifies the
|
||
Implicit_Dereference aspect of a non-first subtype.
|
||
|
||
2024-08-23 Steve Baird <baird@adacore.com>
|
||
|
||
* checks.adb (Is_Signed_Integer_Arithmetic_Op): Return True in the
|
||
case of relational operator whose operands are of a signed integer
|
||
type.
|
||
|
||
2024-08-23 Viljar Indus <indus@adacore.com>
|
||
|
||
* libgnat/a-coinho__shared.ads: add limited keyword.
|
||
* libgnat/g-awk.adb: add limited keyword.
|
||
* libgnat/g-comlin.ads: add limited keyword.
|
||
* libgnat/s-excmac__arm.ads: add limited keyword.
|
||
* libgnat/s-excmac__gcc.ads: add limited keyword.
|
||
* libgnat/s-soflin.ads: add limited keyword.
|
||
|
||
2024-08-23 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch3.adb: Add method Check_Inherited_Limted_Record for
|
||
emitting the warning for an inherited limited type.
|
||
* warnsw.adb: Add processing for the -gnatw_l switch that
|
||
triggeres the inheritly limited type warning.
|
||
* warnsw.ads: same as above.
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
|
||
entry for -gnatw_l switch.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Improve code detecting
|
||
error on private function with controlling result. Fixes the
|
||
regression of ACATS bde0003.
|
||
|
||
2024-08-23 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.ads, cstand.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb,
|
||
exp_dbug.adb, exp_util.adb, gnatlink.adb, lib-util.adb,
|
||
libgnat/a-except.adb, libgnat/a-exexpr.adb, libgnat/a-ngcoar.adb,
|
||
libgnat/s-rannum.adb, libgnat/s-trasym__dwarf.adb, osint.adb,
|
||
rtsfind.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
|
||
sem_ch3.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb,
|
||
sem_util.adb: Fix style.
|
||
|
||
2024-08-23 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.adb (Ensure_Valid): Remove detection of boolean and
|
||
short-circuit operators.
|
||
(Expr_Known_Valid): Detect short-circuit operators; detection of
|
||
boolean operators was already done in this routine.
|
||
|
||
2024-08-23 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.adb (Ensure_Valid): Use Find_Actual.
|
||
|
||
2024-08-23 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* checks.adb (Ensure_Valid): Use First_Actual/Next_Actual.
|
||
* exp_ch6.adb (Is_Direct_Deep_Call): Likewise.
|
||
* exp_util.adb (Type_Of_Formal): Likewise.
|
||
* sem_util.adb (Is_Container_Element): Likewise; cleanup
|
||
membership test by using a subtype.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Temporarily remove reporting
|
||
an error when the new aspect is set to True and the extensions are
|
||
not enabled.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_util.ads (Is_Expanded_Class_Wide_Interface_Object_Decl): New
|
||
subprogram.
|
||
* exp_util.adb (Is_Expanded_Class_Wide_Interface_Object_Decl):
|
||
ditto.
|
||
* sem_util.adb (Is_Aliased_View): Handle expanded class-wide type
|
||
object declaration.
|
||
* checks.adb (Is_Aliased_Unconstrained_Component): Protect the
|
||
frontend against calling Is_Aliased_View with Empty. Found working
|
||
on this issue.
|
||
|
||
2024-08-23 Javier Miranda <miranda@adacore.com>
|
||
|
||
* aspects.ads (Aspect_First_Controlling_Parameter): New aspect.
|
||
Defined as implementation defined aspect that has a static boolean
|
||
value and it is converted to pragma when the value is True.
|
||
* einfo.ads (Has_First_Controlling_Parameter): New attribute.
|
||
* exp_ch9.adb (Build_Corresponding_Record): Propagate the aspect
|
||
to the corresponding record type.
|
||
(Expand_N_Protected_Type_Declaration): Analyze the inherited
|
||
aspect to add the pragma.
|
||
(Expand_N_Task_Type_Declaration): ditto.
|
||
* freeze.adb (Warn_If_Implicitly_Inherited_Aspects): New
|
||
subprogram.
|
||
(Has_First_Ctrl_Param_Aspect): New subprogram.
|
||
(Freeze_Record_Type): Call Warn_If_Implicitly_Inherited_Aspects.
|
||
(Freeze_Subprogram): Check illegal subprograms of tagged types and
|
||
interface types that have this new aspect.
|
||
* gen_il-fields.ads (Has_First_Controlling_Parameter): New entity
|
||
field.
|
||
* gen_il-gen-gen_entities.adb (Has_First_Controlling_Parameter):
|
||
The new field is a semantic flag.
|
||
* gen_il-internals.adb (Image): Add
|
||
Has_First_Controlling_Parameter.
|
||
* par-prag.adb (Prag): No action for
|
||
Pragma_First_Controlling_Parameter since processing is handled
|
||
entirely in Sem_Prag.
|
||
* sem_ch12.adb (Validate_Private_Type_Instance): When the generic
|
||
formal has this new aspect, check that the actual type also has
|
||
this aspect.
|
||
* sem_ch13.adb (Analyze_One_Aspect): Check that the aspect is
|
||
applied to a tagged type or a concurrent type.
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration): Derived tagged
|
||
types inherit this new aspect, and also from their implemented
|
||
interface types.
|
||
(Process_Full_View): Propagate the aspect to the full view.
|
||
* sem_ch6.adb (Is_A_Primitive): New subprogram; used to factor
|
||
code and also clarify detection of primitives.
|
||
* sem_ch9.adb (Check_Interfaces): Propagate this new aspect to the
|
||
type implementing interface types.
|
||
* sem_disp.adb (Check_Controlling_Formals): Handle tagged type
|
||
that has the aspect and has subprograms overriding primitives of
|
||
tagged types that lack this aspect.
|
||
(Check_Dispatching_Operation): Warn on dispatching primitives
|
||
disallowed by this new aspect.
|
||
(Has_Predefined_Dispatching_Operation_Name): New subprogram.
|
||
(Find_Dispatching_Type): Handle dispatching functions of tagged
|
||
types that have the new aspect.
|
||
(Find_Primitive_Covering_Interface): For primitives of tagged
|
||
types that have the aspect and override a primitive of a parent
|
||
type that does not have the aspect, we must temporarily unset
|
||
attribute First_Controlling_ Parameter to properly check
|
||
conformance.
|
||
* sem_prag.ads (Aspect_Specifying_Pragma): Add new pragma.
|
||
* sem_prag.adb (Pragma_First_Controlling_Parameter): Handle new
|
||
pragma.
|
||
* snames.ads-tmpl (Name_First_Controlling_Parameter): New name.
|
||
* warnsw.ads (Warn_On_Non_Dispatching_Primitives): New warning.
|
||
* warnsw.adb (Warn_On_Non_Dispatching_Primitives): New warning;
|
||
not set by default when GNAT_Mode warnings are enabled, nor when
|
||
all warnings are enabled (-gnatwa).
|
||
|
||
2024-08-19 Arsen Arsenović <arsen@aarsen.me>
|
||
|
||
PR ada/115917
|
||
* gnatvsn.ads: Add note about the duplication of this value in
|
||
version.c.
|
||
* version.c (VER_LEN_MAX): Define to the same value as
|
||
Gnatvsn.Ver_Len_Max.
|
||
(gnat_version_string): Use VER_LEN_MAX as bound.
|
||
|
||
2024-08-08 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Discriminant_Conformance): Perform check for
|
||
illegal access discriminant default values when the completion of
|
||
a limited private type is analyzed.
|
||
* sem_aux.adb (Is_Immutably_Limited): If passed the
|
||
not-yet-analyzed entity for the full view of a record type, test
|
||
the Limited_Present flag
|
||
(which is set by the parser).
|
||
|
||
2024-08-08 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_ch4.adb (Build_Eq_Call): In the abstract callee case, copy
|
||
the Etype of the callee onto the Make_Raise_Program_Error result.
|
||
|
||
2024-08-08 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch7.adb (Unnest_Block): Copy the At_End_Proc from the block
|
||
statement to the newly created subprogram body.
|
||
|
||
2024-08-08 Justin Squirek <squirek@adacore.com>
|
||
|
||
* exp_put_image.adb (Append_Component_Attr): Obtain the mutably
|
||
tagged type for the component type.
|
||
* mutably_tagged.adb (Make_Mutably_Tagged_Conversion): Add more
|
||
cases to avoid conversion generation.
|
||
* sem_attr.adb (Check_Put_Image_Attribute): Add mutably tagged
|
||
type conversion.
|
||
* sem_ch12.adb (Analyze_One_Association): Add rewrite for formal
|
||
type declarations which are mutably tagged type to their
|
||
equivalent type.
|
||
(Instantiate_Type): Add condition to obtain class wide equivalent
|
||
types.
|
||
(Validate_Private_Type_Instance): Add check for class wide
|
||
equivalent types which are considered "definite".
|
||
* sem_util.adb (Is_Variable): Add condition to handle selected
|
||
components of view conversions. Add missing check for selected
|
||
components.
|
||
(Is_View_Conversion): Add condition to handle class wide
|
||
equivalent types.
|
||
|
||
2024-08-08 Justin Squirek <squirek@adacore.com>
|
||
|
||
* stylesw.adb (Set_Style_Check_Options): Disable max nesting level
|
||
when unspecified
|
||
|
||
2024-08-08 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
|
||
If the prefix is an interface type, generate code to obtain its
|
||
address and displace it to reference the base of the object.
|
||
|
||
2024-08-08 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* libgnarl/s-taprop__posix.adb (Stack_Guard): Use Interfaces.C.size_t
|
||
for the type of Page_Size.
|
||
|
||
2024-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* libgnarl/s-taprop__solaris.adb (Set_Task_Affinity): Fully
|
||
quality int.
|
||
|
||
2024-08-06 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Concatenation_Rest): Do not add a wrong
|
||
interpretation of the concatenation, using the type of the operand
|
||
already recognized as of the element type.
|
||
|
||
2024-08-06 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch12.adb: Implement type inference for generic parameters.
|
||
(Maybe_Infer_One): Forbid inference of anonymous subtypes and
|
||
types.
|
||
(Inference_Reason): Fix comment.
|
||
* debug.adb: Document -gnatd_I switch.
|
||
* errout.ads: Document that Empty is not allowed for "&".
|
||
* errout.adb (Set_Msg_Insertion_Node): Minor: Do not allow
|
||
Error_Msg_Node_1 = Empty for "&". Use "in" instead of multiple
|
||
"=". Improve comment.
|
||
|
||
2024-08-06 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Statement.Wrap_Loop_Statement): Remove
|
||
the loop Entity_Id from its old scope and insert it in the new
|
||
block scope that wraps it.
|
||
|
||
2024-08-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Entity): For scalar derived types that
|
||
inherit the aspect Default_Value, do not analyze and resolve the
|
||
inherited aspect, as the type of the aspect remains the parent
|
||
type.
|
||
|
||
2024-08-06 Viljar Indus <indus@adacore.com>
|
||
|
||
* libgnarl/s-interr__hwint.adb: Use fully qualified names to avoid
|
||
ambiguity.
|
||
* libgnarl/s-taprop__qnx.adb: Likewise.
|
||
|
||
2024-08-06 Javier Miranda <miranda@adacore.com>
|
||
|
||
* repinfo.adb (List_Record_Info): Handle private record types.
|
||
|
||
2024-08-06 Viljar Indus <indus@adacore.com>
|
||
|
||
* libgnarl/s-taprop__mingw.adb: Use fully qualified names
|
||
to avoid ambiguity.
|
||
* libgnarl/s-taprop__posix.adb: Likewise.
|
||
* libgnarl/s-taprop__qnx.adb: Likewise.
|
||
* libgnarl/s-taprop__rtems.adb: Likewise.
|
||
|
||
2024-08-06 Yannick Moy <moy@adacore.com>
|
||
|
||
* freeze.adb (Build_Renamed_Body): Propagate SPARK_Pragma to body
|
||
build from renaming, so that locally relevant value is taken into
|
||
account.
|
||
* sem_ch6.adb (Analyze_Expression_Function): Propagate
|
||
SPARK_Pragma to body built from expression function, so that
|
||
locally relevant value is taken into account.
|
||
|
||
2024-08-06 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Direct_Name): Disable the special-purpose code
|
||
when we are actually compiling the run-time library itself.
|
||
* libgnarl/a-exetim__posix.adb: Fix newly-found use-clause
|
||
conflicts.
|
||
* libgnat/a-direct.adb: Likewise.
|
||
* libgnat/a-nbnbin.adb: Likewise.
|
||
* libgnat/a-timoio__128.adb: Likewise.
|
||
* libgnat/a-timoio.adb: Likewise.
|
||
* libgnat/a-wtmoio__128.adb: Likewise.
|
||
* libgnat/a-wtmoio.adb: Likewise.
|
||
* libgnat/a-ztmoio__128.adb: Likewise.
|
||
* libgnat/a-ztmoio.adb: Likewise.
|
||
|
||
2024-08-02 Yannick Moy <moy@adacore.com>
|
||
|
||
* aspects.adb (Find_Aspect): Take into account the case of a node
|
||
of kind N_Defining_Program_Unit_Name.
|
||
* sem_ch10.adb (Analyze_Compilation_Unit): Copy the SPARK aspect
|
||
from the spec to the body. Delay semantic analysis after that
|
||
point to ensure that SPARK_Mode is properly analyzed.
|
||
|
||
2024-08-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_aggr.adb (Add_Loop_Actions): Actions are now attached to
|
||
iterated component association just like they are attached to
|
||
ordinary component association.
|
||
(Build_Array_Aggr_Code): If resolution of the array aggregate
|
||
generated some actions, e.g. for run-time checks, then we must
|
||
keep them; same for the Other_Clause.
|
||
* sem_aggr.adb (Resolve_Iterated_Component_Association): Unset
|
||
references to iterator variable in loop actions (which might come
|
||
from run-time check), just these references are unset in the
|
||
expression itself.
|
||
|
||
2024-08-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_util.adb (Insert_Actions): Remove null ELSE branch.
|
||
|
||
2024-08-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_aggr.adb (Add_Loop_Actions): Change manipulation of list
|
||
to avoid unnecessary calls to Parent and Loop_Actions.
|
||
|
||
2024-08-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_util.adb (Insert_Actions): Move negation in front of
|
||
complex conjunctions.
|
||
|
||
2024-08-02 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_aggr.adb (Gen_Assign): Fix layout.
|
||
* sem_aggr.adb (Empty_Range): Reuse Choice_List.
|
||
|
||
2024-08-02 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_aggr.adb
|
||
(Expand_Container_Aggregate.Expand_Iterated_Component): Set the
|
||
Reverse_Present flag when creating the loop's iteration_scheme.
|
||
* gen_il-gen-gen_nodes.adb: Add flag Reverse_Present to
|
||
N_Iterated_Component_Association nodes.
|
||
* par-ch3.adb (P_Constraint_Op): Remove testing for and ignoring
|
||
of Tok_In following a constraint. It's allowed for "in" to follow
|
||
a constraint of loop_parameter_subtype_indication of an
|
||
iterator_specification, so it shouldn't be ignored.
|
||
* par-ch4.adb (P_Iterated_Component_Association): Account for
|
||
"reverse" following the "in" in an iterated_component_association,
|
||
and set the Reverse_Present flag on the
|
||
N_Iterated_Component_Association node. Add handling for a ":"
|
||
following the identifier in an iterator_specification of an
|
||
iterated_element_association, sharing the code with the "of" case
|
||
(which backs up to the identifier at the beginning of the
|
||
iterator_specification). Fix incorrect trailing comment following
|
||
the call to Scan.
|
||
(Build_Iterated_Element_Association): Set the Reverse_Present flag
|
||
on an N_Loop_Parameter_Specification node of an
|
||
N_Iterated_Element_Association.
|
||
* par-ch5.adb (P_Iterator_Specification): Remove error-recovery
|
||
and error code that reports "subtype indication is only legal on
|
||
an element iterator", as that error can no longer be emitted (and
|
||
was formerly only reported on one fixedbugs test).
|
||
* sem_aggr.adb
|
||
(Resolve_Container_Aggregate.Resolve_Iterated_Association): When
|
||
creating an N_Iterator_Specification for an
|
||
N_Iterated_Component_Association, set the Reverse_Present flag of
|
||
the N_Iterated_Specification from the flag on the latter.
|
||
* sinfo.ads: Add comments for the Reverse_Present flag, which is
|
||
now allowed on nodes of kind N_Iterated_Component_Association.
|
||
|
||
2024-08-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate the
|
||
No_Raise flag like the No_Return flag.
|
||
|
||
2024-08-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Remove variables.
|
||
(To_Int): New function.
|
||
(Add_Range_Size): Use newly introduced function.
|
||
|
||
2024-08-02 Yannick Moy <moy@adacore.com>
|
||
|
||
* libgnat/a-strunb.adb (Sum, Saturated_Sum, Saturated_Mul): Adapt
|
||
function signatures to more precise types that allow proof.
|
||
(function "&"): Conditionally assign a slice to avoid possible
|
||
overflow which only occurs when the assignment is a noop (because
|
||
the slice is empty in that case).
|
||
(Append): Same.
|
||
(function "*"): Retype K to avoid a possible overflow. Add early
|
||
return on null length for proof.
|
||
(Delete): Fix implementation to return the correct result in all
|
||
cases allowed by the Ada standard.
|
||
(Insert): Same. Also avoid possible overflows.
|
||
(Length): Rewrite as expression function for proof.
|
||
(Overwrite): Avoid possible overflows.
|
||
(Slice): Same.
|
||
(To_String): Rewrite as expression function for proof.
|
||
* libgnat/a-strunb.ads: Extend Assertion_Policy to new contracts
|
||
used. Add complete functional contracts to all subprograms of the
|
||
public API except Count.
|
||
* libgnat/a-strunb__shared.adb (Sum): Adapt function signature to
|
||
more precise types that allow proof.
|
||
(function "&"): Conditionally assign a slice to avoid possible
|
||
overflow.
|
||
(function "*"): Retype K to avoid a possible overflow.
|
||
(Delete): Fix implementation to return the correct result in all
|
||
cases allowed by the Ada standard.
|
||
(Insert): Avoid possible overflows.
|
||
(Overwrite): Avoid possible overflows.
|
||
(Replace_Slice): Same.
|
||
(Slice): Same.
|
||
(To_String): Rewrite as expression function for proof.
|
||
* libgnat/a-strunb__shared.ads: Extend Assertion_Policy to new
|
||
contracts used. Add complete functional contracts to all
|
||
subprograms of the public API except Count. Mark public part of
|
||
spec as in SPARK.
|
||
|
||
2024-08-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* scng.adb (Slit): Initialize object in uncommon path.
|
||
|
||
2024-08-02 Richard Kenner <kenner@adacore.com>
|
||
|
||
* exp_ch4.adb (Generate_Temporary): Remove unused procedure.
|
||
|
||
2024-08-02 Richard Kenner <kenner@adacore.com>
|
||
|
||
* einfo-utils.ads (Is_Finalizer): Delete.
|
||
* einfo-utils.adb (Is_Finalizer): Delete.
|
||
* einfo.ads: Adjust comment.
|
||
* gen_il-fields.ads, gen_il-gen-gen_entities.adb: Add Is_Finalizer
|
||
flag.
|
||
* exp_ch3.adb (Build_Init_Procedure): Set it.
|
||
* exp_ch7.adb (Create_Finalizer): Likewise.
|
||
* exp_util.adb (Try_Inline_Always): New function.
|
||
* exp_util.ads (Try_Inline_Always): New function.
|
||
* sem_elab.adb (Is_Finalizer_Proc): Replace with Is_Finalizer.
|
||
|
||
2024-08-02 Tonu Naks <naks@adacore.com>
|
||
|
||
* libgnat/a-calend.adb: Modify unix time handling.
|
||
|
||
2024-08-02 Tonu Naks <naks@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst: Add examples.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-02 Javier Miranda <miranda@adacore.com>
|
||
|
||
* gen_il-fields.ads (Is_Interpolated_String_Literal): New field.
|
||
* gen_il-gen-gen_nodes.adb (Is_Interpolated_String_Literal): The
|
||
new field is a flag handled by the parser (syntax flag).
|
||
* par-ch2.adb (P_Interpolated_String_Literal): Decorate the new
|
||
flag.
|
||
* sem_ch2.adb (Analyze_Interpolated_String_Literal): Improve code
|
||
detecting and reporting ambiguous function calls.
|
||
* sem_res.adb (Resolve_Interpolated_String_Literal): Restrict
|
||
resolution imposed by the context type to string literals that
|
||
have the new flag.
|
||
* sinfo.ads (Is_Interpolated_String_Literal): New field defined in
|
||
string literals. Fix documentation of the syntax rule of
|
||
interpolated string literal.
|
||
|
||
2024-08-02 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Assignment): Delete code that was
|
||
incorrectly implementing a preference rule.
|
||
|
||
2024-08-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Relaxed Finalization): New paragraph in head
|
||
comment.
|
||
* sem_ch13.adb (Validate_Finalizable_Aspect): Give an error
|
||
message if strict finalization is required but not supported by
|
||
the runtime.
|
||
|
||
2024-08-02 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_util.adb (Set_Referenced_Modified): Set referenced as LHS
|
||
for the prefixes of array slices.
|
||
|
||
2024-08-02 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch8.adb (Find_Type): If Is_Current_Instance returns True for
|
||
N (and Comes_From_Source (N) is also True) then flag an error.
|
||
Call Is_Current_Instance (twice) instead of duplicating (twice)
|
||
N_Access_Definition-related code in Is_Current_Instance.
|
||
* sem_util.adb (Is_Current_Instance): Implement
|
||
access-type-related clauses of the RM 8.6 current instance rule.
|
||
For pragmas Predicate and Predicate_Failure, distinguish between
|
||
the first and subsequent pragma arguments.
|
||
|
||
2024-08-02 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_res.adb (Valid_Conversion): Test In_Instance instead of
|
||
In_Instance_Body.
|
||
|
||
2024-08-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id): Add Aspect_No_Raise identifier.
|
||
(Implementation_Defined_Aspect): Add True for Aspect_No_Raise.
|
||
(Is_Representation_Aspect): Add False for Aspect_No_Raise.
|
||
(Aspect_Names): Add Name_No_Raise for Aspect_No_Raise.
|
||
(Aspect_Delay): Add Always_Delay for Aspect_No_Raise.
|
||
* checks.ads (Raise_Checks_Suppressed): New function.
|
||
(Apply_Raise_Check): New procedure.
|
||
* checks.adb (Apply_Raise_Check): New procedure.
|
||
(Raise_Checks_Suppressed): New function.
|
||
* doc/gnat_rm/gnat_language_extensions.rst (Generalized
|
||
Finalization): Update.
|
||
* doc/gnat_rm/implementation_defined_aspects.rst (No_Raise): New.
|
||
* doc/gnat_rm/implementation_defined_characteristics.rst (Check
|
||
names): Document Raise_Check and alphabetize others.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst (No_Raise): New.
|
||
* einfo.ads (No_Raise): New flag defined in subprograms and
|
||
generic subprograms.
|
||
* exp_ch6.adb (Expand_N_Subprogram_Body): Call Apply_Raise_Check
|
||
at the end of the processing.
|
||
* exp_ch11.adb (Get_RT_Exception_Name): Add alternative for
|
||
PE_Raise_Check_Failed to case statement.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Add No_Raise identifier.
|
||
* gen_il-gen-gen_entities.adb (Subprogram_Kind): Add No_Raise as
|
||
semantical flag.
|
||
(Generic_Subprogram_Kind): Likewise.
|
||
* par-prag.adb (Prag): Add alternative for Pragma_No_Raise to case
|
||
statement.
|
||
* sem_ch13.adb (Validate_Finalizable_Aspect): Set No_Raise on the
|
||
Adjust and Finalize primitives if Relaxed_Finalization is set.
|
||
* sem_prag.adb (Analyze_Pragma): Add alternative for
|
||
Pragma_No_Raise to case statement.
|
||
(Sig_Flag): Add 0 for Pragma_No_Raise.
|
||
* snames.ads-tmpl (Remaining pragma names): Add Name_No_Raise.
|
||
(Names of recognized checks): Add Name_Raise_Check.
|
||
(Pragma_Id): Add Pragma_No_Raise identifier.
|
||
* types.ads (Raise_Check): New named number.
|
||
(All_Checks): Adjust.
|
||
(RT_Exception_Code): Add PE_Raise_Check_Failed identifier.
|
||
(Rkind): Add PE_Reason for PE_Raise_Check_Failed and alphabetize.
|
||
* types.h (RT_Exception_Code): Add PE_Raise_Check_Failed as 38.
|
||
(LAST_REASON_CODE): Adjust.
|
||
* libgnat/a-except.adb (Rcheck_PE_Raise_Check): New procedure with
|
||
pragmas Export, No_Return and Machine_Attributes.
|
||
(Rmsg_38): New string constant.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-08-02 Johannes Kliemann <kliemann@adacore.com>
|
||
|
||
* doc/gnat_rm/standard_library_routines.rst: Add note to section
|
||
of Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
|
||
* doc/gnat_rm/the_gnat_library.rst: Add note to section about
|
||
GNAT.Random_Numbers.
|
||
* libgnat/a-nudira.ads: Add note about cryptographic properties.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Fix layout of section.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_util.ads (Is_Conversion_Or_Reference_To_Formal): New
|
||
function declaration.
|
||
* exp_util.adb (Is_Conversion_Or_Reference_To_Formal): New
|
||
function body.
|
||
* exp_ch6.adb (Expand_Simple_Function_Return): Call the predicate
|
||
Is_Conversion_Or_Reference_To_Formal in order to decide whether a
|
||
tag check or reassignment is needed.
|
||
* freeze.adb (Should_Freeze_Type): Move declaration and body to
|
||
the appropriate places. Also return True for tagged results
|
||
subject to the expansion done in Expand_Simple_Function_Return
|
||
that is guarded by the predicate
|
||
Is_Conversion_Or_Reference_To_Formal.
|
||
|
||
2024-08-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Statement): Fix loop pattern detection
|
||
code. Fix typo.
|
||
|
||
2024-08-01 Yannick Moy <moy@adacore.com>
|
||
|
||
* libgnat/a-strunb.adb (Realloc_For_Chunk): Fix computation of new
|
||
size.
|
||
|
||
2024-08-01 Yannick Moy <moy@adacore.com>
|
||
|
||
* libgnat/a-strbou.ads (To_String): Add a postcondition to state
|
||
the value of bounds of the returned string, which helps with proof
|
||
of callers.
|
||
* libgnat/a-strfix.adb (Delete): Fix implementation to produce
|
||
correct result in all cases. For example, returned string should
|
||
always have a lower bound of 1, which was not respected in one
|
||
case. This was not detected by proof, since this code was dead
|
||
according to the too strict precondition.
|
||
* libgnat/a-strfix.ads (Delete): State the correct precondition
|
||
from standard which allows a value of Through beyond the last
|
||
valid index, and also restricts values of From from below. Update
|
||
the Contract_Cases accordingly to allow new values of parameters.
|
||
|
||
2024-08-01 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Don't check for duplicate
|
||
SPARK_Mode pragmas in configuration files.
|
||
|
||
2024-08-01 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_attr.adb (Resolve_Attribute, Attribute_*Access): Resolve
|
||
overloaded prefixes that denote objects of reference types,
|
||
determining whether to use the prefix object directly, or expand
|
||
it as an explicit dereference.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sinfo.ads (N_Block_Statement): Move At_End_Proc to the end of
|
||
slot list and alphabetize flag list.
|
||
(N_Subprogram_Body): Add At_End_Proc.
|
||
(N_Package_Body): Move At_End_Proc to the end of slot list.
|
||
(N_Subprogram_Body_Stub): Remove At_End_Proc.
|
||
|
||
2024-08-01 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Parameter_Specification):
|
||
Unconditionally set the type of loop parameter.
|
||
|
||
2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* backend_utils.adb (Scan_Common_Back_End_Switch): Remove blank
|
||
line.
|
||
* errout.adb (Output_JSON_Message): Likewise.
|
||
* erroutc.adb (Set_Msg_Char): Likewise.
|
||
* exp_aggr.adb (Two_Dim_Packed_Array_Handled): Likewise.
|
||
* exp_pakd.adb (Expand_Packed_Address_Reference): Likewise.
|
||
(Expand_Packed_Bit_Reference): Likewise.
|
||
(Expand_Packed_Boolean_Operator): Likewise.
|
||
(Expand_Packed_Element_Reference): Likewise.
|
||
(Expand_Packed_Eq): Likewise.
|
||
(Expand_Packed_Not): Likewise.
|
||
* exp_prag.adb (Build_Dim3_Declaration): Likewise.
|
||
* exp_strm.adb (Build_Elementary_Input_Call): Likewise.
|
||
* freeze.adb (Find_Aspect_No_Parts): Likewise.
|
||
(Get_Aspect_No_Parts_Value): Likewise.
|
||
* gen_il-gen.adb (Compile): Likewise.
|
||
* gnat1drv.adb (Adjust_Global_Switches): Likewise.
|
||
* gnat_cuda.adb (Expand_CUDA_Package): Likewise.
|
||
* gnatchop.adb (Read_File): Likewise.
|
||
* gnatls.adb (Get_Runtime_Path): Likewise.
|
||
* make.adb (Binding_Phase): Likewise.
|
||
* par-ch11.adb (P_Exception_Choice): Likewise.
|
||
* par-ch5.adb (P_Loop_Parameter_Specification): Likewise.
|
||
* par-ch6.adb (Is_Extended): Likewise.
|
||
* sem_attr.adb (Check_Dereference): Likewise.
|
||
* sem_ch12.adb (Build_Subprogram_Decl_Wrapper): Likewise.
|
||
* sem_ch3.adb (Build_Itype_Reference): Likewise.
|
||
* sem_prag.adb (Validate_Compile_Time_Warning_Errors): Likewise.
|
||
* sem_res.adb (Resolve_Declare_Expression): Likewise.
|
||
* sem_util.adb (Build_Default_Subtype): Likewise.
|
||
* sprint.adb (Sprint_Paren_Comma_List): Likewise.
|
||
|
||
2024-08-01 Javier Miranda <miranda@adacore.com>
|
||
|
||
* par-ch2.adb (P_Interpolated_String_Literal): remove support of
|
||
multi-line string literals.
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Update documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-08-01 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_warn.adb (Output_Obsolescent_Entity_Warnings): use the ?j?
|
||
in warning messages.
|
||
|
||
2024-08-01 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Fix test for
|
||
expanded quantified expression context.
|
||
(Is_Expanded_Quantified_Expr): New function.
|
||
|
||
2024-08-01 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Add_Predicate): Remove the premature "return;".
|
||
Ghost code needs to be processed by later code in this procedure
|
||
even when ignored; otherwise the second pass of name resolution
|
||
fails much later. However, protect Set_SCO_Pragma_Enabled and
|
||
Add_Condition with "if not Is_Ignored_Ghost_Pragma"; these parts
|
||
should not happen if the ghost code is Ignored.
|
||
* libgnat/interfac__2020.ads (Unsigned_8): Minor reformatting.
|
||
* libgnat/interfac.ads (IEEE_Extended_Float): Minor comment
|
||
improvement.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (No_Return): Change description and adjust
|
||
accordingly.
|
||
* gen_il-gen-gen_entities.adb (Entity_Kind): Remove No_Return.
|
||
(Subprogram_Kind): Add No_Return.
|
||
(Generic_Subprogram_Kind): Likewise.
|
||
* sem_ch6.adb (Analyze_Return_Statement): Adjust No_Return test.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst (Generalized
|
||
Finalization): Update status.
|
||
* einfo.ads (Has_Relaxed_Finalization): Add more details.
|
||
* exp_ch4.adb (Process_Transients_In_Expression): Invoke
|
||
Make_Finalize_Call_For_Node instead of building the call.
|
||
* exp_ch5.adb (Expand_N_Assignment_Statement): Do not set up an
|
||
exception handler around the assignment for a controlled type with
|
||
relaxed finalization semantics. Streamline the code implementing
|
||
the protection against aborts and do not use an At_End handler for
|
||
a controlled type with relaxed finalization semantics.
|
||
* exp_ch7.ads (Make_Finalize_Call_For_Node): New function.
|
||
* exp_ch7.adb (Finalize_Address_For_Node): New function renaming.
|
||
(Set_Finalize_Address_For_Node): New procedure renaming.
|
||
(Attach_Object_To_Master_Node): Also attach the Finalize_Address
|
||
primitive to the Master_Node statically.
|
||
(Build_Finalizer): Add Has_Strict_Ctrl_Objs local variable. Insert
|
||
back the body of the finalizer at the end of the statement list in
|
||
the non-package case and restore the associated support code to
|
||
that effect. When all the controlled objects have the relaxed
|
||
finalization semantics, do not create a Finalization_Master and
|
||
finalize the objects directly instead.
|
||
(Processing_Actions): Add Strict parameter and use it to set the
|
||
Has_Strict_Ctrl_Objs variable.
|
||
(Process_Declarations): Make main loop more robust and adjust
|
||
calls to Processing_Actions.
|
||
(Make_Finalize_Address_Body): Mark the primitive as inlined if the
|
||
type has relaxed finalization semantics.
|
||
(Make_Finalize_Call_For_Node): New function.
|
||
* sem_ch6.adb (Check_Statement_Sequence): Skip subprogram bodies.
|
||
* libgnat/s-finpri.ads (Finalize_Object): Add Finalize_Address
|
||
parameter.
|
||
(Master_Node): Remove superfluous qualification.
|
||
* libgnat/s-finpri.adb (Attach_Object_To_Node): Likewise.
|
||
(Finalize_Master): Adjust calls to Finalize_Object.
|
||
(Finalize_Object): Add Finalize_Address parameter and assert that
|
||
it is equal to the component of the node. Use the Object_Address
|
||
component as guard.
|
||
(Suppress_Object_Finalize_At_End): Clear Object_Address component.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-08-01 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* bindgen.adb (Gen_Main): Put back support for -G
|
||
* bindusg.adb (Display): Put back line for -G
|
||
* opt.ads (CCG_Mode): Update doc
|
||
* switch-b.adb (Scan_Binder_Switches): Put back support for -G
|
||
|
||
2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Disable expansion
|
||
in CodePeerMode.
|
||
(Expand_Packed_Address_Reference): Likewise.
|
||
(Expand_Packed_Bit_Reference): Likewise.
|
||
(Expand_Packed_Boolean_Operator): Likewise.
|
||
(Expand_Packed_Element_Reference): Likewise.
|
||
(Expand_Packed_Eq): Likewise.
|
||
(Expand_Packed_Not): Likewise.
|
||
|
||
2024-08-01 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Aspect_Too_Late): Move routine to top-level.
|
||
(Resolve_Aspect_Expressions): Check aspects Default_Value and
|
||
Default_Component_Value before resolving their expressions.
|
||
|
||
2024-08-01 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Aspect_Too_Late): Prevent freezing during
|
||
preanalysis.
|
||
|
||
2024-08-01 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Resolve_Aspect_Expression): Don't set
|
||
Must_Not_Freeze before preanalyzing spec expressions.
|
||
|
||
2024-08-01 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_disp.adb (Check_Dispatching_Operation): When calling
|
||
Error_Msg_NE to generate a "missing overriding indicator" message,
|
||
generate a warning message instead of an error message (and update
|
||
comment to describe this new behavior).
|
||
|
||
2024-08-01 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_aggr.adb (Collect_Aggr_Bounds): Adjust previous patch to
|
||
store the bounds of inner null aggregates in the itype; required
|
||
generate the runtime check of ARM 4.3.3(30).
|
||
|
||
2024-08-01 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* osint-c.ads, osint-c.adb (Create_C_File, Close_C_File,
|
||
Delete_C_File): Put back, needed by LLVM based CCG.
|
||
* exp_unst.adb (Unnest_Subprogram): Complete previous change by
|
||
removing now dead code and corresponding ??? comment.
|
||
|
||
2024-08-01 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do the
|
||
component adjustment in the case of initialization by a container
|
||
aggregate.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Convert_To_Assignments): Set Expansion_Delayed on
|
||
intermediate conditional expressions for BIP aggregate returns
|
||
too.
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Also deal with delayed
|
||
expansion in the return case.
|
||
(Expand_N_If_Expression): Likewise.
|
||
|
||
2024-08-01 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch4.adb (Is_Effectively_Visible_Opertor): Return True if
|
||
Checking_Potentially_Static_Expression is True. The accompanying
|
||
comment says True is returned "if there is a reason it is ok for
|
||
Is_Visible_Operator to return False"; if
|
||
Checking_Potentially_Static_Expression is true, that is such a
|
||
reason.
|
||
|
||
2024-08-01 Ghjuvan Lacambre <lacambre@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Stop
|
||
ignoring Component_Size attribute in CodePeer_Mode.
|
||
|
||
2024-08-01 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch5.adb (Prepare_Param_Spec_Loop): Fix criterion for
|
||
wrapping loop statements into blocks.
|
||
|
||
2024-08-01 Arnaud Charlet <charlet@adacore.com>
|
||
|
||
* bindgen.adb, bindusg.adb, debug.adb, einfo.ads,
|
||
exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
|
||
exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_dbug.adb,
|
||
exp_dbug.ads, exp_intr.adb, exp_unst.adb, exp_util.adb,
|
||
exp_util.ads, freeze.adb, gen_il-fields.ads,
|
||
gen_il-gen-gen_entities.adb, gnat1drv.adb, inline.adb, opt.ads,
|
||
osint-c.adb, osint-c.ads, sem_attr.adb, sem_ch12.adb, sem_ch3.adb,
|
||
sem_ch4.adb, sem_ch6.adb, sem_elab.adb, sem_res.adb, sinfo.ads,
|
||
snames.ads-tmpl, switch-b.adb, switch-c.adb: Major
|
||
clean up to remove C code generation for bodies.
|
||
|
||
2024-08-01 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_aggr.adb (Flatten): Do not reject empty aggregates. Adjust
|
||
criterion for emitting warning about ineffective others clause.
|
||
* sem_aggr.adb (Array_Aggr_Subtype): Fix typo. Add handling of
|
||
aggregates that were converted to positional form.
|
||
(Resolve_Aggregate): Tweak criterion for transforming into a
|
||
string literal.
|
||
(Resolve_Array_Aggregate): Tweak criterion for reusing existing
|
||
bounds of aggregate.
|
||
(Retrieve_Aggregate_Bounds): New procedure.
|
||
* sem_util.adb (Has_Static_Empty_Array_Bounds): New function.
|
||
* sem_util.ads (Has_Static_Empty_Array_Bounds): Likewise.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.ads (Build_Finalizer): Remove Top_Decls parameter.
|
||
* exp_ch7.adb (Build_Finalizer): Likewise. Rename Counter_Val into
|
||
Count, replace Has_Ctrl_Objs local variable by expression
|
||
function, remove Spec_Decls local variable and do not reset
|
||
Finalizer_Decls.
|
||
(Expand_Cleanup_Actions): Adjust call to Build_Finalizer.
|
||
(Expand_N_Package_Body): Likewise.
|
||
(Expand_N_Package_Declaration): Likewise.
|
||
* inline.adb (Cleanup_Scopes): Likewise.
|
||
|
||
2024-08-01 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Make_Address_For_Finalize): Generate a direct call
|
||
to the "+" operator of System.Storage_Elements.
|
||
(Make_Finalize_Address_Stmts): Likewise.
|
||
* rtsfind.ads (RE_Id): Remove RE_Add_Offset_To_Address.
|
||
(RE_Unit_Table): Remove entry for RE_Add_Offset_To_Address.
|
||
* libgnat/s-finpri.ads (Add_Offset_To_Address): Delete.
|
||
* libgnat/s-finpri.adb (Add_Offset_To_Address): Likewise.
|
||
|
||
2024-07-07 Maciej W. Rozycki <macro@orcam.me.uk>
|
||
|
||
* gcc-interface/Make-lang.in (ada.all.cross): Move recipe to...
|
||
(GNATTOOLS_CROSS_MV): ... this new variable.
|
||
(cross-gnattools): Paste it here.
|
||
(gnattools-cross-mv): New target.
|
||
|
||
2024-07-03 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* gcc-interface/misc.cc (gnat_get_array_descr_info): Only follow
|
||
TYPE_DEBUG_TYPE if TYPE_CAN_HAVE_DEBUG_TYPE_P.
|
||
* gcc-interface/utils.cc (sized_type_hash): New struct.
|
||
(sized_type_hasher): New struct.
|
||
(sized_type_hash_table): New variable.
|
||
(init_gnat_utils): Allocate it.
|
||
(destroy_gnat_utils): Release it.
|
||
(sized_type_hasher::equal): New.
|
||
(hash_sized_type): New.
|
||
(canonicalize_sized_type): New.
|
||
(make_type_from_size): Use it to cache packed variants. Fix
|
||
type reuse by combining biased_p and for_biased earlier. Hold
|
||
the combination in for_biased, adjusting later uses.
|
||
|
||
2024-07-03 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* gcc-interface/cuintp.cc (UI_To_gnu): Add mode that selects a
|
||
wide enough unsigned type. Fail if the constant exceeds the
|
||
representable numbers.
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Use it for
|
||
numerator and denominator of fixed-point types. In case of
|
||
failure, fall back to an indeterminate fraction.
|
||
|
||
2024-07-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Concatenate): In the case where an operand
|
||
does not have both bounds known at compile time, use nevertheless
|
||
the low bound directly if it is known at compile time.
|
||
Fold the conditional expression giving the low bound of the result
|
||
in the general case if the low bound of all the operands are equal.
|
||
|
||
2024-07-02 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch12.adb (Save_And_Reset): Fix value of low bound used to
|
||
reset table.
|
||
|
||
2024-07-02 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_attr.adb
|
||
(Analyze_Image_Attribute.Check_Image_Type): Check for
|
||
E_Access_Attribute_Type prefix type.
|
||
|
||
2024-07-02 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_ch9.adb
|
||
(Expand_N_Protected_Body): Declare new procedure
|
||
Unanalyze_Use_Clauses and call it before analyzing the newly
|
||
constructed subprogram body.
|
||
|
||
2024-07-02 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_put_image.adb
|
||
(Build_Record_Put_Image_Procedure): Declare new Boolean-valued
|
||
function Null_Record_Default_Implementation_OK; call it as part of
|
||
deciding whether to generate "(NULL RECORD)" text.
|
||
|
||
2024-07-02 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_ch5.adb:
|
||
(Analyze_Assignment): Add special expansion for qualified expressions
|
||
in certain cases dealing with mutably tagged types.
|
||
|
||
2024-07-02 Bob Duff <duff@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Type_Refs): If Node is in N_Has_Etype,
|
||
check that it has had its Etype set, because this can be
|
||
called early for expression functions that are completions.
|
||
|
||
2024-07-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Array_Comparison): Remove the obsolete byte
|
||
addressibility test. If Support_Composite_Compare_On_Target is true,
|
||
immediately return for a component size of 8, an unsigned component
|
||
type and aligned operands. Disable when Unnest_Subprogram_Mode is
|
||
true (for LLVM).
|
||
(Expand_N_Op_Eq): Adjust comment.
|
||
* targparm.ads (Support_Composite_Compare_On_Target): Replace bit by
|
||
byte in description and document support for ordering comparisons.
|
||
* gcc-interface/utils2.cc (compare_arrays): Rename into...
|
||
(compare_arrays_for_equality): ...this. Remove redundant lines.
|
||
(compare_arrays_for_ordering): New function.
|
||
(build_binary_op) <comparisons>: Call compare_arrays_for_ordering
|
||
to implement ordering comparisons for arrays.
|
||
|
||
2024-07-02 Yannick Moy <moy@adacore.com>
|
||
|
||
* contracts.adb (Analyze_Pragmas_In_Declarations): Analyze
|
||
pragmas in two iterations over the list of declarations in
|
||
order to analyze some pragmas before others.
|
||
* einfo-utils.ads (Get_Pragma): Fix comment.
|
||
* sem_prag.ads (Pragma_Significant_To_Subprograms): Fix.
|
||
(Pragma_Significant_To_Subprograms_Analyzed_First): Add new
|
||
global array to identify these pragmas which should be analyzed
|
||
first, which concerns only Extensions_Visible for now.
|
||
|
||
2024-07-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Convert_View): Add third parameter Typ and use it if
|
||
the second parameter does not have an Etype.
|
||
(Make_Adjust_Call): Remove obsolete setting of Etype and pass Typ in
|
||
call to Convert_View.
|
||
(Make_Final_Call): Likewise.
|
||
(Make_Init_Call): Pass Typ in call to Convert_View.
|
||
|
||
2024-07-02 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_aggr.adb (Cannot_Compute_High_Bound): New subprogram.
|
||
(Report_Null_Array_Constraint_Error): New subprogram.
|
||
(Collect_Aggr_Bounds): For null aggregates, build the bounds
|
||
of the inner dimensions.
|
||
(Has_Null_Aggregate_Raising_Constraint_Error): New subprogram.
|
||
(Subtract): New subprogram.
|
||
(Resolve_Array_Aggregate): Report a warning when the index of
|
||
null array aggregates is an enumeration type or a modular type
|
||
at we can statically determine that the program will raise CE
|
||
at runtime computing its high bound.
|
||
(Resolve_Null_Array_Aggregate): ditto.
|
||
|
||
2024-07-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
|
||
(No_Default_Initialization): Mention components alongside variables.
|
||
* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Check that the
|
||
restriction No_Default_Initialization is not in effect for default
|
||
initialized component.
|
||
(Build_Record_Aggr_Code): Likewise.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-07-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* debug.adb (dJ): Add back as unused.
|
||
|
||
2024-06-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-carsi8.adb: Remove clauses for System.Address_Operations
|
||
and use only operations of System.Storage_Elements for addresses.
|
||
* libgnat/s-casi16.adb: Likewise.
|
||
* libgnat/s-casi32.adb: Likewise.
|
||
* libgnat/s-casi64.adb: Likewise.
|
||
* libgnat/s-casi128.adb: Likewise.
|
||
* libgnat/s-carun8.adb: Likewise.
|
||
* libgnat/s-caun16.adb: Likewise.
|
||
* libgnat/s-caun32.adb: Likewise.
|
||
* libgnat/s-caun64.adb: Likewise.
|
||
* libgnat/s-caun128.adb: Likewise.
|
||
* libgnat/s-geveop.adb: Likewise.
|
||
|
||
2024-06-27 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch2.adb (Analyze_Interpolated_String_Literal): Report
|
||
interpretations of ambiguous parameterless function calls.
|
||
|
||
2024-06-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Target_Name): Call Analyze_Dimension on the
|
||
node once the Etype is set.
|
||
* sem_dim.adb (OK_For_Dimension): Set to True for N_Target_Name.
|
||
(Analyze_Dimension): Call Analyze_Dimension_Has_Etype for it.
|
||
|
||
2024-06-27 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* mdll.adb (Build_Non_Reloc_DLL): Fix incorrect assignment
|
||
to array object.
|
||
(Ada_Build_Non_Reloc_DLL): Likewise.
|
||
|
||
2024-06-27 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_res.adb (Has_Applicable_User_Defined_Literal): Add missing
|
||
support for interpolated strings.
|
||
|
||
2024-06-27 Martin Clochard <clochard@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Overriding_Indicator) Remove Comes_From_Source filter.
|
||
(New_Overloaded_Entity) Move up special case of LSP_Subprogram,
|
||
and remove Comes_From_Source filter.
|
||
|
||
2024-06-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id): Add Aspect_Finalizable.
|
||
(Implementation_Defined_Aspect): Add True for Aspect_Finalizable.
|
||
(Operational_Aspect): Add True for Aspect_Finalizable.
|
||
(Aspect_Argument): Add Expression for Aspect_Finalizable.
|
||
(Is_Representation_Aspect): Add False for Aspect_Finalizable.
|
||
(Aspect_Names): Add Name_Finalizable for Aspect_Finalizable.
|
||
(Aspect_Delay): Add Always_Delay for Aspect_Finalizable.
|
||
* checks.adb: Add with and use clauses for Sem_Elab.
|
||
(Install_Primitive_Elaboration_Check): Call Is_Controlled_Procedure.
|
||
* einfo.ads (Has_Relaxed_Finalization): Document new flag.
|
||
(Is_Controlled_Active): Update documentation.
|
||
* exp_aggr.adb (Generate_Finalization_Actions): Replace Find_Prim_Op
|
||
with Find_Controlled_Prim_Op for Name_Finalize.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
|
||
Return 0 if the prefix type has relaxed finalization.
|
||
* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty if
|
||
the type needs finalization.
|
||
(Expand_Freeze_Record_Type): Call Find_Controlled_Prim_Op instead of
|
||
Find_Prim_Op for Name_{Adjust,Initialize,Finalize}.
|
||
Call Make_Finalize_Address_Body for all controlled types.
|
||
* exp_ch4.adb (Insert_Dereference_Action): Do not generate a call to
|
||
Adjust_Controlled_Dereference if the designated type has relaxed
|
||
finalization.
|
||
* exp_ch6.adb (Needs_BIP_Collection): Return false for an untagged
|
||
type that has relaxed finalization.
|
||
* exp_ch7.adb (Allows_Finalization_Collection): Return false if the
|
||
designated type has relaxed finalization.
|
||
(Check_Visibly_Controlled): Call Find_Controlled_Prim_Op instead of
|
||
Find_Prim_Op.
|
||
(Make_Adjust_Call): Likewise.
|
||
(Make_Deep_Record_Body): Likewise.
|
||
(Make_Final_Call): Likewise.
|
||
(Make_Init_Call): Likewise.
|
||
* exp_disp.adb (Set_All_DT_Position): Remove obsolete warning.
|
||
* exp_util.ads: Add with and use clauses for Snames.
|
||
(Find_Prim_Op): Add precondition.
|
||
(Find_Controlled_Prim_Op): New function declaration.
|
||
(Name_Of_Controlled_Prim_Op): Likewise.
|
||
* exp_util.adb: Remove with and use clauses for Snames.
|
||
(Build_Allocate_Deallocate_Proc): Do not build finalization actions
|
||
if the designated type has relaxed finalization.
|
||
(Find_Controlled_Prim_Op): New function.
|
||
(Find_Last_Init): Call Find_Controlled_Prim_Op instead of
|
||
Find_Prim_Op.
|
||
(Name_Of_Controlled_Prim_Op): New function.
|
||
* freeze.adb (Freeze_Entity.Freeze_Record_Type): Propagate the
|
||
Has_Relaxed_Finalization flag from components.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Add Has_Relaxed_Finalization.
|
||
* gen_il-gen-gen_entities.adb (Entity_Kind): Likewise.
|
||
* sem_aux.adb (Is_By_Reference_Type): Return true for all controlled
|
||
types.
|
||
* sem_ch3.adb (Build_Derived_Record_Type): Do not special case types
|
||
declared in Ada.Finalization.
|
||
(Record_Type_Definition): Propagate the Has_Relaxed_Finalization
|
||
flag from components.
|
||
* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Also process the
|
||
Finalizable aspect.
|
||
(Analyze_Aspect_Specifications): Likewise. Call Flag_Non_Static_Expr
|
||
in more cases.
|
||
(Check_Aspect_At_Freeze_Point): Likewise.
|
||
(Inherit_Aspects_At_Freeze_Point): Likewise.
|
||
(Resolve_Aspect_Expressions): Likewise.
|
||
(Resolve_Finalizable_Argument): New procedure.
|
||
(Validate_Finalizable_Aspect): Likewise.
|
||
* sem_elab.ads: Add with and use clauses for Snames.
|
||
(Is_Controlled_Procedure): New function declaration.
|
||
* sem_elab.adb: Remove with and use clauses for Snames.
|
||
(Is_Controlled_Proc): Move to...
|
||
(Is_Controlled_Procedure): ...here and rename.
|
||
(Check_A_Call): Call Find_Controlled_Prim_Op instead of
|
||
Find_Prim_Op.
|
||
(Is_Finalization_Procedure): Likewise.
|
||
* sem_util.ads (Propagate_Controlled_Flags): Update documentation.
|
||
* sem_util.adb (Is_Fully_Initialized_Type): Replace call to
|
||
Find_Optional_Prim_Op with Find_Controlled_Prim_Op.
|
||
Call Has_Null_Extension only for derived tagged types.
|
||
(Propagate_Controlled_Flags): Propagate Has_Relaxed_Finalization.
|
||
* snames.ads-tmpl (Name_Finalizable): New name.
|
||
(Name_Relaxed_Finalization): Likewise.
|
||
* libgnat/s-finroo.ads (Root_Controlled): Add Finalizable aspect.
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Document implementation
|
||
of Generalized Finalization.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Also return early
|
||
for a protected subprogram in -gnatc mode.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <discrete_type>: Set
|
||
the TYPE_JUSTIFIED_MODULAR_P flag earlier.
|
||
* gcc-interface/misc.cc (gnat_unit_size_without_reusable_padding):
|
||
New function.
|
||
(LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Redefine to above
|
||
function.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.cc (clear_decl_bit_field): New function.
|
||
(finish_record_type): Call clear_decl_bit_field instead of clearing
|
||
DECL_BIT_FIELD manually.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Fix formatting.
|
||
* gcc-interface/utils2.cc: Include optabs-query.h.
|
||
(fast_modulo_reduction): Call can_mult_highpart_p on the TYPE_MODE
|
||
before generating a high-part multiply. Fix formatting.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/gigi.h (fast_modulo_reduction): Declare.
|
||
* gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: In the unsigned
|
||
case, call fast_modulo_reduction for {FLOOR,TRUNC}_MOD_EXPR if the
|
||
RHS is a constant and not a power of two, and the precision is not
|
||
larger than the word size.
|
||
* gcc-interface/utils2.cc: Include expmed.h.
|
||
(fast_modulo_reduction): New function.
|
||
(nonbinary_modular_operation): Call fast_modulo_reduction for the
|
||
multiplication if the precision is not larger than the word size.
|
||
|
||
2024-06-21 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch2.adb (Analyze_Interpolated_String_Literal): Reject
|
||
ambiguous function calls.
|
||
|
||
2024-06-21 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_util.adb (Examine_Array_Bounds): Add missing return
|
||
statements. Fix criterion for a string literal being empty.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* bcheck.adb (Check_Consistency_Of_Sdep): Guard against path to ALI
|
||
file not found.
|
||
|
||
2024-06-21 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Fix code locating the entity
|
||
of the parent type.
|
||
|
||
2024-06-21 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* make.adb (Scan_Make_Arg): Adjust error message.
|
||
* gnatls.adb (Search_RTS): Likewise.
|
||
* switch-b.adb (Scan_Debug_Switches): Likewise.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Direct_Primitive_Operations): Mention concurrent types
|
||
as well as GNAT extensions instead of implementation details.
|
||
(Primitive_Operations): Document that Direct_Primitive_Operations is
|
||
also used for concurrent types as a fallback.
|
||
* einfo-utils.adb (Primitive_Operations): Tweak formatting.
|
||
* exp_util.ads (Find_Prim_Op): Adjust description.
|
||
* exp_util.adb (Make_Subtype_From_Expr): In the private case with
|
||
unknown discriminants, always copy Direct_Primitive_Operations and
|
||
do not overwrite the Class_Wide_Type of the expression's base type.
|
||
* sem_ch3.adb (Analyze_Incomplete_Type_Decl): Tweak comment.
|
||
(Analyze_Subtype_Declaration): Remove older and now dead calls to
|
||
Set_Direct_Primitive_Operations. Tweak comment.
|
||
(Build_Derived_Private_Type): Likewise.
|
||
(Build_Derived_Record_Type): Likewise.
|
||
(Build_Discriminated_Subtype): Set Direct_Primitive_Operations in
|
||
all cases instead of just for tagged types.
|
||
(Complete_Private_Subtype): Likewise.
|
||
(Derived_Type_Declaration): Tweak comment.
|
||
* sem_ch4.ads (Try_Object_Operation): Adjust description.
|
||
|
||
2024-06-21 Doug Rupp <rupp@adacore.com>
|
||
|
||
* init.c [vxworks] (__gnat_install_handler): Revert to
|
||
installing signal handlers without regard to interrupt_state.
|
||
|
||
2024-06-21 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_disp.adb (Find_Hidden_Overridden_Primitive): Check
|
||
public dispatching primitives of ancestors; previously,
|
||
only immediately-visible primitives were checked.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* checks.adb (Generate_Index_Checks): Add specific treatment for
|
||
index expressions that are N_Expression_With_Actions nodes.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_Selected_Component): Rename Name into Pref
|
||
and use Sel local variable consistently.
|
||
(Is_Simple_Indexed_Component): New predicate.
|
||
Call Is_Simple_Indexed_Component to determine whether to build an
|
||
actual subtype for the component.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Array_Type): Decouple the handling of the
|
||
interaction between packing and aliased/atomic components from
|
||
that of the interaction between a component clause and aliased/
|
||
atomic components, and retrofit the processing of the interaction
|
||
between the two characteristics and independent components into
|
||
the common processing.
|
||
|
||
2024-06-21 Bob Duff <duff@adacore.com>
|
||
|
||
* gen_il-gen-gen_nodes.adb
|
||
(N_Generic_Package_Declaration): Remove Activation_Chain_Entity.
|
||
* sinfo.ads: Comment improvements. Add missing doc.
|
||
Remove obsolete comment about Activation_Chain_Entity.
|
||
* einfo.ads: Comment improvements. Add missing doc.
|
||
* einfo-utils.adb (Base_Type): Add Assert (disabled for now).
|
||
(Next_Index): Minor cleanup.
|
||
* aspects.ads: Minor comment fix.
|
||
* exp_ch6.adb: Likewise.
|
||
* sem_ch3.adb: Likewise.
|
||
|
||
2024-06-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch3.adb (Add_Interface_Tag_Components): Simplify with No.
|
||
|
||
2024-06-21 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch4.adb (Is_Effectively_Visible_Operator): A new function.
|
||
(Check_Arithmetic_Pair): In paths where Add_One_Interp was
|
||
previously called unconditionally, instead call only if
|
||
Is_Effectively_Visible_Operator returns True.
|
||
(Check_Boolean_Pair): Likewise.
|
||
(Find_Unary_Types): Likewise.
|
||
|
||
2024-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* accessibility.adb (Accessibility_Level): Apply the processing to
|
||
Expr when its Original_Node is an unanalyzed identifier.
|
||
|
||
2024-06-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (In_Aspect_Specification): Use the standard
|
||
condition that works correctly with declare expressions.
|
||
* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Replace
|
||
ordinary analysis with preanalysis of spec expressions.
|
||
|
||
2024-06-21 Justin Squirek <squirek@adacore.com>
|
||
|
||
* csets.ads (Identifier_Char): New function - replacing table.
|
||
* csets.adb (Identifier_Char): Rename and move table for static values.
|
||
(Initialize): Remove dynamic calculations.
|
||
(Identifier_Char): New function to calculate dynamic values.
|
||
* opt.adb (Set_Config_Switches): Remove setting of Identifier_Char.
|
||
|
||
2024-06-20 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_attr.adb (Resolve_Attribute.Proper_Op): When resolving the
|
||
name of the reducer subprogram in a reduction expression,
|
||
Proper_Op treats references to operators defined in Standard
|
||
specially. Disable this special treatment if the type of the
|
||
reduction expression is not the right class of type for the
|
||
operator, or if a new Boolean parameter (named "Strict") is True.
|
||
(Resolve_Attribute): In the overloaded case, iterate over the
|
||
reducer subprogram candidates twice. First with Strict => True and
|
||
then, if no good intepretation is found, with Strict => False.
|
||
|
||
2024-06-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* ghost.adb (Check_Ghost_Type): Fix checking.
|
||
|
||
2024-06-20 Bob Duff <duff@adacore.com>
|
||
|
||
* expander.ads: Minor comment fixes.
|
||
* nlists.ads: Misc comment improvements.
|
||
* sem_aux.ads (First_Discriminant): Improve comment.
|
||
* sem_ch12.adb: Misc cleanups.
|
||
(Associations): New package containing type Gen_Assocs_Rec
|
||
to represent matchings, and function Match_Assocs to create the
|
||
Gen_Assocs_Rec constant.
|
||
(Analyze_Associations): Call Match_Assocs, and other major
|
||
changes related to that.
|
||
* sem_ch12.ads: Minor comment fixes.
|
||
* sem_ch3.adb: Minor comment fixes.
|
||
|
||
2024-06-20 Steve Baird <baird@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Update documentation.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst: Update
|
||
documentation.
|
||
* errout.adb
|
||
(Error_Msg_GNAT_Extension): Update error message text.
|
||
* par-prag.adb: Update pragma parsing. This includes changing the
|
||
the name of the Check_Arg_Is_On_Or_Off formal parameter All_OK_Too
|
||
to All_Extensions_OK_Too.
|
||
* sem_prag.adb (Analyze_Pragma): In analyzing an
|
||
Extensions_Allowed pragma, replace uses of Name_All with
|
||
Name_All_Extensions; update a comment to reflect this.
|
||
* snames.ads-tmpl: Add Name_All_Extensions declaration.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-06-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_ch4.adb (Try_Selected_Component_In_Instance): Reverse if_statement
|
||
clauses so that the testing for the special case of extensions of private
|
||
types in instance bodies is done first, followed by the testing for the case
|
||
of a parent type that's a generic actual type. In the extension case, apply
|
||
Base_Type to the type actual in the test of Used_As_Generic_Actual, and add
|
||
a test of Present (Parent_Subtype (Typ)).
|
||
|
||
2024-06-20 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Establish_Actual_Mapping_For_Inlined_Call): In the
|
||
case of formal with a fixed lower bounds, insert appropriate
|
||
conversion like in the case of a constrained type.
|
||
* tbuild.adb (Unchecked_Convert_To): Do not skip the conversion
|
||
when it may involve sliding due to a type with fixed lower bound.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch12.adb (Instantiate_Formal_Package): Accept renamings of a
|
||
generic parent that is a child unit for the abbreviated instance.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Composite_Equality): In the untagged record
|
||
case, always look for a user-defined equality operator in Ada 2012.
|
||
|
||
2024-06-20 Doug Rupp <rupp@adacore.com>
|
||
|
||
* ali.ads (Interrupts_Default_To_System): New boolean.
|
||
(Interrupts_Default_To_System_Specified): New boolean.
|
||
* ali.adb (Interrupts_Default_To_System_Specified): Initialize.
|
||
(Interrupts_Default_To_System): Initialize.
|
||
(Scan_ALI): Processing for "ID".
|
||
* bindgen.adb: Coallesce comments on interrupt settings to ...
|
||
(Gen_Adainit): Import Interrupts_Default_To_System flag and set if
|
||
pragma specified.
|
||
(Gen_Output_File_Ada): Generate Local_Interrupt_States according
|
||
to pragma.
|
||
* init.c: ... here.
|
||
[vxworks] (__gnat_install_handler): Test for interrupt_state.
|
||
(__gl_interrupts_default_to_system): New global flag.
|
||
(__gnat_get_interrupt_State): return interrupt state according to
|
||
new global flag.
|
||
* lib-writ.ads: Document "ID".
|
||
* lib-writ.adb: Write out "ID".
|
||
* opt.ads (Interrupts_System_By_Default): New boolean, defaulted
|
||
to False.
|
||
* par-prag.adb (Pragma_Interrupts_System_By_Default): New.
|
||
* sem_prag.adb (Pragma_Interrupts_System_By_Default): Handle it.
|
||
(Pragma_Interrupts_System_By_Default): Default it.
|
||
* snames.ads-tmpl (Name_Interrupts_System_By_Default): New name.
|
||
(Pragma_Interrupts_System_By_Default): New
|
||
* libgnarl/s-intman__posix.adb (Initialize): Ensure the
|
||
Keep_Unmasked signal is sigset-able.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst: Document pragma
|
||
Interrupts_System_By_Default.
|
||
* doc/gnat_ugn/the_gnat_compilation_model.rst (Configuration
|
||
pragmas): Add Interrupts_System_By_Default. (Partition-Wide
|
||
Settings): Mention pragma Interrupts_System_By_Default.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Array_Equality.Component_Equality): Copy the
|
||
Comes_From_Source flag from the original test to the new one, and
|
||
remove obsolete code dealing with unchecked unions.
|
||
* sem_util.adb (Has_Inferable_Discriminants): Return False for an
|
||
incomplete or private nominal subtype.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Expression): Also attach pending freeze nodes
|
||
to the parent in the case of an internal block in a spec expression.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* debug.adb (d_l): Document new usage for the compiler.
|
||
* freeze.adb (Check_Strict_Alignment): Set the Strict_Alignment
|
||
flag on array types with aliased component, except if the
|
||
component size is equal to the storage unit or the -gnatd_l switch
|
||
is specified.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_advice.rst (Representation Clauses):
|
||
Remove >> marker and add end of sentence after code-block directive.
|
||
(RM 13.5.3(7-8)): Update to Ada 2005 wording.
|
||
* doc/gnat_rm/implementation_defined_characteristics.rst
|
||
(RM 13.5.3(5)): Likewise.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_aspects.rst
|
||
(Aspect Subprogram_Variant): Refer to SPARK User's Guide.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst
|
||
(Pragma Subprogram_Variant): Document syntax to satisfy the
|
||
convention; refer to SPARK User's Guide for semantics.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Array_Type): Call Propagate_Controlled_Flags
|
||
to propagate the controlled flags from the component to the array.
|
||
(Freeze_Record_Type): Propagate the Finalize_Storage_Only flag
|
||
from the components to the record.
|
||
* sem_ch3.adb (Analyze_Private_Extension_Declaration): Do not call
|
||
Propagate_Concurrent_Flags here but...
|
||
(Array_Type_Declaration): Tidy and call Propagate_Controlled_Flags
|
||
to propagate the controlled flags from the component to the array.
|
||
(Build_Derived_Private_Type): Do not propagate the controlled flags
|
||
manually here but...
|
||
(Build_Derived_Record_Type): ...call Propagate_Controlled_Flags to
|
||
propagate the controlled flags from parent to derived type.
|
||
(Build_Derived_Type): Likewise.
|
||
(Copy_Array_Base_Type_Attributes): Call Propagate_Controlled_Flags
|
||
to copy the controlled flags.
|
||
(Record_Type_Definition): Streamline the propagation of the
|
||
Finalize_Storage_Only flag from the components to the record.
|
||
* sem_ch7.adb (Preserve_Full_Attributes): Use Full_Base and call
|
||
Propagate_Controlled_Flags to copy the controlled flags.
|
||
* sem_ch9.adb (Analyze_Protected_Definition): Use canonical idiom
|
||
to compute Has_Controlled_Component.
|
||
(Analyze_Protected_Type_Declaration): Minor tweak.
|
||
* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Do not deal with
|
||
Finalize_Storage_Only here.
|
||
* sem_util.ads (Propagate_Controlled_Flags): New declaration.
|
||
* sem_util.adb (Propagate_Controlled_Flags): New procedure.
|
||
|
||
2024-06-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* freeze.adb (Check_Current_Instance): This routine is only called
|
||
with parameter E being a type entity, so there is no need to check
|
||
for types just before the equality with E.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Regroup condition
|
||
to avoid unnecessary evaluation.
|
||
(Check_Aspect_At_End_Of_Declarations): If In_Instance is true,
|
||
then the routine exits early.
|
||
|
||
2024-06-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* freeze.adb (Find_Aspect_No_Parts): Tune whitespace.
|
||
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Fix style.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id): Remove Aspect_Max_Entry_Queue_Depth.
|
||
(global arrays): Remove entry for it.
|
||
* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove
|
||
reference to pragma Max_Entry_Queue_Depth in comment.
|
||
* par-prag.adb (Prag): Remove handling of
|
||
Pragma_Max_Entry_Queue_Depth.
|
||
* sem_ch13.adb (Analyze_Aspect_Specifications): Remove reference
|
||
to aspect Max_Entry_Queue_Depth in comment.
|
||
(Analyze_Aspect_Specifications): Remove processing of aspect
|
||
Max_Entry_Queue_Depth.
|
||
(Check_Aspect_At_Freeze_Point): Likewise.
|
||
* sem_prag.ads (Find_Related_Declaration_Or_Body): Remove
|
||
reference to pragma Max_Entry_Queue_Depth in comment.
|
||
* sem_prag.adb (Analyze_Pragma): Remove processing of pragma
|
||
Max_Entry_Queue_Depth.
|
||
(Sig_Flags): Remove entry for Pragma_Max_Entry_Queue_Depth.
|
||
* sem_util.adb (Get_Max_Queue_Length): Remove handling of pragma
|
||
Max_Entry_Queue_Depth.
|
||
(Has_Max_Queue_Length): Likewise.
|
||
* snames.ads-tmpl (Name_Max_Entry_Queue_Depth): Move back from
|
||
pragmas section to others section.
|
||
(Pragma_Id): Remove Pragma_Max_Entry_Queue_Depth.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst (Pragma Storage_Model):
|
||
Rename to Storage Model.
|
||
* doc/gnat_rm/implementation_defined_aspects.rst: Alphabetize.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnat1drv.adb (Gnat1drv): Add coverage instrumentation
|
||
annotations.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_Freeze_Array_Type): Do not propagate the
|
||
concurrent flags and the Has_Controlled_Component flag here.
|
||
(Expand_Freeze_Record_Type): Likewise.
|
||
* freeze.adb (Freeze_Array_Type): Propagate the concurrent flags.
|
||
(Freeze_Record_Type): Likewise.
|
||
* sem_util.adb (Has_Some_Controlled_Component): Adjust comment.
|
||
|
||
2024-06-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* mutably_tagged.ads: Fix minor issues in comments throughout.
|
||
|
||
2024-06-20 Richard Kenner <kenner@adacore.com>
|
||
|
||
* debug.adb: Add documentation for -gnatd_w.
|
||
|
||
2024-06-20 Viljar Indus <indus@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update
|
||
documentation for -gnatw.v.
|
||
* sem_ch13.adb: Convert all -gnatw.v related messages to warnings.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Viljar Indus <indus@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update
|
||
documentation for -gnatw.n switch.
|
||
* exp_util.adb: Convert info messages into warnings.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Viljar Indus <indus@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
|
||
entry for -gnatis.
|
||
* errout.adb (Error_Msg_Internal): Stop printing info messages if
|
||
-gnatis was used.
|
||
* opt.ads: Add Info_Suppressed flag to track whether info messages
|
||
should be suppressed.
|
||
* switch-c.adb: Add parsing for -gnatis.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Viljar Indus <indus@adacore.com>
|
||
|
||
* atree.ads: Remove Warning_Info_Messages.
|
||
* errout.adb: Remove various places where Warning_Info_Messages
|
||
was used.
|
||
* erroutc.adb: Remove various places where Warning_Info_Messages
|
||
was used. Create Error_Msg_Object objects with only an info
|
||
attribute if the message contained both info and warning insertion
|
||
characters. New method Has_Switch_Tag for detecting if a message
|
||
should have an error tag.
|
||
* errutil.adb: Create Error_Msg_Object objects with only an info
|
||
attribute if the message contained both info and warning insertion
|
||
characters.
|
||
|
||
2024-06-20 Justin Squirek <squirek@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Add entry for 'Super.
|
||
* doc/gnat_rm/implementation_defined_attributes.rst: Remove entry
|
||
for 'Super.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-20 Steve Baird <baird@adacore.com>
|
||
|
||
* gprep.adb (Process_Files.Process_One_File): When calling OS_Exit in an error
|
||
path, pass in a Status parameter of 1 instead of 0 (because 0
|
||
indicates success).
|
||
* lib-load.adb (Load_Main_Source): Do not emit a message about a missing source file
|
||
if other error messages were generated by calling Load_Source_File;
|
||
the file isn't missing - it failed preprocessing.
|
||
|
||
2024-06-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Attribute_22): Add Put_Image and Object_Size.
|
||
* sem_attr.ads (Attribute_Impl_Def): Remove Object_Size.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/Makefile.in (tmake_file): Remove all references.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc: Include function.h.
|
||
(gnat_to_gnu_param): Minor comment tweaks.
|
||
(gnat_to_gnu_subprog_type): Take into account the default for the
|
||
computation of the return mechanism. Give a warning if a by-copy
|
||
specified mechanism cannot be honored.
|
||
|
||
2024-06-14 Yannick Moy <moy@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (elaborate_all_entities_for_package)
|
||
(process_freeze_entity): Skip entities of kind E_Subprogram_Body.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/109817
|
||
* gcc-interface/trans.cc (maybe_make_gnu_thunk): Create an alias
|
||
instead of a null thunk.
|
||
|
||
2024-06-14 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Typo fix.
|
||
(gnat_to_gnu_component_type): Indent fix.
|
||
* gcc-interface/gigi.h (build_call_alloc_dealloc): Typo fix.
|
||
* gcc-interface/utils.cc (make_dummy_type): Typo fix.
|
||
* gcc-interface/utils2.cc (gnat_protect_expr): Indent fix.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id): Alphabetize, remove the GNAT tag from
|
||
Default_Initial_Condition and Object_Size, move No_Controlled_Parts
|
||
and No_Task_Parts to boolean subclass.
|
||
(Nonoverridable_Aspect_Id): Add missing Ada 2022 aspects.
|
||
(Implementation_Defined_Aspect): Add all missing aspects, remove
|
||
Max_Entry_Queue_Length and Object_Size
|
||
(Aspect_Argument): Remove specific entries for No_Controlled_Parts
|
||
and No_Task_Parts, list boolean aspects last.
|
||
(Is_Representation_Aspect ): Move boolean aspects last.
|
||
(Aspect_Names): Alphabetize.
|
||
* sem_ch13.adb (Analyze_Aspect_Disable_Controlled): Adjust.
|
||
(Analyze_Aspect_Specifications): Move around processing for
|
||
No_Controlled_Parts and No_Task_Parts.
|
||
(Check_Aspect_At_Freeze_Point): Remove specific entries for
|
||
No_Controlled_Parts and No_Task_Parts
|
||
|
||
2024-06-14 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb
|
||
(Expand_Loop_Entry_Attribute):
|
||
Ensure that Etype of the saved expression is set correctly.
|
||
|
||
2024-06-14 Jerome Guitton <guitton@adacore.com>
|
||
|
||
* sysdep.c (S_dosFsLib_FILE_NOT_FOUND, S_nfsLib_NFSERR_NOENT):
|
||
New macros, falback to ENOENT when not already defined.
|
||
(__gnat_is_file_not_found_error): Use these new macros to remove
|
||
tests against VxWorks flavors.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* snames.ads-tmpl (Name_Present): Move to Repinfo section.
|
||
|
||
2024-06-14 Justin Squirek <squirek@adacore.com>
|
||
|
||
* doc/gnat_rm/gnat_language_extensions.rst: Add documentation for
|
||
mutably tagged type feature.
|
||
* aspects.ads: Add registration for 'Size'Class.
|
||
* einfo.ads: Add documentation for new components
|
||
Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
|
||
* exp_aggr.adb (Gen_Assign): Assume associated mutably tagged type
|
||
when class-wide equivalent type is encountered.
|
||
(Contains_Mutably_Tagged_Type): New subprogram.
|
||
(Convert_To_Positional): Assume associated mutably tagged type
|
||
when class-wide equivalent type is encountered.
|
||
(Is_Static_Element): Assume associated mutably tagged type when
|
||
class-wide equivalent type is encountered.
|
||
(Expand_Array_Aggregate): Assume associated mutably tagged type
|
||
when class-wide equivalent type is encountered.
|
||
(Expand_Record_Aggregate): Force mutably tagged records to be
|
||
expanded into assignments.
|
||
* exp_ch3.adb (Build_Array_Init_Proc): Assume associated mutably
|
||
tagged type when class-wide equivalent type is encountered.
|
||
(Simple_Initialization_OK): Disallow simple initialization for
|
||
class-wide equivalent types.
|
||
(Build_Init_Statements): Assume associated mutably tagged type
|
||
when class-wide equivalent type is encountered.
|
||
(Expand_Freeze_Array_Type): Ignore building of record init procs
|
||
for mutably tagged types.
|
||
(Expand_N_Full_Type_Declaration): Replace mutably tagged type
|
||
declarations with their associated class-wide equivalent types.
|
||
(Default_Initialize_Object): Add special handling for mutably
|
||
tagged types.
|
||
* exp_ch4.adb (Expand_N_Allocator): Add initialization for mutably
|
||
tagged types.
|
||
(Expand_Record_Equality): Generate mutably tagged unchecked
|
||
conversions.
|
||
* exp_ch5.adb (Expand_N_Assignment_Statement): Generate a special
|
||
assignment case for class-wide equivalent types which does tag
|
||
assignments and ignores certain checks.
|
||
* exp_ch6.adb (Expand_Call_Helper): Propagate constrained extra
|
||
formal actuals for mutably tagged types.
|
||
* exp_ch7.adb (Make_Init_Call): Handle mutably tagged type
|
||
initialization.
|
||
* exp_util.adb (Make_CW_Equivalent_Type): Modify to handle mutably
|
||
tagged objects which contain no initialization expression.
|
||
(Make_Subtype_From_Expr): Modify call to Make_CW_Equivalent_Type.
|
||
* exp_util.ads (Make_CW_Equivalent_Type): Move declaration from
|
||
body to spec.
|
||
* freeze.adb (Size_Known): No longer return false automatically
|
||
when a class-wide type is encountered.
|
||
(Freeze_Entity): Ignore error messages about size not being known
|
||
for mutably tagged types.
|
||
* gen_il-fields.ads: Register new fields
|
||
Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
|
||
* gen_il-gen-gen_entities.adb: Register new fields
|
||
Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type for type
|
||
entities.
|
||
* mutably_tagged.adb, mutably_tagged.ads
|
||
(Corresponding_Mutably_Tagged_Type): New subprogram.
|
||
(Depends_On_Mutably_Tagged_Ext_Comp): New subprogram.
|
||
(Get_Corresponding_Mutably_Tagged_Type_If_Present): New
|
||
subprogram.
|
||
(Get_Corresponding_Tagged_Type_If_Present): New subprogram.
|
||
(Is_Mutably_Tagged_Conversion): New subprogram.
|
||
(Is_Mutably_Tagged_CW_Equivalent_Type): New subprogram.
|
||
(Make_Mutably_Tagged_Conversion): New subprogram.
|
||
(Make_CW_Size_Compile_Check): New subprogram.
|
||
(Make_Mutably_Tagged_CW_Check): New subprogram.
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Skip tag checks for
|
||
class-wide equivalent types.
|
||
(Resolve_Aggr_Expr): Assume associated mutably tagged type when
|
||
class-wide equivalent type is encountered.
|
||
* sem_attr.adb (Analyze_Attribute): Allow 'Tag on mutably tagged
|
||
types.
|
||
(Resolve_Attribute): Detect errors for dependence of mutably
|
||
tagged extension type component.
|
||
* sem_ch12.adb (Instantiate_Object): Detect errors for dependence
|
||
of mutably tagged extension type component.
|
||
* sem_ch13.adb (Analyze_One_Aspect): Propagate 'Size'Class to
|
||
class-wide type.
|
||
(Analyze_Attribute_Definition_Clause): Add handling of 'Size'Class
|
||
by generating class-wide equivalent types and checking for illegal
|
||
uses.
|
||
* sem_ch2.adb (Analyze_Identifier): Generate unchecked conversion
|
||
for class-wide equivalent types.
|
||
* sem_ch3.adb (Analyze_Component_Declaration): Avoid unconstrained
|
||
errors on mutably tagged types.
|
||
(Analyze_Object_Declaration): Rewrite declarations of mutably
|
||
tagged types to use class-wide equivalent types.
|
||
(Array_Type_Declaration): Modify arrays of mutably tagged types to
|
||
use their corresponding class-wide equivalent types.
|
||
(Derived_Type_Declaration): Add various checks for mutably tagged
|
||
derived types.
|
||
* sem_ch4.adb (Analyze_Allocator): Replace reference to mutably
|
||
tagged type with cooresponding tagged type.
|
||
(Process_Indexed_Component): Generate unchecked conversion for
|
||
class-wide equivalent type.
|
||
(Analyze_One_Call): Generate unchecked conversion for class-wide
|
||
equivalent types.
|
||
(Analyze_Selected_Component): Assume reference to class-wide
|
||
equivalent type is associated mutably tagged type.
|
||
(Analyze_Type_Conversion): Generate unchecked conversion for
|
||
class-wide equivalent type.
|
||
* sem_ch5.adb (Analyze_Assignment): Assume associated mutably
|
||
tagged type when class-wide equivalent type is encountered.
|
||
(Analyze_Iterator_Specification): Detect errors for dependence of
|
||
mutably tagged extension type component.
|
||
* sem_ch6.adb (Create_Extra_Formals): Add code to generate extra
|
||
formal for mutably tagged types to signal if they are constrained.
|
||
* sem_ch8.adb (Analyze_Object_Renaming): Detect error on renaming
|
||
of mutably tagged extension type component.
|
||
(Analyze_Renaming_Primitive_Operation): Detect error on renaming
|
||
of mutably tagged extension type component.
|
||
* sem_res.adb (Resolve_Actuals): Allow class-wide arguments on
|
||
class-wide equivalent types.
|
||
(Valid_Conversion): Assume associated mutably tagged type when
|
||
class-wide equivalent type is encountered.
|
||
* sem_util.adb (Is_Fully_Initialized_Type): Flag mutably tagged
|
||
types as fully initialized.
|
||
(Needs_Simple_Initalization): Flag class-wide equivalent types as
|
||
needing initialization.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gcc-interface/Make-lang.in: Add entry for mutably_tagged.o.
|
||
|
||
2024-06-14 Justin Squirek <squirek@adacore.com>
|
||
|
||
* accessibility.adb:
|
||
(Accessibility_Level): Replace call Get_Full_View with call to
|
||
Full_View since Get_Full_View only works with incomplete types.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* aspects.ads (Operational_Aspect): Alphabetize.
|
||
* sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Fix description.
|
||
* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point) <Aggregate>: Give
|
||
the error for array types here instead of...
|
||
(Analyze_Aspect_Specifications) <Aggregate>: Adjust comment.
|
||
(Check_Aspect_At_Freeze_Point) <Aggregate>: ...here.
|
||
|
||
2024-06-14 Javier Miranda <miranda@adacore.com>
|
||
|
||
* exp_aggr.adb (Must_Slide): Add missing support for
|
||
multidimensional arrays.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_All): Call Check_Aspects_At_End_Of_Declarations
|
||
to perform the visibility check for aspects.
|
||
* sem_ch13.ads (Check_Aspects_At_End_Of_Declarations): Declare.
|
||
(Check_Aspect_At_Freeze_Point): Move to...
|
||
(Check_Aspect_At_End_Of_Declarations): Move to...
|
||
* sem_ch13.adb (Check_Aspect_At_Freeze_Point): ...here.
|
||
(Check_Aspect_At_End_Of_Declarations): ...here.
|
||
(Analyze_Aspect_Specifications): Remove peculiar processing for
|
||
Stable_Properties, Designated_Storage_Model, Storage_Model_Type
|
||
and Aggregate. Move that of Local_Restrictions around. Reset
|
||
Aitem at the beginning of the loop for each aspect.
|
||
(Check_Aspects_At_End_Of_Declarations): New procedure.
|
||
|
||
2024-06-14 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_attr.adb:
|
||
(Analyze_Attribute): Add check for dereference.
|
||
|
||
2024-06-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* snames.ads-tmpl (Name_Storage_Model): Delete.
|
||
|
||
2024-06-14 Alexandre Oliva <oliva@gnu.org>
|
||
|
||
Revert:
|
||
2024-06-12 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
|
||
as the debug type for packed fields.
|
||
|
||
2024-06-13 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_util.adb
|
||
(Insert_Actions): Code was relying on an incorrect assumption that an
|
||
N_Itype_Reference cannot occur in declaration list or a statement
|
||
list. Fix the code to handle this case.
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* debug.adb: Remove mentions of -gnatdJ.
|
||
* errout.adb: Remove printing subprogram names to JSON.
|
||
* erroutc.adb: Remove printing subprogram names in messages.
|
||
* erroutc.ads: Remove Node and Subprogram_Name_Ptr used for -gnatdJ.
|
||
* errutil.adb: Remove Node used for -gnatdJ
|
||
* gnat1drv.adb: Remove references of -gnatdJ and
|
||
Include_Subprgram_In_Messages.
|
||
* opt.ads: Remove Include_Subprgram_In_Messages
|
||
* par-util.adb: Remove behavior related to
|
||
Include_Subprgram_In_Messages.
|
||
* sem_util.adb: Remove Subprogram_Name used for -gnatdJ
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Attach_Object_To_Master_Node): Fix formatting.
|
||
(Build_Finalizer.Process_Object_Declaration): Synthesize a local
|
||
Finalize_Address primitive if the object's subtype is an array
|
||
that has a constrained first subtype and is not this first subtype.
|
||
* exp_util.adb (Find_Last_Init): Get again to the base type in the
|
||
indirect case.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_attributes.rst (Iterable):
|
||
Delete entry.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-13 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_util.adb (Check_Ambiguous_Aggregate): Fix test.
|
||
|
||
2024-06-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* freeze.ads (Check_Condition_Entities): Complete documentation.
|
||
* freeze.adb (Check_Inherited_Conditions): Extend its functionality to
|
||
build two kind of wrappers: the existing LSP wrappers, and wrappers
|
||
required to handle postconditions of interface primitives implemented
|
||
by inherited primitives.
|
||
(Build_Inherited_Condition_Pragmas): Rename formal.
|
||
(Freeze_Record_Type): For derived tagged types, move call to
|
||
Check_Inherited_Conditions to subprogram Freeze_Entity_Checks;
|
||
done to improve the performance of Check_Inherited_Conditions since it
|
||
can rely on the internal entities that link interface primitives with
|
||
tagged type primitives that implement them.
|
||
(Check_Interface_Primitives_Strub_Mode): New subprogram.
|
||
* sem_ch13.adb (Freeze_Entity_Checks): Call Check_Inherited_Conditions.
|
||
Call Check_Inherited_Conditions with derived interface types to check
|
||
strub mode compatibility of their primitives.
|
||
* sem_disp.adb (Check_Dispatching_Operation): Adjust assertion to accept
|
||
wrappers of interface primitives that have classwide postconditions.
|
||
* exp_disp.adb (Write_DT): Adding text to identify wrappers.
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Call): add warning insertion
|
||
character into the info message.
|
||
|
||
2024-06-13 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_util.adb
|
||
(New_Copy_Tree.Visit_Entity): Delete code that prevented copying some entities.
|
||
|
||
2024-06-13 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch12.adb (Check_Fixed_Point_Actual): Minor rewording; it seems
|
||
more proper to say "operator" rather than "operation".
|
||
(Matching_Actual): Give an error for <> in positional notation.
|
||
This is a syntax error. Disable this for now.
|
||
(Analyze_Associations): Copy the use clause in all cases.
|
||
The "mustn't recopy" comment seems wrong, because New_Copy_Tree
|
||
preserves Slocs.
|
||
* libgnat/a-ticoau.ads: Fix violation of new postion-box error.
|
||
* libgnat/a-wtcoau.ads: Likewise.
|
||
* libgnat/a-ztcoau.ads: Likewise.
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* par-labl.adb (Rewrite_As_Loop): Remove info message
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* par-ch7.adb: Remove warning characters from info message
|
||
* par-endh.adb: Remove warning characters from info message
|
||
* sem_res.adb: Remove warning characters from info message
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): change the
|
||
info message to a continuation message.
|
||
|
||
2024-06-13 Viljar Indus <indus@adacore.com>
|
||
|
||
* inline.adb (Cannot_Inline): Simplify string handling logic.
|
||
|
||
2024-06-13 Yannick Moy <moy@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Skip entities
|
||
of kind E_Subprogram_Body.
|
||
* repinfo.adb (List_Entities): Remove special case for subprogram
|
||
bodies.
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): List subprogram
|
||
body entities in the enclosing scope.
|
||
|
||
2024-06-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch4.adb (Traverse_Interfaces): Add missing support
|
||
for climbing to parents of interface types.
|
||
|
||
2024-06-13 Steve Baird <baird@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_attributes.rst:
|
||
Update Super attribute documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-13 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_ch7.adb (Build_Cleanup_Statements): Adapt to changes
|
||
made to Build_Protected_Subprogram_Call_Cleanup.
|
||
* exp_ch9.adb (Make_Unlock_Statement, Wrap_Unprotected_Call):
|
||
New functions.
|
||
(Build_Protected_Subprogram_Body): Fix resource management in
|
||
generated code.
|
||
(Build_Protected_Subprogram_Call_Cleanup): Make use of newly
|
||
introduced Make_Unlock_Statement.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114710
|
||
* exp_util.adb (Find_Renamed_Object): Recurse for any renaming.
|
||
|
||
2024-06-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
|
||
Iterate over encapsulating abstract states.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imad32$(objext),
|
||
s-imad64$(objext) and s-imagea$(objext).
|
||
* exp_atag.ads (Build_Set_Size_Function): Replace Tag_Node parameter
|
||
with Typ parameter.
|
||
* exp_atag.adb: Add clauses for Sinfo.Utils.
|
||
(Build_Set_Size_Function): Retrieve the TSD object statically.
|
||
* exp_disp.adb: Add clauses for Ttypes.
|
||
(Make_DT): Call Address_Image{32,64] instead of Address_Image.
|
||
(Register_Primitive): Pass Tag_Typ to Build_Set_Size_Function.
|
||
* rtsfind.ads (RTU_Id): Remove System_Address_Image and add
|
||
System_Img_Address_{32;64}.
|
||
(RE_Id): Remove entry for RE_Address_Image and add entries for
|
||
RE_Address_Image{32,64}.
|
||
* rtsfind.adb (System_Descendant): Adjust to above changes.
|
||
* libgnat/a-tags.ads (Address_Array): Suppress initialization.
|
||
* libgnat/s-addima.adb (System.Address_Image): Call the appropriate
|
||
routine based on the address size.
|
||
* libgnat/s-imad32.ads: New file.
|
||
* libgnat/s-imad64.ads: Likewise.
|
||
* libgnat/s-imagea.ads: Likewise.
|
||
* libgnat/s-imagea.adb: Likewise.
|
||
* gcc-interface/Make-lang.in (GNAT_ADA_OBJS) [$(STAGE1)=False]: Add
|
||
ada/libgnat/s-imad32.o and ada/libgnat/s-imad64.o.
|
||
|
||
2024-06-13 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
|
||
when constant with address clause is found.
|
||
|
||
2024-06-13 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnatlink.adb (Gnatlink): Fix incorrect lower bound assumption.
|
||
(Is_Prefix): New function.
|
||
|
||
2024-06-13 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch7.adb
|
||
(Requires_Completion_In_Body): Modify the Comes_From_Source test so that
|
||
the implicit declaration of an inherited subprogram does not cause
|
||
an incorrect result of True.
|
||
|
||
2024-06-13 Richard Kenner <kenner@adacore.com>
|
||
|
||
* exp_ch6.adb (Expand_Ctrl_Function_Call): Inline if -gnatn in
|
||
CCG mode even if -O0.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114710
|
||
* exp_util.adb (Find_Renamed_Object): Recurse if the renamed object
|
||
is itself a renaming.
|
||
|
||
2024-06-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Enhance support for
|
||
using 'Old with a prefix that references an overloaded
|
||
function that has no parameters; add missing support
|
||
for the use of 'Old within qualified expressions.
|
||
* sem_util.ads (Preanalyze_And_Resolve_Without_Errors):
|
||
New subprogram.
|
||
* sem_util.adb (Preanalyze_And_Resolve_Without_Errors):
|
||
New subprogram.
|
||
|
||
2024-06-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* layout.adb (Layout_Type): Use high-level wrapper routine.
|
||
* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-tsmona__linux.adb (Get): Move down descriptive comment.
|
||
* libgnat/s-tsmona__mingw.adb: Add with clause and use clause for
|
||
System.Storage_Elements.
|
||
(Get): Pass GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT in the call
|
||
to GetModuleHandleEx and remove the subsequent call to FreeLibrary.
|
||
Upon success, set Load_Addr to the base address of the module.
|
||
* libgnat/s-win32.ads (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS): Use
|
||
shorter literal.
|
||
(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT): New constant.
|
||
|
||
2024-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/114710
|
||
* exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove dead
|
||
code dealing with renamings.
|
||
* exp_util.ads (Is_Finalizable_Transient): Rename Rel_Node to N.
|
||
* exp_util.adb (Is_Finalizable_Transient): Likewise.
|
||
(Is_Aliased): Remove obsolete code dealing wih EWA nodes and only
|
||
consider renamings present in N itself.
|
||
(Requires_Cleanup_Actions): Remove dead code dealing with renamings.
|
||
|
||
2024-06-13 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_One_Aspect): Set the applicable policy
|
||
of a type declaration when its aspect Dynamic_Predicate is
|
||
analyzed.
|
||
* sem_prag.adb (Handle_Dynamic_Predicate_Check): New subprogram
|
||
that enables or ignores dynamic predicate checks depending on
|
||
whether dynamic checks are enabled in the context where the
|
||
associated type declaration is defined; used in the analysis
|
||
of pragma check. In addition, for pragma Predicate, do not
|
||
disable it when the aspect was internally build as part of
|
||
processing a dynamic predicate aspect.
|
||
|
||
2024-06-12 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
|
||
as the debug type for packed fields.
|
||
|
||
2024-06-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Nonbinary_Modular_Op): Create an explicit Mod
|
||
for additive operations if No_Implicit_Conditionals is in effect.
|
||
(Expand_Modular_Addition): Likewise.
|
||
(Expand_Modular_Subtraction): Likewise.
|
||
(Expand_Modular_Op): Always use an unsigned type obtained by calling
|
||
Small_Integer_Type_For on the required size.
|
||
|
||
2024-06-10 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support
|
||
for access-to-subprogram parameter types.
|
||
* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
|
||
Add dummy BIP parameters to access-to-subprogram types
|
||
that may reference a function that has BIP parameters.
|
||
|
||
2024-06-10 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_prag.adb (Set_Convention_From_Pragma): If the specified convention on
|
||
a record type is not C_Pass_By_Copy, then force the C_Pass_By_Copy flag to
|
||
False, to ensure that it's overridden.
|
||
|
||
2024-06-10 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Iterated_Association): Change "not Present"
|
||
to "No" in test of Add_Named_Subp.
|
||
|
||
2024-06-10 Steve Baird <baird@adacore.com>
|
||
|
||
* freeze.adb
|
||
(Should_Freeze_Type.Is_Dispatching_Call_Or_Aggregate): Treat an extension
|
||
aggregate or a delta aggregate like a regular aggregate.
|
||
|
||
2024-06-10 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Iterated_Association): In the case of
|
||
N_Iterated_Element_Associations that have a key expression, issue
|
||
an error if the aggregate type does not have an Add_Named
|
||
operation, and include a reference to RM22 4.3.5(24) in the error
|
||
message. In the case of an N_Component_Association with a
|
||
Defining_Identifer where the "choice" is given by a function call,
|
||
in the creation of the iterator_specification associate a copy of
|
||
Choice as its Name, and remove the call to
|
||
Analyze_Iterator_Specification, which was causing problems with
|
||
the reanalysis of function calls originally given in prefixed form
|
||
that were transformed into function calls in normal (infix) form.
|
||
The iterator_specification will be analyzed later in any case, so
|
||
that call should not be done here. Remove the with and use of
|
||
Sem_Ch5.
|
||
|
||
2024-06-10 Justin Squirek <squirek@adacore.com>
|
||
|
||
* ali.adb (Get_Nat): Remove unnecessary parentheses.
|
||
* exp_ch11.adb (Expand_Local_Exception_Handlers): Remove
|
||
unnecessary parentheses.
|
||
* freeze.adb (Freeze_Entity): Remove unnecessary parentheses.
|
||
* lib-list.adb (List): Remove unnecessary parentheses.
|
||
* par-ch5.adb (P_Condition): Add extra parentheses checks on
|
||
condition operands.
|
||
* sem_ch3.adb (Add_Interface_Tag_Components): Remove unnecessary
|
||
parentheses.
|
||
(Check_Delta_Expression): Remove unnecessary parenthesis.
|
||
(Check_Digits_Expression): Remove unnecessary parentheses.
|
||
* sem_ch12.adb (Validate_Array_Type_Instance): Remove unnecessary
|
||
parentheses.
|
||
|
||
2024-06-10 Justin Squirek <squirek@adacore.com>
|
||
|
||
* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Add
|
||
expansion of filter condition.
|
||
(Expand_Formal_Container_Loop): Add expansion of filter condition.
|
||
|
||
2024-06-10 Justin Squirek <squirek@adacore.com>
|
||
|
||
* accessibility.adb (Accessibility_Level): Use Get_Full_View to
|
||
avoid crashes when calculating scope.
|
||
|
||
2024-06-10 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Unreferenced_Entity): Add a condition to
|
||
ignore warnings on unreferenced abstract subprogram.
|
||
|
||
2024-06-10 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Add check for interface parent
|
||
types.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* einfo.ads, exp_attr.adb, exp_ch4.adb, exp_ch7.adb,
|
||
lib-writ.adb, libgnat/a-stbuut.ads, sem_ch13.adb, sem_ch3.adb,
|
||
sem_ch7.adb: Use "RM" in comments.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb
|
||
(Immediate_Context_Implies_Is_Potentially_Unevaluated): Use
|
||
collective subtypes in membership tests.
|
||
(Is_Known_On_Entry): Require all alternatives in a case statement
|
||
to return; this change could prevent a recently fixed glitch,
|
||
where one of the alternatives relied on the return statement
|
||
afterwards (also, the new code is shorter).
|
||
* sem_util.ads (Is_Potentially_Unevaluated): Clarify that this
|
||
routine applies to Ada 2012.
|
||
|
||
2024-06-10 Yannick Moy <moy@adacore.com>
|
||
|
||
* libgnat/a-chtgfo.adb (Generic_Read, Generic_Write): Remove.
|
||
* libgnat/a-chtgfo.ads: Same. Remove dependency on Ada.Streams.
|
||
|
||
2024-06-10 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage of
|
||
SetThreadAffinityMask.
|
||
* libgnat/s-winext.ads (SetThreadAffinityMask): Fix binding
|
||
signature.
|
||
|
||
2024-06-10 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage
|
||
of SetThreadIdealProcessor.
|
||
|
||
2024-06-10 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnat/s-os_lib.adb (Normalize_Pathname): Remove incorrect
|
||
assert statement.
|
||
(Missed_Drive_Letter): Rename into...
|
||
(Drive_Letter_Omitted): This.
|
||
|
||
2024-06-10 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnatlink.adb (Check_File_Name): Fix incorrect assumption.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Use constants
|
||
declared at the beginning of subprogram; tune layout.
|
||
* exp_ch3.adb (Predefined_Primitive_Bodies): Tune layout.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst
|
||
(No_Tagged_Streams): Move documentation.
|
||
* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
|
||
(No_Streams): Likewise.
|
||
* exp_disp.adb (Make_DT): Extend comment.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Use fully qualified name
|
||
without a NUL, so that it doesn't need to be skipped afterwards.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch3.adb (Stream_Operation_OK): Check restriction
|
||
No_Default_Stream_Attributes before call to
|
||
Type_Without_Stream_Operation.
|
||
* sem_util.adb (Type_Without_Stream_Operation): Remove static
|
||
condition from recursive routine
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Has_Single_Return_In_GNATprove_Mode): Remove.
|
||
(Process_Formals): When rewriting an occurrence of a formal
|
||
parameter, use location of the occurrence, not of the inlined
|
||
call.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* debug.adb (d_k): Use first available debug switch.
|
||
* gnat1drv.adb (Adjust_Global_Switches): If new debug switch is
|
||
active then don't expand assertion expressions by default.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch6.adb (Install_Class_Preconditions_Check): Refactor
|
||
common code for checking if precondition fails, since the
|
||
difference is only in raising an exception or calling the
|
||
Raise_Assert_Failure procedure.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch6.adb (Build_Dynamic_Check_Helper_Call): Remove unused
|
||
iteration over formal parameters.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Make
|
||
discriminants visible when analyzing aspect Interrupt_Priority.
|
||
(Freeze_Entity_Checks): Likewise.
|
||
(Resolve_Aspect_Expressions): Likewise for both aspects CPU and
|
||
Interrupt_Priority.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Report_Extra_Clauses): Remove redundant check
|
||
for empty list, because First works also for No_List.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Check_Dependency_Clause, Check_Output_States,
|
||
Report_Extra_Clauses): Remove multiple checks for being inside
|
||
an instance.
|
||
(Analyze_Refined_Depends_In_Decl_Part): Add single check for
|
||
being inside an instance.
|
||
|
||
2024-06-10 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Check_In_Out_States, Check_Input_States,
|
||
Check_Output_States, Check_Proof_In_States,
|
||
Check_Refined_Global_List, Report_Extra_Constituents,
|
||
Report_Missing_Items): Remove multiple checks for being inside
|
||
an instance.
|
||
(Analyze_Refined_Global_In_Decl_Part): Add single check for
|
||
being inside an instance.
|
||
|
||
2024-06-05 Kewen Lin <linkw@linux.ibm.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of
|
||
long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
|
||
|
||
2024-05-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115270
|
||
* Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
|
||
the 32-bit library.
|
||
(SPARC/Linux): Likewise.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115168
|
||
* libgnarl/s-taprop__solaris.adb (Initialize): Fix pasto.
|
||
* libgnat/s-oslock__solaris.ads (Owner_Int): Delete.
|
||
(Owner_ID): Change the designated type to Integer.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (nonbinary_modular_operation): Rewrite.
|
||
Do not create signed types for subtraction, do not create types with
|
||
partial precision, call fold_convert instead of convert throughout.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity): Use the Is_Base_Type
|
||
predicate and remove superfluous calls to Base_Type.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (gnat_protect_expr): Deal specifically
|
||
with atomic loads. Document the relationship with gnat_save_expr.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: For a
|
||
packed type implemented specially, temporarily save the XUA type as
|
||
equivalent to the entity before processing the implementation type.
|
||
For this implementation type, if its component type is the same as
|
||
that of the original type, copy the alias set from the latter.
|
||
<types>: Resort to universal aliasing for all interface types.
|
||
* gcc-interface/trans.cc (Call_to_gnu): Add GNU_ACTUAL_TYPE local
|
||
variable and rename existing one to GNU_UNPADDED_ACTUAL_TYPE.
|
||
If the formal is passed by reference and the actual is a conversion,
|
||
call aliasable_p to detect aliasing violations, issue a warning upon
|
||
finding one and create the temporary in the target type.
|
||
Add an assertion that no such violation has been missed above.
|
||
(addressable_p): Revert latest changes.
|
||
(aliasable_p): New predicate.
|
||
* gcc-interface/utils2.cc (build_binary_op) <ARRAY_RANGE_REF>: When
|
||
creating a new array type on the fly, preserve the alias set of the
|
||
operation type.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
|
||
In the return-by-invisible-reference case, remove conversions before
|
||
looking for a dereference in the return values and building the test
|
||
protecting against a useless copy operation.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Set
|
||
TYPE_TYPELESS_STORAGE on the array types if Universal_Aliasing is
|
||
set on the type or its component type.
|
||
<E_Array_Subtype>: Likewise.
|
||
For other aggregate types, set TYPE_TYPELESS_STORAGE in this case.
|
||
(set_typeless_storage_on_aggregate_type): New function.
|
||
(set_universal_aliasing_on_type): Likewise.
|
||
* gcc-interface/trans.cc (Call_to_gnu): Add const to local variable.
|
||
Adjust comment. Pass GNAT_NAME in the call to addressable_p and add
|
||
a bypass for atomic types in case it returns false.
|
||
(addressable_p): Add GNAT_EXPR third parameter with default value
|
||
and add a default value to the existing second parameter.
|
||
<VIEW_CONVERT_EXPR:>: Return false if the expression comes from a
|
||
function call and if the alias sets of source and target types are
|
||
both distinct from zero and each other.
|
||
|
||
2024-05-21 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (build_cond_expr): Also apply an
|
||
indirection when the result type is variable-sized.
|
||
|
||
2024-05-21 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* gcc-interface/decl.cc: Fix typo in comment.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add an
|
||
assertion that this is not a deallocation of the return or secondary
|
||
stack and remove subsequent unreachable code.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (build_cond_expr): Use the indirect path
|
||
for all types containing a placeholder.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gcc-interface/Make-lang.in (GNATBIND_OBJS): Remove unused
|
||
dependencies.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Give a
|
||
warning for a statically allocated object whose size is constant,
|
||
valid but too large.
|
||
(allocatable_size_p): In the static case, return false for a size
|
||
that is constant, valid but too large.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: For an
|
||
array allocated with its bounds, make sure to have an array type
|
||
to build the template.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/trans.cc (access_attribute_p): New predicate.
|
||
(lvalue_required_for_attribute_p): Return again 1 for Size and add
|
||
the missing terminating call to gcc_unreachable.
|
||
(gnat_to_gnu): Return the result unmodified for a reference to an
|
||
unconstrained array only if it is the prefix of an access attribute.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils.cc (relate_alias_sets): Restore previous code
|
||
when the type uses structural equality.
|
||
|
||
2024-05-21 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_util.adb (Remove_Side_Effects): Make_Reference assumes that
|
||
the referenced object satisfies the constraints of the designated
|
||
subtype of the access type. Ensure that this assumption holds by
|
||
introducing a qualified expression if needed (and then ensuring
|
||
that checking associated with evaluation of the qualified
|
||
expression is not suppressed).
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* aspects.ads (Nonoverridable_Aspect_Id): Fix layout.
|
||
|
||
2024-05-21 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* frontend.adb (Frontend): Remove duplicate statement.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (Validate_Unchecked_Conversion): Restrict forcing the
|
||
Can_Use_Internal_Rep flag to platforms that require unnesting.
|
||
|
||
2024-05-21 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_elab.adb: Add missing elaboration insertion
|
||
characters to info messages.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Add_Scope_To_Clean): Use Append_Unique_Elmt.
|
||
(Analyze_Inlined_Bodies): Refine type of a local counter;
|
||
remove extra whitespace.
|
||
|
||
2024-05-21 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-taenca.adb (Wait_For_Completion): Remove call to
|
||
Yield.
|
||
* libgnarl/s-tasren.adb (Timed_Selective_Wait, Wait_For_Call):
|
||
Remove calls to Yield.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_of_ada_2012_features.rst:
|
||
Fix formatting.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_of_ada_2012_features.rst:
|
||
Order list by AI number.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_of_ada_2012_features.rst
|
||
(AI-0216): Fix index reference.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-21 Viljar Indus <indus@adacore.com>
|
||
|
||
* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
|
||
Update the documentation of -gnatw.n and -gnatw.l
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst
|
||
(No_Tagged_Streams): Document how to avoid exposing entity names
|
||
for the entire partition.
|
||
* exp_disp.adb (Make_DT): Make use of restriction No_Streams.
|
||
* exp_put_image.adb (Build_Record_Put_Image_Procedure): Respect
|
||
Discard_Names in the generated Put_Image procedure.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
|
||
useless conversions.
|
||
|
||
2024-05-21 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
|
||
trailing NUL from the fully qualified type name.
|
||
|
||
2024-05-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* err_vars.ads (Error_Msg_Sloc): Initialize to No_Location.
|
||
|
||
2024-05-21 Justin Squirek <squirek@adacore.com>
|
||
|
||
* doc/gnat_ugn/platform_specific_information.rst: Add note about
|
||
different priority level granularities under different policies in
|
||
Windows and move POSIX related info into new section.
|
||
* libgnarl/s-taprop.ads: Add note about Task_Dispatching_Policy.
|
||
* libgnarl/s-taprop__mingw.adb:
|
||
(Set_Priority): Add use of Non_FIFO_Underlying_Priorities.
|
||
* libgnat/system-mingw.ads: Add documentation for modifying
|
||
priority mappings and add alternative mapping
|
||
Non_FIFO_Underlying_Priorities.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-05-20 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch12.adb: Misc cleanups and comment fixes.
|
||
(Check_Overloaded_Formal_Subprogram): Remove the Others_Choice
|
||
error message.
|
||
(Others_Choice): Remove this variable; no longer needed.
|
||
* types.ads (Text_Ptr): Add a range constraint limiting the
|
||
subtype to values that are actually used. This has the advantage
|
||
that when the compiler is compiled with validity checks,
|
||
uninitialized values of subtypes Text_Ptr and Source_Ptr will be
|
||
caught.
|
||
* sinput.ads (Sloc_Adjust): Use the base subtype; this is used as
|
||
an offset, so we need to allow arbitrary negative values.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.ads (Preload_Finalization_Collection): Delete.
|
||
* exp_ch7.adb (Allows_Finalization_Collection): Revert change.
|
||
(Preload_Finalization_Collection): Delete.
|
||
* opt.ads (Interface_Seen): Likewise.
|
||
* scng.adb (Scan): Revert latest change.
|
||
* sem_ch10.adb: Remove clause for Exp_Ch7.
|
||
(Analyze_Compilation_Unit): Revert latest change.
|
||
* libgnat/i-c.ads: Use a fully qualified name for the standard "+"
|
||
operator in the preconditons/postconditions of subprograms.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Record_Aggregate.Component_OK_For_Backend):
|
||
Also return False for a delayed conditional expression.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.ads (Check_Compile_Time_Size): Remove obsolete description
|
||
of usage for the Size_Known_At_Compile_Time flag.
|
||
* freeze.adb (Check_Compile_Time_Size.Size_Known): In the case where
|
||
a variant part is present, do not return False if Esize is known.
|
||
* sem_util.adb (Needs_Secondary_Stack.Caller_Known_Size_Record): Add
|
||
missing "Start of processing" comment. Return true if either a size
|
||
clause or an object size clause has been given for the first subtype
|
||
of the type.
|
||
|
||
2024-05-20 Bob Duff <duff@adacore.com>
|
||
|
||
* sinfo.ads: Misc comment corrections and clarifications.
|
||
The syntax for GENERIC_ASSOCIATION and FORMAL_PACKAGE_ACTUAL_PART
|
||
was wrong.
|
||
Emphasize that "others => <>" is not represented as an
|
||
N_Generic_Association (with or without Box_Present set),
|
||
and give examples illustrating the various possibilities.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo-utils.ads (Is_Base_Type): Move to Miscellaneous Subprograms
|
||
section and add description.
|
||
* fe.h (Is_Base_Type): Declare.
|
||
|
||
2024-05-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
|
||
Resolve_Record_Aggregate in front of code related to calling
|
||
Resolve_Container_Aggregate (and add test that the aggregate is
|
||
not homogeneous), and remove special-case testing and call to
|
||
Resolve_Container_Aggregate for empty aggregates. Also, add error
|
||
check for an attempt to use "[]" for an aggregate of a record type
|
||
that does not specify an Aggregate aspect.
|
||
(Resolve_Record_Aggregate): Remove error check for record
|
||
aggregates with "[]" (now done by Resolve_Aggregate).
|
||
|
||
2024-05-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
|
||
Resolve_Record_Aggregate in front of code related to calling
|
||
Resolve_Container_Aggregate (and add test that the aggregate
|
||
is not homogeneous), and remove special-case testing and call
|
||
to Resolve_Container_Aggregate for empty aggregates.
|
||
|
||
2024-05-20 Justin Squirek <squirek@adacore.com>
|
||
|
||
* accessibility.adb (Accessibility_Level): Add cases for 'First
|
||
and 'Last.
|
||
|
||
2024-05-20 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Remove restriction on 'Super
|
||
for abstract types.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.ads (Attribute_Impl_Def): Fix list of
|
||
implementation-defined attributes.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Attribute_12): Add attributes Old,
|
||
Overlaps_Storage and Result.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Move IF statement that
|
||
checks restriction No_Implementation_Attributes for Ada 2005,
|
||
2012 and Ada 2022 attributes inside Comes_From_Source condition
|
||
that checks the same restriction for Ada 83 attributes.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute): Remove condition that is
|
||
already checked by an enclosing IF statement.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.ads (Universal_Type_Attribute): Simplify using
|
||
array aggregate syntax with discrete choice list.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.ads (Attribute_Impl_Def): Fix style in comment.
|
||
|
||
2024-05-20 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-taprop__linux.adb (Enter_Task): Move setting
|
||
of thread ID out of Enter_Task.
|
||
(Initialize): Set thread ID for the environment task.
|
||
(Create_Task): Remove now unnecessary Unrestricted_Access
|
||
attribute and add justification for a memory write.
|
||
* libgnarl/s-taprop__posix.adb: Likewise.
|
||
* libgnarl/s-taprop__qnx.adb: Likewise.
|
||
* libgnarl/s-taprop__rtems.adb: Likewise.
|
||
* libgnarl/s-taprop__solaris.adb: Likewise.
|
||
* libgnarl/s-taspri__posix.ads: Remove pragma Atomic for
|
||
Private_Data.Thread, and update documentation comment.
|
||
* libgnarl/s-taspri__lynxos.ads: Likewise.
|
||
* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
|
||
* libgnarl/s-taspri__solaris.ads: Likewise.
|
||
* libgnarl/s-tporft.adb (Register_Foreign_Thread): Adapt to
|
||
Enter_Task not setting the thread ID anymore.
|
||
* libgnarl/s-tassta.adb (Task_Wrapper): Update comment.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Is_Delayed_Conditional_Expression): New predicate.
|
||
* exp_aggr.adb (Convert_To_Assignments.Known_Size): Likewise.
|
||
(Convert_To_Assignments): Climb the parent chain, looking through
|
||
qualified expressions and dependent expressions of conditional
|
||
expressions, to find out whether the expansion may be delayed.
|
||
Call Known_Size for this in the case of an object declaration.
|
||
If so, set Expansion_Delayed on the aggregate as well as all the
|
||
intermediate conditional expressions.
|
||
(Initialize_Component): Reset the Analyzed flag on an initialization
|
||
expression that is a conditional expression whose expansion has been
|
||
delayed.
|
||
(Is_Delayed_Conditional_Expression): New predicate.
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Handle initialization
|
||
expressions that are conditional expressions whose expansion has
|
||
been delayed.
|
||
* exp_ch4.adb (Build_Explicit_Assignment): New procedure.
|
||
(Expand_Allocator_Expression): Handle initialization expressions
|
||
that are conditional expressions whose expansion has been delayed.
|
||
(Expand_N_Case_Expression): Deal with expressions whose expansion
|
||
has been delayed by waiting for the rewriting of their parent as
|
||
an assignment statement and then optimizing the assignment.
|
||
(Expand_N_If_Expression): Likewise.
|
||
(Expand_N_Qualified_Expression): Do not apply a predicate check to
|
||
an operand that is a delayed aggregate or conditional expression.
|
||
* gen_il-gen-gen_nodes.adb (N_If_Expression): Add Expansion_Delayed
|
||
semantic flag.
|
||
(N_Case_Expression): Likewise.
|
||
* sinfo.ads (Expansion_Delayed): Document extended usage.
|
||
|
||
2024-05-20 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Add top-level
|
||
variables Choice_{Lo|Hi} and Int_Choice_{Lo|Hi} used for
|
||
determining the low and high bounds of component association
|
||
choices. Replace code for determining whether we have an indexed
|
||
aggregate with call to new function Sem_Aggr.Is_Indexed_Aggregate.
|
||
Remove test of whether Empty_Subp is a function, since it must be
|
||
a function. Move Default and Count_Type to be locals of a new
|
||
block enclosing the code that creates the object to hold the
|
||
aggregate length, and set them according to the default and type
|
||
of the Empty function's parameter when present (and to Empty and
|
||
Standard_Natural otherwise). Use Siz_Exp for the aggregate length
|
||
when set, and use Empty's default length when available, and use
|
||
zero for the length otherwise. In generating the call to the
|
||
New_Indexed function, use the determined lower and upper bounds if
|
||
determined earlier by Aggregate_Size, and otherwise compute those
|
||
from the index type's lower bound and the determined aggregate
|
||
length. In the case where a call to Empty is generated and the
|
||
function has a formal parameter, pass the value saved in Siz_Decl
|
||
(otherwise the parameter list is empty). Remove code specific to
|
||
making a parameterless call to the Empty function. Extend the code
|
||
for handling positional container aggregates to account for types
|
||
that define Assign_Indexed, rather than just Add_Unnamed, and in
|
||
the case of indexed aggregates, create a temporary object to hold
|
||
values of the aggregate's key index, and initialize and increment
|
||
that temporary for each call generated to the Assign_Indexed
|
||
procedure. For named container aggregates that have key choices
|
||
given by ranges, call Expand_Range_Component to generate a loop
|
||
that will call the appropriate insertion procedure for each value
|
||
of the range. For indexed aggregates with a Component_Associations
|
||
list, set and use the Assign_Indexed procedure for each component
|
||
association, whether or not there's an iterator specification.
|
||
(Add_Range_Size): Add code to determine the low and high bounds of
|
||
the range and capture those in up-level variables when their value
|
||
is less than or greater than (respectively) the current minimum
|
||
and maximum bounds values.
|
||
(Aggregate_Size): Separately handle the case where a single choice
|
||
is of a discrete type, and call Add_Range_Size to take its value
|
||
into consideration for determination of min and max bounds of the
|
||
aggregate. Add comments in a couple of places.
|
||
(Build_Siz_Exp): Remove the last sentence and "???" from the
|
||
comment that talks about accumulating nonstatic sizes, since that
|
||
sentence seems to be obsolete. Record the low and high bound
|
||
values in Choice_Lo and Choice_Hi in the case of a nonstatic
|
||
range.
|
||
(Expand_Iterated_Component): Set the Defining_Identifier of the
|
||
iterator specification to the Loop_Id in the
|
||
N_Iterated_Component_Association case.
|
||
(Expand_Range_Component): Procedure unnested from the block
|
||
handling indexed aggregates in Expand_Container_Aggregate, and
|
||
moved to top level of that procedure so it can also be called for
|
||
Add_Named cases. A formal parameter Insert_Op is added, and
|
||
existing calls to this procedure are changed to pass the
|
||
appropriate insertion procedure's Entity.
|
||
* sem_aggr.ads: Add with_clause for Sinfo.Nodes.
|
||
(Is_Indexed_Aggregate): New function for use by
|
||
Resolve_Container_Aggregate and Expand_Container_Aggregate.
|
||
* sem_aggr.adb: Add with_clause for Sem_Ch5. Move with_clause for
|
||
Sinfo.Nodes to sem_aggr.ads.
|
||
(Is_Indexed_Aggregate): New function to determine whether a
|
||
container aggregate is a container aggregate (replacing local
|
||
variable of the same name in Resolve_Container_Aggregate).
|
||
(Resolve_Iterated_Association): Remove part of comment saying that
|
||
a Key_Expression is always present. Set Parent field of the copy
|
||
of a component association with a loop parameter specification. On
|
||
the setting of Loop_Param_Id, account for a
|
||
Loop_Parameter_Specification being changed into an
|
||
Iterator_Specification as a result of being analyzed. Only call
|
||
Preanalyze_And_Resolve on Key_Expr when a key expression is
|
||
actually present. Remove loop for handling choices for the case of
|
||
an N_Component_Association with a Defining_Identifier (there
|
||
shouldn't be more than one choice in this case, and add an
|
||
assertion to ensure that). Also add code here to handle the case
|
||
where the choice is a function call, creating an
|
||
iterator_specification analyzing it, and call
|
||
Resolve_Iterated_Association recursively to process it. Add error
|
||
check to enforce RM22 4.3.5(27), which requires that the type of
|
||
the loop parameter must be the same as the key type when there is
|
||
no key expression and the aggregate is an indexed aggregate or has
|
||
an Add_Named op.
|
||
(Resolve_Container_Aggregate): In the Add_Unnamed case, call
|
||
Resolve_Iterated_Association for both
|
||
N_Iterated_Element_Association and N_Component_Association (rather
|
||
than just the latter). Remove error check for nonstatic choices in
|
||
component associations in Add_Named cases (multiple named
|
||
nonstatic associations are fine except in indexed aggregates).
|
||
Remove local variable Is_Indexed_Aggregate, replaced with new
|
||
library-level function of the same name, and add test of
|
||
Is_Indexed_Aggregate in the case where the aggregate type has an
|
||
Assign_Indexed operation, as a guard for doing error checks for
|
||
indexed aggregates. For indexed aggregate resolution, do not call
|
||
Analyze_And_Resolve on the expression of an
|
||
N_Component_Association in the "box association" case. Move error
|
||
checks for indexed aggregates with iterated associations that flag
|
||
cases where an association is a loop_parameter_specification with
|
||
an iterator filter or a key expression (violation of RM22
|
||
4.3.5(28/5)), from the loop that checks for contiguous and
|
||
nonoverlapping choices and into the preceding association loop
|
||
after the call to Resolve_Iterated_Association. The RM reference
|
||
is added to the error-message strings.
|
||
|
||
2024-05-20 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* libgnarl/s-taprop__linux.adb (Set_Task_Affinity): Fix
|
||
decision about whether to call CPU_FREE.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Convert_Aggr_In_Allocator): Remove Aggr parameter
|
||
and adjust description.
|
||
(Convert_Aggr_In_Object_Decl): Adjust description.
|
||
* exp_aggr.adb (Convert_Aggr_In_Allocator): Remove Aggr parameter
|
||
and add local variable of the same name instead. Adjust call to
|
||
Convert_Array_Aggr_In_Allocator.
|
||
(Convert_Aggr_In_Object_Decl): Add comment for early return and
|
||
remove useless inner block statement.
|
||
(Convert_Array_Aggr_In_Allocator): Remove Aggr parameter and add
|
||
local variable of the same name instead.
|
||
(In_Place_Assign_OK): Move down declarations of local variables.
|
||
(Convert_To_Assignments): Put all declarations of local variables
|
||
in the same place. Fix typo in comment. Replace T with Full_Typ.
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Call Unqualify instead
|
||
of Expression on the qualified expression of the allocator for the
|
||
sake of consistency. Adjust call to Convert_Aggr_In_Allocator.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Handle enumeration type with
|
||
Discard_Names.
|
||
|
||
2024-05-20 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_imgv.adb (Expand_Width_Attribute): Fix for 'Width that
|
||
is computed at run time.
|
||
* sem_attr.adb (Eval_Attribute): Fix for 'Width that is computed
|
||
at compilation time.
|
||
|
||
2024-05-20 Sebastian Poeplau <poeplau@adacore.com>
|
||
|
||
* libgnat/s-pooglo.adb (Allocate): Use arithmetic on
|
||
System.Address to compute the aligned address.
|
||
|
||
2024-05-20 Steve Baird <baird@adacore.com>
|
||
|
||
* freeze.adb (Adjust_Esize_For_Alignment): Assert that a valid
|
||
Alignment specification cannot result in adjusting the given
|
||
type's Esize to be larger than System_Max_Integer_Size.
|
||
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): In analyzing
|
||
an Alignment specification, enforce the rule that a specified
|
||
Alignment value for a discrete or fixed-point type shall not be
|
||
larger than System_Max_Integer_Size / 8 .
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/g-sothco.ads (In_Addr): Add aspect Universal_Aliasing.
|
||
|
||
2024-05-20 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Exclude detection of duplicates
|
||
because they are detected elsewhere.
|
||
|
||
2024-05-20 Jose Ruiz <ruiz@adacore.com>
|
||
|
||
* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Clarify
|
||
comments.
|
||
* sem_prag.adb (Analyze_Pragma): Check for duplicates
|
||
Max_Entry_Queue_Length, Max_Entry_Queue_Depth and Max_Queue_Length
|
||
for the same protected entry.
|
||
* sem_util.adb (Get_Max_Queue_Length): Take into account all three
|
||
representation aspects that can be used to set this restriction.
|
||
(Has_Max_Queue_Length): Likewise.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst:
|
||
(pragma Max_Queue_Length): Fix pragma in example.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.ads (Collection_Node): Move to private part.
|
||
(Collection_Node_Ptr): Likewise.
|
||
(Header_Alignment): Change to declaration and move completion to
|
||
private part.
|
||
(Header_Size): Likewise.
|
||
(Lock_Type): Delete.
|
||
(Finalization_Collection): Move Lock component and remove default
|
||
value for Finalization_Started component.
|
||
* libgnat/s-finpri.adb (Initialize): Reorder statements.
|
||
|
||
2024-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst
|
||
(Universal_Aliasing): Remove reference to No_Strict_Aliasing.
|
||
* doc/gnat_ugn/gnat_and_program_execution.rst
|
||
(Optimization and Strict Aliasinng): Simplify first example and
|
||
make it more consistent with the second. Add description of the
|
||
effects of pragma Universal_Aliasing and document new warning
|
||
issued for unchecked conversions. Remove obsolete stuff.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/115133
|
||
* libgnarl/s-osinte__solaris.ads (mutex_t): Fix typo.
|
||
* libgnarl/s-taprop__solaris.adb (Record_Lock): Add conversion.
|
||
(Check_Sleep): Likewise.
|
||
(Record_Wakeup): Likewise.
|
||
(Check_Unlock): Likewise.
|
||
* libgnarl/s-tasini.adb (Initialize_RTS_Lock): Add pragma Import
|
||
on the overlaid variable.
|
||
(Finalize_RTS_Lock): Likewise.
|
||
(Acquire_RTS_Lock): Likewise.
|
||
(Release_RTS_Lock): Likewise.
|
||
* libgnarl/s-taspri__solaris.ads (To_RTS_Lock_Ptr): New instance
|
||
of Ada.Unchecked_Conversion.
|
||
* libgnat/s-oslock__solaris.ads: Add with clause for
|
||
Ada.Unchecked_Conversion.
|
||
(array_type_9): Add missing name qualification.
|
||
(record_type_3): Likewise.
|
||
(mutex_t): Fix formatting.
|
||
|
||
2024-05-17 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate):
|
||
Derive the size for iterable aggregates in the case of
|
||
one-dimensional array objects.
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_aggr.adb (Aggr_Size_OK): Remove workaround and extend
|
||
comment.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* bindgen.adb (Gen_Adainit): Generate declaration and call to the
|
||
imported procedure __gnat_tasking_runtime_initialize if need be.
|
||
* libgnat/s-soflin.ads (Locking Soft-Links): Add commentary.
|
||
* libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): New procedure
|
||
exported as __gnat_tasking_runtime_initialize. Initialize RTS_Lock
|
||
manipulation routines here instead of...
|
||
(Init_RTS): ...here.
|
||
|
||
2024-05-17 Steve Baird <baird@adacore.com>
|
||
|
||
* scng.adb (scan): When checking for an unprocessed preprocessor
|
||
directive, take into account the preprocessor's rules about case
|
||
insensitivity and about white space between the '#' and the
|
||
keyword.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnarl/s-taspri__mingw.ads: Add clause for System.OS_Interface.
|
||
(Private_Data): Change type of Thread component.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/g-alvevi.ads: Add pragma Universal_Aliasing for all the
|
||
view types.
|
||
* libgnat/s-stratt.ads: Likewise for Fat_Pointer type.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-oslock$(objext).
|
||
(LIBGNAT_TARGET_PAIRS): Use s-oslock__dummy.ads by default.
|
||
Set specific s-oslock.ads source file for all the platforms.
|
||
* exp_ch7.ads (Preload_Finalization_Collection): New procedure.
|
||
* exp_ch7.adb (Allows_Finalization_Collection): Return False if
|
||
System.Finalization_Primitives has not been preloaded.
|
||
(Preload_Finalization_Collection): New procedure.
|
||
* opt.ads (Interface_Seen): New boolean variable.
|
||
* s-oscons-tmplt.c: Use "N" string for pragma Style_Checks.
|
||
* scng.adb (Scan): Set Interface_Seen upon seeing "interface".
|
||
* sem_ch10.adb: Add clause for Exp_Ch7.
|
||
(Analyze_Compilation_Unit): Call Preload_Finalization_Collection
|
||
after the context of the unit is analyzed.
|
||
* libgnarl/a-rttiev.adb: Add with clause for System.OS_Locks and
|
||
alphabetize others.
|
||
(Event_Queue_Lock): Adjust qualified name of subtype.
|
||
* libgnarl/s-osinte__aix.ads: Add with clause for System.OS_Locks
|
||
and change pthread_mutex_t into a local subtype.
|
||
* libgnarl/s-osinte__android.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-dce.ads: Likewise.
|
||
* libgnarl/s-osinte__hpux.ads: Add 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__mingw.ads: Add with clause for System.OS_Locks
|
||
and change CRITICAL_SECTION into a local subtype. Add declarations
|
||
for imported procedures dealing with CRITICAL_SECTION.
|
||
* libgnarl/s-osinte__solaris.ads: Add with clause for System.OS_Locks
|
||
and change mutex_t into a local subtype.
|
||
* libgnarl/s-osinte__vxworks.ads: Add missing blank line.
|
||
* libgnarl/s-taprop.ads: Alphabetize clauses and package renamings.
|
||
Use qualified name for RTS_Lock throughout.
|
||
* libgnarl/s-taprop__dummy.adb: Add use clause for System.OS_Locks
|
||
and alphabetize others.
|
||
* libgnarl/s-taprop__hpux-dce.adb: Likewise.
|
||
* libgnarl/s-taprop__linux.adb: Likewise.
|
||
* libgnarl/s-taprop__posix.adb: Likewise.
|
||
* libgnarl/s-taprop__qnx.adb: Likewise.
|
||
* libgnarl/s-taprop__rtems.adb: Likewise.
|
||
* libgnarl/s-taprop__solaris.adb: Likewise.
|
||
* libgnarl/s-taprop__vxworks.adb: Likewise.
|
||
* libgnarl/s-taprop__mingw.adb: Likewise. Remove declarations for
|
||
imported procedures dealing with CRITICAL_SECTION.
|
||
* libgnarl/s-tarest.adb: Add with clause for System.OS_Locks and
|
||
alphabetize others.
|
||
(Global_Task_Lock): Adjust qualified name of subtype.
|
||
* libgnarl/s-tasini.adb: Add clause for System.OS_Locks.
|
||
(Initialize_RTS_Lock): New procedure.
|
||
(Finalize_RTS_Lock): Likewise.
|
||
(Acquire_RTS_Lock): Likewise.
|
||
(Release_RTS_Lock): Likewise.
|
||
(Init_RTS): Add compile-time assertions for RTS_Lock types.
|
||
Set the soft links for the RTS lock manipulation routines.
|
||
* libgnarl/s-taspri__dummy.ads: Add with clause for System.OS_Locks.
|
||
(RTS_Lock): Delete and adjust throughout accordingly.
|
||
* libgnarl/s-taspri__hpux-dce.ads: Likewise.
|
||
* libgnarl/s-taspri__lynxos.ads: Likewise.
|
||
* libgnarl/s-taspri__mingw.ads: Likewise.
|
||
* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
|
||
* libgnarl/s-taspri__posix.ads: Likewise.
|
||
* libgnarl/s-taspri__solaris.ads: Likewise.
|
||
* libgnarl/s-taspri__vxworks.ads: Likewise.
|
||
* libgnat/s-finpri.ads: Add clause for System.OS_Locks.
|
||
(Finalization_Collection): Change type of Lock.
|
||
* libgnat/s-finpri.adb (Initialize): Call Initialize_RTS_Lock.
|
||
(Lock_Collection): Call Acquire_RTS_Lock.
|
||
(Unlock_Collection): Call Release_RTS_Lock.
|
||
* libgnat/s-oslock__dummy.ads: New file.
|
||
* libgnat/s-oslock__hpux-dce.ads: Likewise.
|
||
* libgnat/s-oslock__mingw.ads: Likewise.
|
||
* libgnat/s-oslock__posix.ads: Likewise.
|
||
* libgnat/s-oslock__solaris.ads: Likewise.
|
||
* libgnat/s-oslock__vxworks.ads: Likewise.
|
||
* libgnat/s-soflin.ads (Null_Set_Address): New null procedure.
|
||
(Initialize_RTS_Lock): New soft link.
|
||
(Finalize_RTS_Lock): Likewise.
|
||
(Acquire_RTS_Lock): Likewise.
|
||
(Release_RTS_Lock): Likewise.
|
||
* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
|
||
call Apply_Predicate_Check on the resulting access value if need be.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Materialize_Entity): Document secondary usage.
|
||
|
||
2024-05-17 Steve Baird <baird@adacore.com>
|
||
|
||
* local_restrict.adb (Active_Restriction): When traversing scopes,
|
||
do not skip over a subprogram body.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnarl/s-taprop__dummy.adb (Initialize_Lock): Fix formatting.
|
||
* libgnarl/s-taprop__linux.adb (RTS_Lock_Ptr): Delete.
|
||
(Init_Mutex): Rename into...
|
||
(Initialize_Lock): ...this.
|
||
(Initialize_Lock [Lock]): Call above procedure.
|
||
(Initialize_Lock [RTS_Lock]): Likewise.
|
||
(Initialize_TCB): Likewise.
|
||
* libgnarl/s-taprop__posix.adb (Initialize_Lock): New procedure
|
||
factored out from the other two homonyms.
|
||
(Initialize_Lock [Lock]): Call above procedure.
|
||
(Initialize_Lock [RTS_Lock]): Likewise.
|
||
* libgnarl/s-taprop__qnx.adb (RTS_Lock_Ptr): Delete.
|
||
(Init_Mutex): Rename into...
|
||
(Initialize_Lock): ...this.
|
||
(Initialize_Lock [Lock]): Call above procedure.
|
||
(Initialize_Lock [RTS_Lock]): Likewise.
|
||
(Initialize_TCB): Likewise.
|
||
* libgnarl/s-taprop__rtems.adb (Initialize_Lock): New procedure
|
||
factored out from the other two homonyms.
|
||
(Initialize_Lock [Lock]): Call above procedure.
|
||
(Initialize_Lock [RTS_Lock]): Likewise.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Is_Known_On_Entry): Handle constants introduced
|
||
by validity checks.
|
||
|
||
2024-05-17 Steve Baird <baird@adacore.com>
|
||
|
||
* libgnat/a-direct.adb (Start_Search_Internal): Do not call
|
||
Modification_Time for a special file; declare a Calendar.Time
|
||
constant No_Time and use that instead.
|
||
|
||
2024-05-17 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Add
|
||
Has_Predicates test for a scalar component to match what is
|
||
already done for other kinds of components.
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Improve comments
|
||
and condition.
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Array_Aggregate): Fix location of error
|
||
message.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Move to
|
||
Sem_Util, so it can be used from GNATprove.
|
||
* sem_util.ads (Is_Unconstrained_Or_Tagged_Item): Move from
|
||
Sem_Prag; spec.
|
||
* sem_util.adb (Is_Unconstrained_Or_Tagged_Item): Move from
|
||
Sem_Prag; body.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_pakd.adb (Create_Packed_Array_Impl_Type): For non-bit-packed
|
||
array types, propagate the aliased property of the component.
|
||
(Install_PAT): Set fields on the implicit base type of an array.
|
||
* libgnat/a-stream.ads (private part): Add pragma Universal_Aliasing
|
||
for Stream_Element.
|
||
* libgnat/g-alleve.ads: Add pragma Universal_Aliasing for all the
|
||
vector types.
|
||
* libgnat/g-alleve__hard.ads: Likewise.
|
||
|
||
2024-05-17 Bob Duff <duff@adacore.com>
|
||
|
||
* bcheck.adb (Check_Consistency_Of_Sdep): Split out new procedure.
|
||
Add check for special case of subprogram spec that no longer
|
||
exists.
|
||
(Check_Consistency): Call Check_Consistency_Of_Sdep, except when
|
||
Reified_Child_Spec is True. No need for "goto Continue" or "exit
|
||
Sdep_Loop".
|
||
* ali.ads (Subunit_Name, Unit_Name): Change the type to
|
||
Unit_Name_Type. Add a comment pointing to the ALI file
|
||
documentation, because it's in a somewhat-surprising place.
|
||
* ali.adb (Scan_ALI): Subunit_Name and Unit_Name are now
|
||
Unit_Name_Type. Remove comment explaining why Name_Find is used;
|
||
Name_Find is the usual case. Do not remove the "%s" or "%b" from
|
||
the Unit_Name. We need to be able to distinguish specs and bodies.
|
||
This is also necessary to obey the invariant of Unit_Name_Type.
|
||
* binde.adb (Write_Closure): Subunit_Name is now Unit_Name_Type.
|
||
* clean.adb (Clean_Executables): Likewise.
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Null_Array_Aggregate): Update
|
||
documentation comments.
|
||
|
||
2024-05-17 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_util.adb (Has_Some_Controlled_Component): Fix a bug which
|
||
causes (in some cases involving a Disable_Controlled aspect
|
||
specification) Needs_Finalization to return different answers for
|
||
one type depending on whether the function is called before or
|
||
after the type is frozen.
|
||
* libgnat/a-coorse.ads: Type Control_Reference_Type gets an Adjust
|
||
procedure.
|
||
* libgnat/a-cborse.ads: Likewise.
|
||
* libgnat/a-ciorse.ads: Likewise
|
||
* libgnat/a-coorse.adb:
|
||
(Finalize): Reclaim allocated Key_Type object.
|
||
(Adjust): New procedure; prevent sharing of non-null Key_Access
|
||
values by allocating a copy.
|
||
* libgnat/a-cborse.adb: Likewise.
|
||
* libgnat/a-ciorse.adb: Likewise.
|
||
|
||
2024-05-17 Bob Duff <duff@adacore.com>
|
||
|
||
* uname.adb (Get_Unit_Name_String): Move Asserts after
|
||
Buf is initialized.
|
||
|
||
2024-05-17 Bob Duff <duff@adacore.com>
|
||
|
||
* ali-util.adb (Read_Withed_ALIs): Minor reformatting.
|
||
* bindo-units.adb (Corresponding_Body): Add assert.
|
||
(Corresponding_Spec): Likewise.
|
||
* uname.adb: Clean up assertions, use available functions.
|
||
Get_Spec_Name/Get_Body_Name can assert that N obeys the
|
||
conventions for Unit_Name_Type (end in "%s" or "%b").
|
||
|
||
2024-05-17 Sebastian Poeplau <poeplau@adacore.com>
|
||
|
||
* raise-gcc.c: Work around __builtin_code_address_from_pointer
|
||
if it is unavailable.
|
||
|
||
2024-05-17 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code) <Gen_Loop>: Copy the
|
||
initialization expression when unrolling the loop.
|
||
|
||
2024-05-17 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_disp.adb (Check_Dispatching_Operation): Call
|
||
Create_Extra_Formals, so that the caller will have an extra
|
||
"constrained" parameter, which will be checked on assignment in
|
||
the callee, and will be passed in by the caller.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Remove call
|
||
to Has_Discriminants; combine ELSIF branches.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch7.adb (New_Private_Type): Simplify setting of
|
||
Is_Constrained flag.
|
||
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Simplify
|
||
detection of private types with no discriminant.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects
|
||
of private types with unknown discriminants.
|
||
|
||
2024-05-17 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated
|
||
testing of type kinds.
|
||
|
||
2024-05-17 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_attributes.rst: Fix
|
||
copy/paste.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-05-17 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Component_Declaration):
|
||
Apply range checks only for Scalar_Types to
|
||
ensure that they have the Scalar_Range attribute.
|
||
|
||
2024-05-17 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch3.adb (Analyze_Component_Declaration):
|
||
Add Range_Checks for Subtype_Indications
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Remove call to
|
||
Relocate_Node.
|
||
* sem_attr.adb (Analyze_Attribute): Likewise.
|
||
|
||
2024-05-17 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_aggr.adb (Flatten): Small cleanup.
|
||
|
||
2024-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute) <Attribute_Size>: Remove special
|
||
processing for pragma Compile_Time_{Warning,Error}.
|
||
(Eval_Attribute.Compile_Time_Known_Attribute): Set Is_Static on the
|
||
resulting value if In_Compile_Time_Warning_Or_Error is set.
|
||
(Eval_Attribute.Full_Type): New helper function.
|
||
(Eval_Attribute): Call Full_Type for type attributes. Add handling
|
||
of Object_Size and adjust that of Max_Size_In_Storage_Elements in
|
||
the non-static case.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Attach_Object_To_Master_Node): Remove reference to a
|
||
transient object in comment.
|
||
|
||
2024-05-16 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): also reset scope
|
||
for object declarations.
|
||
|
||
2024-05-16 Steve Baird <baird@adacore.com>
|
||
|
||
* checks.adb (Expr_Known_Valid): Return True for a static expression.
|
||
* exp_util.adb (Adjust_Condition): No validity check needed for a
|
||
condition if it is an expression for which a validity check has
|
||
already been generated.
|
||
|
||
2024-05-16 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* libgnat/a-coinve.ads (type Vector): In the Aggregate aspect for
|
||
this type, the Empty operation is changed to denote the Empty
|
||
function, rather than the Empty_Vector constant.
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Remove code for
|
||
handling the case where the Empty_Subp denotes a constant object,
|
||
which should never happen (and add an assertion that Empty_Subp
|
||
must denote a function).
|
||
* sem_ch13.adb (Valid_Empty): No longer allow the entity to be an
|
||
E_Constant, and require the (optional) parameter of an Empty
|
||
function to be of a signed integer type (rather than any integer
|
||
type).
|
||
|
||
2024-05-16 Justin Squirek <squirek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_attributes.rst: Add entry for
|
||
Super attribute.
|
||
* accessibility.adb (Accessibility_Level): Add handling for Super.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
|
||
Super.
|
||
* sem_attr.adb (Analyze_Attribute): Create a case to handle the
|
||
semantic checking and expansion for Super.
|
||
(Eval_Attribute): Add entry for Super.
|
||
* sem_attr.ads: Add entry for Super.
|
||
* sem_util.adb (Is_Aliased_View, Is_Variable): Add case to handle
|
||
references to 'Super.
|
||
* snames.ads-tmpl: Register Name_Super and Attribute_Super.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-16 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_util.ads (Check_Function_Writable_Actuals): Fix comment.
|
||
|
||
2024-05-16 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Case_Expression): Add length check
|
||
insertion.
|
||
* exp_ch4.adb (Expand_N_Case_Expression): Add handling of nodes
|
||
known to raise Constraint_Error.
|
||
|
||
2024-05-16 Sebastian Poeplau <poeplau@adacore.com>
|
||
|
||
* adaint.c: New defines for STANDALONE mode.
|
||
|
||
2024-05-16 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
|
||
If the spec is not present for a subprogram body then
|
||
check if the body definiton was created for a protected
|
||
procedure.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_cg.adb (Generate_CG_Output): Remove code for ignored ghost
|
||
entities that applied to subprogram calls.
|
||
(Register_CG_Node): Skip ignored ghost entities, both calls
|
||
and tagged types, when they are registered.
|
||
|
||
2024-05-16 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* checks.adb (Apply_Selected_Length_Checks): Fix reason code.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.adb (Raise_From_Controlled_Operation): New
|
||
declaration of imported procedure moved from...
|
||
(Finalize_Master): ...there.
|
||
(Finalize): Call Raise_From_Controlled_Operation instead of
|
||
Reraise_Occurrence to propagate the exception, if any.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch4.adb (Analyze_If_Expression): Add guard for
|
||
if_expression without an ELSE part.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch13.adb (Expand_N_Free_Statement): After analysis, the
|
||
new temporary has the type of its Object_Definition and the new
|
||
occurrence of this temporary has this type as well; simplify.
|
||
* sem_util.adb
|
||
(Indirect_Temp_Value): Remove redundant call to Set_Etype;
|
||
simplify.
|
||
(Is_Access_Type_For_Indirect_Temp): Add missing body header.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Is_Known_On_Entry): Check whether condition and
|
||
dependent expressions of an if_expression are known on entry.
|
||
|
||
2024-05-16 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* checks.ads: Fix comments.
|
||
* checks.adb: Likewise.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.ads: Add use type clause for Storage_Offset.
|
||
(Header_Alignment): Turn into an expression function.
|
||
(Header_Size): Likewise.
|
||
* libgnat/s-finpri.adb: Remove use type clause for Storage_Offset.
|
||
(Header_Alignment): Delete.
|
||
(Header_Size): Likewise.
|
||
|
||
2024-05-16 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* exp_ch7.adb (Unnest_Loop::Fixup_Inner_Scopes): detect a new
|
||
problematic pattern and fixup the scope accordingly.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix typo.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.ads (Header_Alignment): New function.
|
||
(Header_Size): Adjust description.
|
||
(Master_Node): Put Finalize_Address as first component.
|
||
(Collection_Node): Likewise.
|
||
* libgnat/s-finpri.adb (Header_Alignment): New function.
|
||
(Header_Size): Return the object size in storage units.
|
||
* libgnat/s-stposu.ads (Adjust_Controlled_Dereference): Replace
|
||
collection node with header in description.
|
||
* libgnat/s-stposu.adb (Adjust_Controlled_Dereference): Likewise.
|
||
(Allocate_Any_Controlled): Likewise. Pass the maximum of the
|
||
specified alignment and that of the header to the allocator.
|
||
(Deallocate_Any_Controlled): Likewise to the deallocator.
|
||
|
||
2024-05-16 Viljar Indus <indus@adacore.com>
|
||
|
||
* exp_aggr.adb (Two_Pass_Aggregate_Expansion):
|
||
Explicitly create new Defining_Iterators for both
|
||
of the loops.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch6.adb (Check_Private_Overriding): Implement the second part
|
||
of RM 3.9.3(10) consistently in both cases.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* erroutc.adb (Set_Msg_Insertion_Reserved_Word): Fix casing for
|
||
CUDA appearing in error message strings.
|
||
(Set_Msg_Str): Likewise for CUDA being a part of a Name_Id.
|
||
|
||
2024-05-16 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Composite_Equality): Call Error_Msg_N
|
||
instead of Error_Msg.
|
||
|
||
2024-05-16 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): Further tweaking
|
||
of the point where a compiler-generated Put_Image or streaming
|
||
subprogram is to be inserted in the tree. If one such subprogram
|
||
calls another (as is often the case with, for example, Put_Image
|
||
procedures for composite type and for a component type thereof),
|
||
then we want to avoid use-before-definition problems that can
|
||
result from inserting the caller ahead of the callee.
|
||
|
||
2024-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.ads (Lock_Type): New modular type.
|
||
(Collection_Node): Add Enclosing_Collection component.
|
||
(Finalization_Collection): Add Lock component.
|
||
* libgnat/s-finpri.adb: Add clauses for System.Atomic_Primitives.
|
||
(Attach_Object_To_Collection): Lock and unlock the collection.
|
||
Save a pointer to the enclosing collection in the node.
|
||
(Detach_Object_From_Collection): Lock and unlock the collection.
|
||
(Finalize): Likewise.
|
||
(Initialize): Initialize the lock.
|
||
(Lock_Collection): New procedure.
|
||
(Unlock_Collection): Likewise.
|
||
|
||
2024-05-16 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Expand existing checks for
|
||
generic formal types for which Is_Generic_Type returns False. In
|
||
that case, mark the attribute reference as nonstatic.
|
||
|
||
2024-05-16 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_util.adb (Copy_Node_With_Replacement): Add call to
|
||
Copy_Dimensions so that any dimension information associated with
|
||
the copied node is also associated with the resulting copy.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gen_il-gen-gen_nodes.adb (N_Procedure_Specification): Remove
|
||
Aspect_Specifications field.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
|
||
reuse existing constant where possible.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
|
||
reuse existing constant where possible.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id): Fix ordering.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Move case alternative to match
|
||
to alphabetic order.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix casing
|
||
(this primarily fixes a style, because the capitalization will
|
||
not be preserved by the error-reporting machinery anyway).
|
||
* sem_ch13.adb (Analyze_User_Aspect_Aspect_Specification): Fix
|
||
casing in error message.
|
||
|
||
2024-05-16 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
|
||
documentation.
|
||
* sem_prag.adb: Fix comments.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-14 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* aspects.ads (Aspect_Id, Boolean_Aspect): Change categorization
|
||
of Boolean-valued SPARK aspects.
|
||
* sem_ch13.adb (Analyze_Aspect_Specification): Adapt CASE
|
||
statements to new classification of Boolean-valued SPARK
|
||
aspects.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_ch13.adb (Validate_Unchecked_Conversions): Add node
|
||
parameters to Error_Msg calls.
|
||
|
||
2024-05-14 Marc Poulhiès <poulhies@adacore.com>
|
||
|
||
* sem_util.adb: Typo fix in comment.
|
||
* exp_aggr.adb: Likewise.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Finalization Management): Add a short description of
|
||
the implementation of finalization chains.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Move the first call to
|
||
Build_Allocate_Deallocate_Proc up to before the accessibility check.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* errout.adb (Validate_Specific_Warnings): Adapt to record
|
||
definition change.
|
||
* erroutc.adb (Set_Specific_Warning_On, Set_Specific_Warning_Off,
|
||
Warning_Specifically_Suppressed): Likewise.
|
||
* erroutc.ads: Change record definition.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Default_Initialization): Do not generate the
|
||
protection for finalization collections.
|
||
(Build_Heap_Or_Pool_Allocator): Set the No_Initialization flag on
|
||
the declaration of the temporary.
|
||
* exp_ch4.adb (Build_Aggregate_In_Place): Do not build an allocation
|
||
procedure here.
|
||
(Expand_Allocator_Expression): Build an allocation procedure, if it
|
||
is required, only just before rewriting the allocator.
|
||
(Expand_N_Allocator): Do not build an allocation procedure if the
|
||
No_Initialization flag is set on the allocator, except for those
|
||
generated for special return objects. In other cases, build an
|
||
allocation procedure, if it is required, only before rewriting
|
||
the allocator.
|
||
* exp_ch7.ads (Make_Address_For_Finalize): New function declaration.
|
||
* exp_ch7.adb (Finalization Management): Update description for
|
||
dynamically allocated objects.
|
||
(Make_Address_For_Finalize): Remove declaration.
|
||
(Find_Last_Init): Change to function and move to...
|
||
(Process_Object_Declaration): Adjust to above change.
|
||
* exp_util.ads (Build_Allocate_Deallocate_Proc): Add Mark parameter
|
||
with Empty default and document it.
|
||
(Find_Last_Init): New function declaration.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Add Mark parameter
|
||
with Empty default and pass it in recursive call. Deal with type
|
||
conversions created for interface types. Adjust call sequence to
|
||
Allocate_Any_Controlled by changing Collection to In/Out parameter
|
||
and removing Finalize_Address parameter. For a controlled object,
|
||
generate a conditional call to Attach_Object_To_Collection for an
|
||
allocation and to Detach_Object_From_Collection for a deallocation.
|
||
(Find_Last_Init): ...here. Compute the initialization type for an
|
||
allocator whose designating type is class wide specifically and also
|
||
handle concurrent types.
|
||
* rtsfind.ads (RE_Id): Add RE_Attach_Object_To_Collection and
|
||
RE_Detach_Object_From_Collection.
|
||
(RE_Unit_Table): Add entries for RE_Attach_Object_To_Collection and
|
||
RE_Detach_Object_From_Collection.
|
||
* libgnat/s-finpri.ads (Finalization_Started): Delete.
|
||
(Attach_Node_To_Collection): Likewise.
|
||
(Detach_Node_From_Collection): Move to...
|
||
(Attach_Object_To_Collection): New procedure declaration.
|
||
(Detach_Object_From_Collection): Likewise.
|
||
(Finalization_Collection): Remove Atomic for Finalization_Started.
|
||
Add pragma Inline for Initialize.
|
||
* libgnat/s-finpri.adb: Add clause for Ada.Unchecked_Conversion.
|
||
(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
|
||
(Detach_Node_From_Collection): ...here.
|
||
(Attach_Object_To_Collection): New procedure.
|
||
(Detach_Object_From_Collection): Likewise.
|
||
(Finalization_Started): Delete.
|
||
(Finalize): Replace allocation with attachment in comments.
|
||
* libgnat/s-stposu.ads (Allocate_Any_Controlled): Rename parameter
|
||
Context_Subpool into Named_Subpool, parameter Context_Collection
|
||
into Collection and change it to In/Out, and remove Fin_Address.
|
||
* libgnat/s-stposu.adb: Remove clause for Ada.Unchecked_Conversion
|
||
and Finalization_Primitives.
|
||
(To_Collection_Node_Ptr): Delete.
|
||
(Allocate_Any_Controlled): Rename parameter Context_Subpool into
|
||
Named_Subpool, parameter Context_Collection into Collection and
|
||
change it to In/Out, and remove Fin_Address. Do not lock/unlock
|
||
and do not attach the object, instead only displace its address.
|
||
(Deallocate_Any_Controlled): Do not lock/unlock and do not detach
|
||
the object.
|
||
(Header_Size_With_Padding): Use qualified name for Header_Size.
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): If a subprogram
|
||
associated with a (library-level) type declared in another unit is
|
||
to be inserted somewhere in a list, then insert it at the head of
|
||
the list.
|
||
* sem_ch5.adb (Analyze_Assignment): Normally a limited-type
|
||
assignment is illegal. Relax this rule if Comes_From_Source is
|
||
False and the type is not immutably limited.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* errout.ads (Error_Msg): Add node parameter.
|
||
* errout.adb (Error_Msg): Add parameter and pass it to
|
||
the underlying call.
|
||
* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
|
||
pragma node when emitting errors.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* styleg.ads (Check_Xtra_Parens_Precedence): Moved ...
|
||
* style.ads (Check_Xtra_Parens_Precedence): ... here. Also
|
||
replace corresponding renaming.
|
||
* styleg.adb (Check_Xtra_Parens_Precedence): Moved ...
|
||
* style.adb (Check_Xtra_Parens_Precedence): here. Also use
|
||
Errout.Error_Msg and pass it a node parameter.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.ads (Convert_Aggr_In_Allocator): Rename Alloc into N,
|
||
replace Decl with Temp and adjust description.
|
||
(Convert_Aggr_In_Object_Decl): Alphabetize.
|
||
(Is_Delayed_Aggregate): Likewise.
|
||
* exp_aggr.adb (Convert_Aggr_In_Allocator): Rename Alloc into N
|
||
and replace Decl with Temp. Allocate a list only when neeeded.
|
||
(Convert_Array_Aggr_In_Allocator): Replace N with Decl and insert
|
||
new code before it.
|
||
* exp_ch4.adb (Build_Aggregate_In_Place): New procedure nested in
|
||
Expand_Allocator_Expression.
|
||
(Expand_Allocator_Expression): Call it to build aggregates in place.
|
||
Remove second parameter in calls to Build_Allocate_Deallocate_Proc.
|
||
(Expand_N_Allocator): Likewise.
|
||
* exp_ch13.adb (Expand_N_Free_Statement): Likewise.
|
||
* exp_util.ads (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
|
||
parameter.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
|
||
parameter and replace it with local variable of same name. Delete
|
||
useless pattern matching.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* usage.adb (Usage): Fix enabled-by-default indicators.
|
||
|
||
2024-05-14 Philippe Gil <gil@adacore.com>
|
||
|
||
* libgnat/s-win32.ads (LocalFileTimeToFileTime): Swap parameters.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* restrict.adb (Violation_Of_No_Dependence): Tweak error
|
||
reporting calls.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Adapt call to new signature.
|
||
* erroutc.ads (Set_Specific_Warning_Off): change signature
|
||
and update documentation.
|
||
(Validate_Specific_Warnings): Move ...
|
||
* errout.adb: ... here and change signature. Also move body
|
||
of Validate_Specific_Warnings from erroutc.adb.
|
||
(Finalize): Adapt call.
|
||
* errout.ads (Set_Specific_Warning_Off): Adapt signature of
|
||
renaming.
|
||
* erroutc.adb (Set_Specific_Warning_Off): Adapt signature and
|
||
body.
|
||
(Validate_Specific_Warnings): Move to the body of Errout.
|
||
(Warning_Specifically_Suppressed): Adapt body.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Array_Aggr_Code): Pass N in the call to
|
||
Build_Initialization_Call.
|
||
(Build_Record_Aggr_Code): Likewise.
|
||
(Convert_Aggr_In_Object_Decl): Likewise.
|
||
(Initialize_Discriminants): Likewise.
|
||
* exp_ch3.ads (Build_Initialization_Call): Replace Loc witn N.
|
||
* exp_ch3.adb (Build_Array_Init_Proc): Pass N in the call to
|
||
Build_Initialization_Call.
|
||
(Build_Default_Initialization): Likewise.
|
||
(Expand_N_Object_Declaration): Likewise.
|
||
(Build_Initialization_Call): Replace Loc witn N parameter and add
|
||
Loc local variable. Build a default subtype for an allocator of
|
||
a discriminated type with defaulted discriminants.
|
||
(Build_Record_Init_Proc): Pass the declaration of components in the
|
||
call to Build_Initialization_Call.
|
||
* exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): Pass the
|
||
allocator in the call to Build_Initialization_Call.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo.
|
||
|
||
2024-05-14 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_util.adb (Find_Hook_Context): Exclude N_*Aggregate Nkinds
|
||
of Parent (Par) from the early return in the second loop of the
|
||
In_Cond_Expr case, to prevent returning an aggregate from this
|
||
function rather than the enclosing declaration or statement.
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb: Replace 6 "not Present" tests with equivalent calls to "No".
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): Examine the Expression
|
||
field after the call to Default_Initialize_Object in order to set
|
||
Is_Known_Null, as well as Is_Known_Non_Null, on an access object.
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb: Change name of package Cached_Streaming_Ops to
|
||
reflect the fact that it is now also used for Put_Image
|
||
procedures. Similarly change other "Streaming_Op" names therein.
|
||
Add Validate_Cached_Candidate procedure to detect case where a
|
||
subprogram found in the cache cannot be reused. Add new generic
|
||
procedure Build_And_Insert_Type_Attr_Subp; the "Build" part is
|
||
handled by just calling a formal procedure; the bulk of this
|
||
(generic) procedure's code has to with deciding where in the tree
|
||
to insert the newly-constructed subprogram. Replace each later
|
||
"Build" call (and the following Insert_Action or
|
||
Compile_Stream_Body_In_Scope call) with a declare block that
|
||
instantiates and then calls this generic procedure. Delete the
|
||
now-unused procedure Compile_Stream_Body_In_Scope. A constructed
|
||
subprogram is entered in the appropriate cache if the
|
||
corresponding type is untagged; this replaces more complex tests.
|
||
A new function Interunit_Ref_OK is added to determine whether an
|
||
attribute reference occuring in one unit can safely refer to a
|
||
cached subprogram declared in another unit.
|
||
* exp_ch3.adb (Build_Predefined_Primitive_Bodies): A formal
|
||
parameter was deleted, so delete the corresponding actual in a
|
||
call.
|
||
* exp_put_image.adb (Build_Array_Put_Image_Procedure): Because the
|
||
procedure being built may be referenced more than once, the
|
||
generated procedure takes its source position info from the type
|
||
declaration instead of the (first) attribute reference.
|
||
(Build_Record_Put_Image_Procedure): Likewise.
|
||
* exp_put_image.ads (Build_Array_Put_Image_Procedure): Eliminate
|
||
now-unused Nod parameter.
|
||
(Build_Record_Put_Image_Procedure): Eliminate now-unused Loc parameter.
|
||
* sem_ch3.adb (Constrain_Discriminated_Type): For declaring a
|
||
subtype with a discriminant constraint, ignore privacy if
|
||
Comes_From_Source is false (as is already done if Is_Instance is
|
||
true).
|
||
* sem_res.adb (Resolve): When passed two type entities that have
|
||
the same underlying base type, Sem_Type.Covers may return False in
|
||
some cases because of privacy. [This can happen even if
|
||
Is_Private_Type returns False both for Etype (N) and for Typ;
|
||
Covers calls Base_Type, which can take a non-private argument and
|
||
yield a private result.] If Comes_From_Source (N) is False
|
||
(e.g., for a compiler-generated Put_Image or streaming subprogram), then
|
||
avoid that scenario by not calling Covers. Covers already has tests for
|
||
doing this sort of thing (see the calls therein to Full_View_Covers),
|
||
but the Comes_From_Source test is too coarse to apply there. So instead
|
||
we handle the problem here at the call site.
|
||
(Original_Implementation_Base_Type): A new function. Same as
|
||
Implementation_Base_Type except if the Original_Node attribute of
|
||
a non-derived type declaration indicates that it once was a derived
|
||
type declaration. Needed for looking through privacy.
|
||
(Valid Conversion): Ignore privacy when converting between different views
|
||
of the same type if Comes_From_Source is False for the conversion.
|
||
(Valid_Tagged_Conversion): An ancestor-to-descendant conversion is not an
|
||
illegal downward conversion if there is no type extension involved
|
||
(because the derivation was from an untagged view of the parent type).
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch5.adb (Analyze_Case_Statement): Emit a message and return
|
||
early in the case where general case statements are allowed but
|
||
the selector expression is of a private type. This is done to
|
||
avoid a bugbox.
|
||
|
||
2024-05-14 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_util.adb (Set_Referenced_Modified): Use Original_Node to
|
||
avoid recursive calls on expanded / internal objects such that
|
||
source nodes get appropriately marked as referenced.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_warn.adb (Warn_On_Overlapping_Actuals): Stop ignoring
|
||
warning suppression settings.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass the alignment
|
||
parameter in the inner call for a secondary stack allocation too.
|
||
|
||
2024-05-14 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch10.adb (Install_Inherited_Policy_Pragmas): New subprogram.
|
||
(Remove_Inherited_Policy_Pragmas): New subprogram.
|
||
(Analyze_Compilation_Unit): Call the new subprograms to
|
||
install and remove inherited assertion policy pragmas.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch4.adb (Expand_N_If_Expression): Set No_Initialization on the
|
||
declaration of the temporary in the by-reference case.
|
||
* exp_util.adb (Initialized_By_Access): Delete.
|
||
(Is_Allocated): Likewise.
|
||
(Initialized_By_Reference): New predicate.
|
||
(Is_Finalizable_Transient): If the transient object is of an access
|
||
type, do not return true unless it is initialized by a reference.
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* exp_attr.adb: Move computation of Accum_Typ entirely into the
|
||
function Build_Stat.
|
||
|
||
2024-05-14 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch12.ads: Declare new Instance_Context package, which
|
||
declares a private type Context with operations Save_And_Reset and
|
||
Restore.
|
||
* sem_ch12.adb: Provide body for new Instance_Context package.
|
||
* rtsfind.adb (Load_RTU): Wrap an Instance_Context Save/Restore
|
||
call pair around the call to Semantics.
|
||
* table.ads: Add initial value for Last_Val (because
|
||
Save_And_Reset expects Last_Val to be initialized).
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_aggr.adb (Build_Record_Aggr_Code): Replace reference to
|
||
Build_Task_Allocate_Block_With_Init_Stmts in comment with reference
|
||
to Build_Task_Allocate_Block.
|
||
(Convert_Aggr_In_Allocator): Likewise for the call in the code.
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
|
||
* exp_ch3.ads: Alphabetize clauses.
|
||
(Build_Default_Initialization): New function declaration.
|
||
(Build_Default_Simple_Initialization): Likewise.
|
||
(Build_Initialization_Call): Add Target_Ref parameter with default.
|
||
* exp_ch3.adb (Build_Default_Initialization): New function extracted
|
||
from...
|
||
(Build_Default_Simple_Initialization): Likewise.
|
||
(Build_Initialization_Call): Add Target_Ref parameter with default.
|
||
(Expand_N_Object_Declaration): ...here.
|
||
(Default_Initialize_Object): Call Build_Default_Initialization and
|
||
Build_Default_Simple_Initialization.
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Minor comment tweaks.
|
||
(Expand_N_Allocator): Call Build_Default_Initialization and
|
||
Build_Default_Simple_Initialization to implement the default
|
||
initialization of the allocated object.
|
||
* exp_ch9.ads (Build_Task_Allocate_Block): Delete.
|
||
(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
|
||
(Build_Task_Allocate_Block): ...this.
|
||
* exp_ch9.adb: Remove clauses for Exp_Tss.
|
||
(Build_Task_Allocate_Block): Delete.
|
||
(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
|
||
(Build_Task_Allocate_Block): ...this.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove unnecessary
|
||
initialization expression, adjust commentary and replace early exit
|
||
with assertion.
|
||
* sem_ch4.adb (Analyze_Allocator): In the null-exclusion case, call
|
||
Apply_Compile_Time_Constraint_Error to insert the raise.
|
||
|
||
2024-05-14 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* styleg.ads (Check_Boolean_Operator): Moved ...
|
||
* style.ads (Check_Boolean_Operator): ... here.
|
||
* styleg.adb (Check_Boolean_Operator): Moved ...
|
||
* style.adb (Check_Boolean_Operator): ... here. Also add node
|
||
parameter to call to Errout.Error_Msg.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sprint.adb (Sprint_Node_Actual) <N_Raise_Statement>: Be prepared
|
||
for an empty Name.
|
||
<N_Raise_When_Statement>: Likewise.
|
||
|
||
2024-05-14 Yannick Moy <moy@adacore.com>
|
||
|
||
* contracts.adb: Fix references to SPARK RM rules.
|
||
* freeze.adb: Same.
|
||
* ghost.adb: Fix references to SPARK RM rules.
|
||
(Check_Ghost_Context): Update checking of references to
|
||
ghost entities in assertion expressions.
|
||
* sem_ch6.adb: Fix references to SPARK RM rules.
|
||
* sem_prag.adb: Same.
|
||
|
||
2024-05-14 Yannick Moy <moy@adacore.com>
|
||
|
||
* ghost.adb (Mark_And_Set_Ghost_Instantiation): Fix the current
|
||
Ghost policy for the instantiation.
|
||
|
||
2024-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Default_Initialize_Object): Return immediately when
|
||
either Has_Init_Expression or No_Initialization is set on the node.
|
||
Tidy up the rest of the code accordingly.
|
||
(Simple_Initialization_OK): Do not test Has_Init_Expression here.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* accessibility.adb: Remove clauses for Exp_Ch3.
|
||
* exp_ch3.ads (Init_Proc_Level_Formal): Move declaration to...
|
||
* exp_ch3.adb (Init_Proc_Level_Formal): Move body to...
|
||
* exp_util.ads (Init_Proc_Level_Formal): ...here.
|
||
(Inside_Init_Proc): Alphabetize.
|
||
* exp_util.adb (Init_Proc_Level_Formal): ...here.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Is_Potentially_Unevaluated): Remove code for
|
||
recovering the original structure of expressions with AND THEN.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Attribute_22): Remove Put_Image and Object_Size.
|
||
* sem_attr.ads (Attribute_Imp_Def): Restore Object_Size.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb: Adjust the description of finalization management.
|
||
(Build_Finalizer): Rename scope master into master throughout.
|
||
* rtsfind.ads (RE_Id): Replace RE_Finalization_Scope_Master with
|
||
RE_Finalization_Master.
|
||
(RE_Unit_Table): Replace entry for RE_Finalization_Scope_Master with
|
||
entry for RE_Finalization_Master.
|
||
* libgnat/s-finpri.ads (Finalization_Scope_Master): Rename into...
|
||
(Finalization_Master): ...this.
|
||
(Attach_Object_To_Master): Adjust to above renaming.
|
||
(Chain_Node_To_Master): Likewise.
|
||
(Finalize_Master): Likewise.
|
||
* libgnat/s-finpri.adb (Attach_Object_To_Master): Likewise.
|
||
(Chain_Node_To_Master): Likewise.
|
||
(Finalize_Master): Likewise.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-imaged.ads (System.Image_D): Add Uns formal parameter.
|
||
* libgnat/s-imaged.adb: Add with clauses for System.Image_I,
|
||
System.Value_I_Spec and System.Value_U_Spec.
|
||
(Uns_Spec): New instance of System.Value_U_Spec.
|
||
(Int_Spec): New instance of System.Value_I_Spec.
|
||
(Image_I): New instance of System.Image_I.
|
||
(Set_Image_Integer): New renaming.
|
||
(Set_Image_Decimal): Replace 'Image with call to Set_Image_Integer.
|
||
* libgnat/s-imde32.ads (Uns32): New subtype.
|
||
(Impl): Pass Uns32 as second actual paramter to Image_D.
|
||
* libgnat/s-imde64.ads (Uns64): New subtype.
|
||
(Impl): Pass Uns64 as second actual paramter to Image_D.
|
||
* libgnat/s-imde128.ads (Uns128): New subtype.
|
||
(Impl): Pass Uns128 as second actual paramter to Image_D.
|
||
* libgnat/s-imagef.adb (Set_Image_Fixed): Document bounds for the
|
||
A, D and AF local constants.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Attribute_22): Add Put_Image and Object_Size.
|
||
* sem_attr.ads (Attribute_Imp_Def): Remove Object_Size.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* aspects.adb (Copy_Aspects): Style fix.
|
||
* contracts.adb (Analyze_Contracts): Style fix.
|
||
(Save_Global_References_In_Contract): Remove extra guards.
|
||
* par_sco.adb (Traverse_Aspects): Move guard to the caller and
|
||
make it consistent with Save_Global_References_In_Contract.
|
||
* sem_ch12.adb (Has_Contracts): Remove extra guards.
|
||
* sem_ch3.adb (Delayed_Aspect_Present, Get_Partial_View_Aspect,
|
||
Check_Duplicate_Aspects): Likewise.
|
||
* sem_disp.adb (Check_Dispatching_Operation): Likewise.
|
||
|
||
2024-05-13 Bob Duff <duff@adacore.com>
|
||
|
||
* errout.adb (Output_Messages): Protect against the total going
|
||
negative.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* contracts.adb (Append_Enabled_Item): Remove use of Split_PPC;
|
||
simplify.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Remove flag definition.
|
||
* gen_il-gen-gen_nodes.adb (N_Aspect_Specification, N_Pragma):
|
||
Remove Split_PPC flags.
|
||
* gen_il-internals.adb (Image): Remove use of Split_PPC.
|
||
* par_sco.adb (Traverse_Aspects): Likewise.
|
||
* sem_ch13.adb (Make_Aitem_Pragma): Likewise.
|
||
* sem_ch6.adb (List_Inherited_Pre_Post_Aspects): Likewise.
|
||
* sem_prag.adb (Analyze_Pre_Post_Condition, Analyze_Pragma,
|
||
Find_Related_Declaration_Or_Body): Likewise.
|
||
* sem_util.adb (Applied_On_Conjunct): Likewise.
|
||
* sinfo.ads: Remove flag documentation.
|
||
* treepr.adb (Image): Remove use of Split_PPC.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch6.adb (Append_Message): Build the location string from
|
||
scratch and not rely on the one produced while splitting the
|
||
aspect into pragmas.
|
||
* exp_prag.adb (Expand_Pragma_Check): Split pre/post checks in
|
||
expansion.
|
||
* sem_ch13.adb (Analyze_Aspect_Specification): Don't split
|
||
pre/post expressions into conjuncts; don't add message with
|
||
location to the corresponding pragma.
|
||
* sem_prag.adb (Build_Pragma_Check_Equivalent): Inherited
|
||
pragmas no longer have messages that would need to be updated.
|
||
* sinput.adb (Build_Location_String): Adjust to keep previous
|
||
messages while using with inherited pragmas.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* contracts.adb (Inherit_Subprogram_Contract): Fix style.
|
||
* sem_ch5.adb (Analyze_Iterator_Specification): Likewise.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Has_No_Output): Iteration with
|
||
First_Formal/Next_Formal involves Entity_Ids.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): When processing pragma
|
||
Lock_Free, check if restriction No_Implementation_Pragmas is
|
||
enabled.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* gen_il-fields.ads (Opt_Field_Enum):
|
||
Remove Is_Expanded_Contract from the list of flags.
|
||
* gen_il-gen-gen_nodes.adb (N_Contract): Remove
|
||
Is_Expanded_Contract from the list of N_Contract fields.
|
||
* sinfo.ads (Is_Expanded_Contract): Remove comments for the flag
|
||
and its single occurrence in N_Contract.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch9.adb (Build_Protected_Subprogram_Body,
|
||
Build_Protected_Subprogram_Call_Cleanup): Reuse refactored
|
||
routine.
|
||
* sem_util.adb
|
||
(Has_Enabled_Aspect): Refactored repeated code.
|
||
(Is_Static_Function): Reuse refactored routine.
|
||
* sem_util.ads (Has_Enabled_Aspect):
|
||
New query routine refactored from repeated code.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch9.adb (Build_Protected_Subprogram_Call_Cleanup): If
|
||
aspect Exclusive_Functions is present then the cleanup of a
|
||
protected function now services queued entries, just like the
|
||
cleanup of a protected procedure.
|
||
|
||
2024-05-13 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_util.ads (Append_Entity_Name): Fix comment to reflect new
|
||
semantics. The comment said, "The qualification stops at an
|
||
enclosing scope has no source name (block or loop)." There seems
|
||
to be no reason for stopping; instead, we should SKIP things with
|
||
no source name. And the "loop" part was wrong.
|
||
* sem_util.adb (Append_Entity_Name): Do not stop the recursion;
|
||
skip to next-outer scope instead. Misc cleanup/simplification.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.adb (Finalize): Replace "master" by "collection"
|
||
in comments and add a comment about the form of the loop.
|
||
* libgnat/s-stposu.adb (Allocate_Any_Controlled): Tweak comment.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-finmas$(objext).
|
||
* einfo.ads (Anonymous_Masters): Rename into Anonymous_Collections.
|
||
(Finalization_Master): Rename into Finalization_Collection.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Replace Anonymous_Masters
|
||
with Anonymous_Collections; and Finalization_Master with
|
||
Finalization_Collection.
|
||
* gen_il-gen-gen_entities.adb (Access_Kind): Likewise.
|
||
(E_Function): Likewise.
|
||
(E_Procedure): Likewise.
|
||
(E_Package): Likewise.
|
||
(E_Subprogram_Body): Likewise.
|
||
* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Adjust to renamings.
|
||
(Freeze_Type): Likewise.
|
||
(Stream_Operation_OK): Remove obsolete test.
|
||
* exp_ch4.adb (Expand_Allocator_Expression): Adjust to renamings.
|
||
(Expand_N_Allocator): Likewise.
|
||
* exp_ch6.ads (BIP_Formal_Kind): Replace BIP_Finalization_Master
|
||
with BIP_Collection.
|
||
(Needs_BIP_Finalization_Master): Rename into...
|
||
(Needs_BIP_Collection): ...this.
|
||
* exp_ch6.adb (BIP_Finalization_Master_Suffix): Delete.
|
||
(BIP_Collection_Suffix): New constant string.
|
||
(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Rename to
|
||
(Add_Collection_Actual_To_Build_In_Place_Call): ...this and adjust.
|
||
(BIP_Formal_Suffix): Replace BIP_Finalization_Master alternative
|
||
with BIP_Collection alternative.
|
||
(BIP_Suffix_Kind): Replace test on BIP_Finalization_Master_Suffix
|
||
with test on BIP_Collection_Suffix.
|
||
(Is_Build_In_Place_Entity): Likewise.
|
||
(Make_Build_In_Place_Call_In_Allocator): Call Needs_BIP_Collection
|
||
and Add_Collection_Actual_To_Build_In_Place_Call.
|
||
(Make_Build_In_Place_Call_In_Anonymous_Context): Likewise.
|
||
(Make_Build_In_Place_Call_In_Assignment): Likewise.
|
||
(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
|
||
(Needs_BIP_Finalization_Master): Rename into...
|
||
(Needs_BIP_Collection): ...this.
|
||
(Needs_BIP_Alloc_Form): Call Needs_BIP_Collection.
|
||
* exp_ch7.ads (Build_Anonymous_Master): Rename into...
|
||
(Build_Anonymous_Collection): ...this.
|
||
(Build_Finalization_Master): Rename into...
|
||
(Build_Finalization_Collection): ...this.
|
||
* exp_ch7.adb (Allows_Finalization_Master): Rename into...
|
||
(Allows_Finalization_Collection): ...this.
|
||
(Build_BIP_Cleanup_Stmts): Adjust to renamings.
|
||
(Build_Anonymous_Master): Rename into...
|
||
(Build_Anonymous_Collection): ...this. Adjust to renamings.
|
||
(Build_Finalization_Master): Rename into...
|
||
(Build_Finalization_Collection): ...this. Adjust to renamings.
|
||
(Build_Finalizer): Adjust comment to renamings.
|
||
* exp_ch13.adb (Expand_N_Free_Statement): Adjust to renamings.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Likewise.
|
||
(Requires_Cleanup_Actions): Adjust comment to renamings.
|
||
* freeze.adb (Freeze_All): Likewise.
|
||
* rtsfind.ads (RTU_Id): Remove System_Finalization_Masters.
|
||
(RE_Id): Remove RE_Finalization_Master & RE_Finalization_Master_Ptr
|
||
add RE_Finalization_Collection & RE_Finalization_Collection_Ptr.
|
||
Adjust RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
|
||
(RE_Unit_Table): Remove entries for RE_Finalization_Master &
|
||
RE_Finalization_Master_Ptr, add ones for RE_Finalization_Collection
|
||
& RE_Finalization_Collection_Ptr. Also adjust those of
|
||
RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
|
||
* sem_ch3.adb (Access_Type_Declaration): Adjust to renamings.
|
||
* sem_ch6.adb (Create_Extra_Formals): Likewise.
|
||
* sem_util.adb (Designated_Subtype_Mark): Likewise.
|
||
* libgnat/s-finpri.ads: Add clauses for Ada.Finalization and
|
||
System.Storage_Elements.
|
||
(Finalization_Collection): New limited controlled type.
|
||
(Finalization_Collection_Ptr): Likewise.
|
||
(Initialize): New overriding procedure.
|
||
(Finalize): Likewise.
|
||
(Finalization_Started): Likewise.
|
||
(Collection_Node): New type.
|
||
(Collection_Node_Ptr): Likewise.
|
||
(Attach_Node_To_Collection): New procedure.
|
||
(Detach_Node_From_Collection): Likewise.
|
||
(Header_Size): New function.
|
||
(Add_Offset_To_Address): Likewise.
|
||
* libgnat/s-finpri.adb (Add_Offset_To_Address): New function.
|
||
(Attach_Node_To_Collection): New procedure.
|
||
(Detach_Node_From_Collection): Likewise.
|
||
(Finalization_Started): Likewise.
|
||
(Finalize): New overriding procedure.
|
||
(Header_Size): New function.
|
||
(Initialize): New overriding procedure.
|
||
* libgnat/s-spsufi.ads (Finalize_And_Deallocate): Adjust comment.
|
||
* libgnat/s-spsufi.adb: Remove clause for Finalization_Masters and
|
||
add clause for Finalization_Primitives.
|
||
(Finalize_And_Deallocate): Finalize the Collection component.
|
||
* libgnat/s-stposu.ads: Remove clause for Finalization_Masters and
|
||
add clause for Finalization_Primitives.
|
||
(Root_Subpool): Replace Master component with Collection.
|
||
(Allocate_Any_Controlled): Replace Context_Master parameter with
|
||
Context_Collection parameter.
|
||
* libgnat/s-stposu.adb: Remove clauses for Finalization_Masters and
|
||
add clauses for Finalization_Primitives.
|
||
(Address_To_FM_Node_Ptr): Delete.
|
||
(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
|
||
(Adjust_Controlled_Dereference): Adjust comment to renamings.
|
||
(Allocate_Any_Controlled): Replace Context_Master parameter with
|
||
Context_Collection parameter. Adjust to renamings.
|
||
(Deallocate_Any_Controlled): Adjust to renamings.
|
||
(Print_Subpool): Likewise.
|
||
* libgnat/s-finmas.ads: Delete.
|
||
* libgnat/s-finmas.adb: Likewise.
|
||
|
||
2024-05-13 Ashley Gay <gay@adacore.com>
|
||
|
||
* Makefile.rtl: remove i-vxinco.* from the build
|
||
* doc/gnat_rm/the_gnat_library.rst: Remove i-vxinco.ads from
|
||
the units documentation.
|
||
* impunit.adb: Remove i-vxinco from the list of available units
|
||
in GNATstudio.
|
||
* libgnarl/i-vxinco.adb: Remove.
|
||
* libgnarl/i-vxinco.ads: Ditto.
|
||
* libgnarl/s-interr__vxworks.adb: enrich comment
|
||
* libgnarl/s-vxwext__kernel.ads: fix comment
|
||
* libgnat/i-vxwork.ads: Remove deprecated interrupt connections
|
||
API, as well as an example.
|
||
* libgnat/i-vxwork__x86.ads: Ditto and add the paragma
|
||
Obscolescent to Attach_Handler
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Use the BIPstoragepool
|
||
formal parameter to retrieve the pool in the presence of a master.
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Always pass
|
||
a pool reference along with the master reference.
|
||
(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
|
||
* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use the BIPstoragepool
|
||
formal parameter to retrieve the pool in the presence of a master.
|
||
(Create_Anonymous_Master): Do not call Set_Base_Pool.
|
||
(Build_Finalization_Master): Likewise.
|
||
* rtsfind.ads (RE_Id): Remove RE_Base_Pool and RE_Set_Base_Pool.
|
||
(RE_Unit_Table): Remove associated entries.
|
||
* libgnat/s-finmas.ads: Remove clause for System.Storage_Pools.
|
||
(Any_Storage_Pool_Ptr): Delete.
|
||
(Finalization_Master): Remove Base_Pool component.
|
||
(Base_Pool): Delete.
|
||
(Set_Base_Pool): Likewise.
|
||
* libgnat/s-finmas.adb (Base_Pool): Likewise.
|
||
(Set_Base_Pool): Likewise.
|
||
(Print_Master): Do not print Base_Pool.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
|
||
Rename Pool_Actual into Pool_Exp and use Empty as default value.
|
||
(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Change the
|
||
names of the first two parameters and use a simpler code structure.
|
||
(Make_Build_In_Place_Call_In_Allocator): Rename the local variable
|
||
for the pool actual and set it to Empty if it is not used.
|
||
(Make_Build_In_Place_Call_In_Object_Declaration): Rename the local
|
||
variable for the master actual.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_N_Object_Declaration): In the case of a
|
||
return object of a BIP function that needs finalization, save
|
||
the assignment statement made to initialize it, if any.
|
||
* exp_ch6.ads (BIP_Formal_Kind): Adjust description.
|
||
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Make a
|
||
couple of adjustments to the commentary.
|
||
(Needs_BIP_Alloc_Form): Also return true if the function needs
|
||
a BIP_Finalization_Master parameter.
|
||
* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove now always true
|
||
test on Needs_BIP_Alloc_Form.
|
||
(Attach_Object_To_Master_Node): Remove duplication in comment.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Get_Index_Bounds): Guard against missing Entity,
|
||
which happens on illegal constrained type declaration.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_attr.adb (Eval_Attribute): Treat Alignment like Component_Size
|
||
for array types.
|
||
|
||
2024-05-13 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_case.adb: Replace all tests of Core_Extensions_Allowed with
|
||
corresponding tests of All_Extensions_Allowed.
|
||
* sem_ch5.adb: Likewise.
|
||
* doc/gnat_rm/gnat_language_extensions.rst: update documentation.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_ch13.adb (New_Put_Image_Subprogram): In the nondeferred case
|
||
coming from an aspect and for a type with delaying freezing, also
|
||
freeze the subprogram immediately.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* libgnat/a-direct.adb (Start_Search_Internal): Combine subtype
|
||
and object declaration.
|
||
* libgnat/g-dirope.adb (Read): Replace convoluted unchecked
|
||
conversion with an overlay.
|
||
|
||
2024-05-13 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* libgnat/g-dirope.adb (Read): Use null-excluding,
|
||
access-to-constant type; replace element-by-element copy with
|
||
array assignments.
|
||
|
||
2024-05-13 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Move determination of
|
||
whether the aggregate is an indexed aggregate earlier in the
|
||
procedure. Test Is_Indexed_Aggregate as a criterion for generating
|
||
a call to the container type's New_Indexed function, add proper
|
||
computation of bounds to pass in to the function, and remove later
|
||
code for generating such a call. Add and improve comments.
|
||
(Aggregate_Size): Remove special treatment of case where there is
|
||
exactly one component association, and instead loop over all
|
||
component associations to determine whether any of them have a
|
||
nonstatic length. If there is at least one such nonstatic
|
||
association, return -1.
|
||
(Build_Siz_Exp): Accumulate a sum of the sizes of each of the
|
||
component associations in Siz_Exp (which will only be used if
|
||
there any associations that are of Nkind
|
||
N_Iterated_Component_Association with a nonstatic range).
|
||
(Expand_Range_Component): Fix typos in the procedure's spec
|
||
comment and block comment.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_util.adb (Number_Of_Elements_In_Array): Fix counting of
|
||
elements in null arrays; remove redundant parenthesis; avoid
|
||
run-time conversion of 1 to universal integer.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count,
|
||
Increment_Primary_Stack_Count, Increment_Sec_Stack_Count,
|
||
Unit_Record): Stack counts are never negative.
|
||
* ali.ads (Unit_Record): Likewise.
|
||
* bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise.
|
||
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise.
|
||
* sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array):
|
||
Likewise.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Do not look for
|
||
tasks inside record discriminants; remove avoid repeated call to
|
||
Has_Task that happened for record components.
|
||
(Expand_N_Object_Declaration): Use high-level routine to detect
|
||
array types and subtypes; remove unused initial values.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_aggr.ads (Static_Array_Aggregate): Fix typo in comment.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Has_Single_Return): Remove redundant check for
|
||
empty list, because First works also for empty list.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_ch4.adb (Useful): Remove redundant check for empty list,
|
||
because iteration with First works also for empty list; rename
|
||
local variable from L to Action.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Has_Formal_With_Per_Object_Constrained_Component):
|
||
Use flag Has_Per_Object_Constraint which is set by analysis;
|
||
rename for consistency.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Access_Attribute): Replace loop with
|
||
Current_Scope_No_Loops.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Access_Attribute): Move code to IF
|
||
branch where its result is used.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Access_Attribute): Prevent search from
|
||
going too far.
|
||
* sem_ch3.adb (Analyze_Component_Declaration): Remove
|
||
Contains_POC; reuse Has_Discriminant_Dependent_Constraint.
|
||
|
||
2024-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Pending_Access_Types): Delete.
|
||
* exp_ch3.adb (Freeze_Type.Process_Pending_Access_Types): Likewise.
|
||
(Freeze_Type): Do not call Process_Pending_Access_Types.
|
||
* exp_ch7.ads (Make_Set_Finalize_Address_Call): Delete.
|
||
* exp_ch7.adb (Build_Finalization_Master.Add_Pending_Access_Type):
|
||
Delete.
|
||
(Build_Finalization_Master): Do not set Finalize_Address on the
|
||
master or call Add_Pending_Access_Type.
|
||
(Make_Set_Finalize_Address_Call): Delete.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Remove Pending_Access_Types.
|
||
* gen_il-gen-gen_entities.adb (Type_Kind): Likewise.
|
||
* rtsfind.ads (RE_Id): Remove RE_Set_Finalize_Address.
|
||
(RE_Unit_Table): Likewise.
|
||
* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not deal with
|
||
pending access types.
|
||
* libgnat/s-finmas.ads (Attach_Unprotected): Add Finalize_Address
|
||
second parameter.
|
||
(Delete_Finalize_Address_Unprotected): Delete.
|
||
(Finalize_Address): Likewise.
|
||
(Finalize_Address_Unprotected): Likewise.
|
||
(Is_Homogeneous): Likewise.
|
||
(Set_Finalize_Address): Likewise.
|
||
(Set_Finalize_Address_Unprotected): Likewise.
|
||
(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
|
||
(Set_Is_Heterogeneous): Likewise.
|
||
(FM_Node): Add Finalize_Address component.
|
||
(Finalization_Master): Remove Is_Homogeneous and Finalize_Address
|
||
components.
|
||
* libgnat/s-finmas.adb: Remove with & use clauses for System.HTable.
|
||
(Finalize_Address_Table): Delete.
|
||
(Attach_Unprotected): Add Finalize_Address second parameter and save
|
||
its value in the Finalize_Address field of the node.
|
||
(Delete_Finalize_Address_Unprotected): Delete.
|
||
(Finalize): Call Finalize_Address saved in the nodes.
|
||
(Finalize_Address): Delete.
|
||
(Finalize_Address_Unprotected): Likewise.
|
||
(Hash): Likewise.
|
||
(Is_Homogeneous): Likewise.
|
||
(Print_Master): Adjust.
|
||
(Set_Finalize_Address): Delete.
|
||
(Set_Finalize_Address_Unprotected): Likewise.
|
||
(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
|
||
(Set_Is_Heterogeneous): Likewise.
|
||
* libgnat/s-stposu.adb (Finalize_Address_Table_In_Use): Likewise.
|
||
(Allocate_Any_Controlled): Pass Fin_Address to Attach_Unprotected
|
||
and remove obsolete processing.
|
||
(Deallocate_Any_Controlled): Remove obsolete processing.
|
||
(Set_Pool_Of_Subpool): Do not call Set_Is_Heterogeneous.
|
||
|
||
2024-05-07 Joffrey Huguet <huguet@adacore.com>
|
||
|
||
* libgnat/a-ngelfu.ads (Sqrt): Add Global contracts.
|
||
(Log): Likewise.
|
||
(Exp): Likewise.
|
||
("**"): Likewise.
|
||
(Sin): Likewise.
|
||
(Cos): Likewise.
|
||
(Tan): Likewise.
|
||
(Cot): Likewise.
|
||
(Arcsin): Likewise.
|
||
(Arccos): Likewise.
|
||
(Arctan): Likewise.
|
||
(Arccot): Likewise.
|
||
(Sinh): Likewise.
|
||
(Cosh): Likewise.
|
||
(Tanh): Likewise.
|
||
(Coth): Likewise.
|
||
(Arcsinh): Likewise.
|
||
(Arccosh): Likewise.
|
||
(Arctanh): Likewise.
|
||
(Arccoth): Likewise.
|
||
|
||
2024-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Postconditions_Proc): Delete.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Remove Postconditions_Proc.
|
||
* gen_il-gen-gen_entities.adb (E_Function): Likewise.
|
||
(E_Procedure): Likewise.
|
||
(E_Entry): Likewise.
|
||
(E_Entry_Family): Likewise.
|
||
|
||
2024-05-07 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sinfo.ads: Fix typo.
|
||
|
||
2024-05-07 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_attr.adb (Attribute_Old): The 'Old attribute we are
|
||
processing here is in a postcondition, which cannot be inside the
|
||
"Wrapped_Statements" of the subprogram with that postcondition. So
|
||
remove the loop labeled "Climb the parent chain looking for
|
||
subprogram _Wrapped_Statements". The only way this loop could find
|
||
a Subp is if we are nested inside a subprogram that also has a
|
||
postcondition, and in that case we would find the wrong (outer)
|
||
one. In any case, Subp is set to Empty after the loop, so all
|
||
subsequent tests for Present (Subp) are necessarily False; remove
|
||
them and the corresponding code. Set Ins_Node unconditionally (to
|
||
the right thing). Remove obsolete comments.
|
||
* sem_util.adb (Determining_Expressions): Fix assertion;
|
||
Pragma_Test_Case was missing.
|
||
(Eligible_For_Conditional_Evaluation): Fix assert that could fail
|
||
in case of errors.
|
||
* libgnat/s-valspe.ads: Remove pragma Unevaluated_Use_Of_Old;
|
||
there are no uses of 'Old in this package.
|
||
|
||
2024-05-07 Yannick Moy <moy@adacore.com>
|
||
|
||
* libgnat/a-strsea.adb (Index): Add assertions.
|
||
* libgnat/a-strsup.ads ("="): Remove useless precondition.
|
||
* libgnat/s-aridou.adb (Prove_Rounding_Case): Add assertions.
|
||
(Lemma_Shift_Right): Add call to lemma.
|
||
* libgnat/s-arit32.adb (Prove_Rounding_Case): Add assertion.
|
||
(Prove_ Signs): Add assertions.
|
||
(Scaled_Divide32): Add assertions.
|
||
|
||
2024-05-07 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Pragma): Restructure the loop over
|
||
possible resolutions of a No_Return pragma's argument so that
|
||
functions (and generic functions) are not processed until after it
|
||
is known whether there is a non-function candidate resolution. For
|
||
a pre-2022 Ada version, terminate the iteration before processing
|
||
functions if a non-function resolution is found.
|
||
|
||
2024-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/g-socthi.ads (C_Bind): Turn into inline function.
|
||
(C_Getpeername): Likewise.
|
||
(C_Getsockname): Likewise.
|
||
(C_Getsockopt): Likewise.
|
||
(C_Setsockopt): Likewise.
|
||
(Nonreentrant_Gethostbyaddr): Likewise.
|
||
* libgnat/g-socthi.adb (Syscall_Accept): Adjust profile.
|
||
(Syscall_Connect): Likewise.
|
||
(Syscall_Recvfrom): Likewise.
|
||
(Syscall_Sendto): Likewise.
|
||
(C_Bind): New function.
|
||
(C_Accept): Adjust to above change for profiles.
|
||
(C_Connect): Likewise.
|
||
(C_Getpeername): New function.
|
||
(C_Getsockname): Likewise.
|
||
(C_Getsockopt): Likewise.
|
||
(C_Recvfrom): Adjust to above change for profiles.
|
||
(C_Setsockopt): New function.
|
||
(Nonreentrant_Gethostbyaddr): Likewise.
|
||
|
||
2024-05-07 Bob Duff <duff@adacore.com>
|
||
|
||
* par-ch3.adb (P_Component_Items): Move P_Aspect_Specifications
|
||
into the loop, so aspects can be attached to multiple component
|
||
declarations.
|
||
(P_Type_Declaration, P_Subtype_Declaration)
|
||
(P_Known_Discriminant_Part_Opt): Remove default for Semicolon in
|
||
calls to P_Aspect_Specifications.
|
||
* gen_il-gen-gen_nodes.adb (N_Discriminant_Specification): Add
|
||
Aspect_Specifications field to N_Discriminant_Specification, which
|
||
was missing.
|
||
* aspects.adb (Has_Aspect_Specifications_Flag): Make it True for
|
||
N_Discriminant_Specification.
|
||
* par-ch13.adb: Remove default for Semicolon in calls to
|
||
P_Aspect_Specifications.
|
||
(Get_Aspect_Specifications): Misc cleanup.
|
||
(P_Aspect_Specifications): Remove comment. It's not clear what
|
||
"the flag" is referring to, but anyway the first part of the
|
||
comment is obvious, and the second part is apparently obsolete.
|
||
Misc cleanup.
|
||
* par.adb (P_Aspect_Specifications, Get_Aspect_Specifications):
|
||
Remove default for Semicolon; calls are more readable that way.
|
||
Improve comments.
|
||
* par-ch12.adb: Remove default for Semicolon in calls to
|
||
P_Aspect_Specifications.
|
||
* par-ch6.adb: Likewise.
|
||
* par-ch7.adb: Likewise.
|
||
* par-ch9.adb: Likewise.
|
||
* par-endh.adb: Likewise.
|
||
|
||
2024-05-07 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): Better
|
||
handle itypes such that the tree copy required for the expansion
|
||
of the pragma doesn't cause ordering problems with internal names.
|
||
|
||
2024-05-07 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_res.adb (Resolve_Actuals): Add range check flag.
|
||
|
||
2024-05-07 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_util.adb (Find_Placement_In_State_Space): Stop search for
|
||
placement when reaching the public state of a generic package.
|
||
|
||
2024-05-07 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch3.adb (Check_Return_Subtype_Indication): Add missing check
|
||
on statically compatible subtypes.
|
||
* sem_eval.adb (Subtypes_Statically_Compatible): Ensure that both
|
||
types are either scalar types or access types to evaluate this
|
||
predicate.
|
||
|
||
2024-05-07 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Resolve_Name): Clarify comment.
|
||
|
||
2024-05-07 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch13.adb (Resolve_Name): This is called only for names in
|
||
aspect_specifications. If the name is an overloaded
|
||
selected_component, reset the Entity. Note that this was already
|
||
done for N_Identifier in the code just below.
|
||
|
||
2024-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* repinfo.adb (List_Record_Info.List_Structural_Record_Layout): Add
|
||
another guard for private types after retrieving the parent in the
|
||
extension case.
|
||
|
||
2024-05-07 Yannick Moy <moy@adacore.com>
|
||
|
||
* sem_util.adb (Is_Volatile_Function): Return True on functions
|
||
with side effects.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Analyze_Global_Item): Handle side-effect
|
||
functions like procedures.
|
||
|
||
2024-05-07 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Collect_Global_Item): Update comment.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Collect_Global_Item): Handle functions with
|
||
side-effects.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Collect_Global_Item): Move code.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_prag.adb (Find_Role): Handle functions with side-effects
|
||
like procedures.
|
||
|
||
2024-05-06 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_ch6.adb
|
||
(Make_Build_In_Place_Iface_Call_In_Object_Declaration): Set the
|
||
Is_Return_Object flag on the entity of the temp object created to
|
||
hold the BIP call result, from the flag on the passed-in object
|
||
declaration's entity. Update copyright notice to 2024.
|
||
|
||
2024-05-06 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch10.adb (Expand_With_Clause): Misc cleanup.
|
||
(Install_Private_With_Clauses): Avoid installing a private
|
||
with_clause that comes from an instantiated generic
|
||
(it is marked as Implicit_With, but doesn't come from a parent
|
||
with). Fix typo in comment, and other minor cleanups.
|
||
|
||
2024-05-06 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* sem_util.adb (Build_Default_Subtype): Tweak source location
|
||
information.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not call
|
||
Processing_Actions for simple protected objects if the profile is
|
||
restricted.
|
||
* exp_util.adb (Requires_Cleanup_Actions): Do not return True for
|
||
simple protected objects if the profile is restricted.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fe.h: Remove unused declarations and add 'extern' to others.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* einfo-utils.adb (Is_Relaxed_Initialization_State): Remove.
|
||
* einfo-utils.ads (Is_Relaxed_Initialization_State): Remove.
|
||
* einfo.ads: Remove description of removed aspect.
|
||
* fe.h (Is_Relaxed_Initialization_State): Remove.
|
||
* sem_prag.adb (Analyze_Abstract_State): Remove support for
|
||
Relaxed_Initialization.
|
||
* sem_util.adb (Has_Relaxed_Initialization): Likewise.
|
||
* sem_util.ads (Has_Relaxed_Initialization): Likewise.
|
||
|
||
2024-05-06 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_warn.adb (Within_Postcondition): Add coverage for
|
||
Preconditions
|
||
|
||
2024-05-06 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_warn.adb (Within_Postcondition): Add/modify comments to
|
||
document various cases.
|
||
|
||
2024-05-06 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_warn.adb (Within_Postcondition): Renamed to
|
||
Within_Contract_Or_Predicate.
|
||
|
||
2024-05-06 Justin Squirek <squirek@adacore.com>
|
||
|
||
* sem_warn.adb (Within_Postcondition): Add case to ignore
|
||
references within generated predicate function calls.
|
||
|
||
2024-05-06 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* hostparm.ads: Fix reference to RM clause.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-finpri.ads (Finalize_Master): Remove obsolete reference
|
||
in the description.
|
||
(Finalize_Object): Document the effects of repeated calls.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* einfo.ads (Finalization_Master_Node_Or_Object): Rename into...
|
||
(Finalization_Master_Node): ...this and adjust description.
|
||
* exp_ch4.adb (Process_Transient_In_Expression): Attach the object
|
||
to its master node here.
|
||
* exp_ch7.ads (Attach_Object_To_Master_Node): New declaration.
|
||
* exp_ch7.adb (Attach_Object_To_Master_Node): New procedure.
|
||
(Build_Finalizer.Process_Declarations): Examine the type of a
|
||
variable to spot master nodes.
|
||
(Build_Finalizer.Process_Object_Declaration): Look only at the
|
||
object and deal specifically with the case of a master node.
|
||
(Build_Finalizer.Build_BIP_Cleanup_Stmts): Move to child function
|
||
of Attach_Object_To_Master_Node.
|
||
(Build_Finalizer.Make_Address_For_Finalize): Move to...
|
||
(Insert_Actions_In_Scope_Around.Process_Transient_In_Scope): Attach
|
||
the object to its master node here.
|
||
(Make_Address_For_Finalize): ...here.
|
||
(Make_Master_Node_Declaration): Adjust to above renaming and set
|
||
Finalization_Master_Node only on the object.
|
||
(Make_Suppress_Object_Finalize_Call): Adjust to above renaming and
|
||
attach the object to its master node here.
|
||
* exp_util.adb (Requires_Cleanup_Actions): Examine the type of a
|
||
variable to spot master nodes.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming.
|
||
* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
|
||
* rtsfind.ads (RE_Id): Add RE_Chain_Node_To_Master.
|
||
(RE_Unit_Table): Add entry for RE_Chain_Node_To_Master.
|
||
* libgnat/s-finpri.ads (Chain_Node_To_Master): New declaration.
|
||
* libgnat/s-finpri.adb (Chain_Node_To_Master): New procedure.
|
||
(Attach_Object_To_Master): Call it.
|
||
(Finalize_Master): Do not raise Program_Error on null addresses.
|
||
(Finalize_Object): Add assertion that the address is not null.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnarl/s-taprob.ads (Protection): Add cross-reference to the
|
||
counterpart in System.Tasking.Protected_Objects.Entries.
|
||
* libgnarl/s-taskin.ads (Locking Rules): Replace PO_Simple by
|
||
Protected_Objects.
|
||
* libgnarl/s-tpoben.ads (Protection_Entries): Likewise.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
|
||
Return 0 if the prefix is a dereference of an access value subject
|
||
to the No_Heap_Finalization pragma.
|
||
|
||
2024-05-06 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* exp_imgv.adb (Append_Table_To): Remove reference to removed
|
||
field.
|
||
* gen_il-fields.ads: Remove Is_Enum_Array_Aggregate field.
|
||
* gen_il-gen-gen_nodes.adb: Likewise.
|
||
* sem_aggr.adb: Tweak warning emission condition.
|
||
* sinfo.ads: Remove documentation for Is_Enum_Array_Aggregate.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* make.adb (Scan_Make_Arg): Remove redundant condition.
|
||
* switch-b.adb (Scan_Debug_Switches): Likewise.
|
||
* switch-c.adb (Scan_Front_End_Switches): Likewise.
|
||
|
||
2024-05-06 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard.
|
||
|
||
2024-05-06 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_pakd.adb (Create_Packed_Array_Impl_Type): Set associated
|
||
node for the packed array itype.
|
||
* exp_util.adb (Possible_Side_Effect_In_SPARK): Remove
|
||
workaround for a missing associated node.
|
||
|
||
2024-05-06 Richard Kenner <kenner@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Entity): When changing the convention of
|
||
primitive to match that of the type, only do this for user-specified
|
||
primitives.
|
||
|
||
2024-05-06 Bob Duff <duff@adacore.com>
|
||
|
||
* exp_put_image.adb (Build_Image_Call): Call Set_Uses_Sec_Stack on
|
||
the current scope. We don't do this at all call sites, because
|
||
there are three; better to do it here.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_attr.adb (Analyze_Attribute) <Attribute_Round>: Also accept it
|
||
for ordinary fixed point types.
|
||
* doc/gnat_rm/implementation_defined_attributes.rst (Round): New.
|
||
* gnat_rm.texi: Regenerate.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Use No instead of
|
||
not Present.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Adjust
|
||
the Sloc of the master node declaration in the degenerate case.
|
||
|
||
2024-05-06 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Call_Can_Be_Inlined_In_GNATprove_Mode):
|
||
Add case to prevent inlining of call.
|
||
* inline.ads: Likewise.
|
||
* sem_res.adb (Resolve_Call): Update comment and message.
|
||
|
||
2024-05-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-finpri$(objext).
|
||
* contracts.adb (Add_Call_Helper): Append freeze actions to the
|
||
class-wide type rather than the specific tagged type.
|
||
* einfo.ads (Finalization_Master_Node_Or_Node): Document.
|
||
(Status_Flag_Or_Transient_Decl): Remove.
|
||
* exp_attr.adb (Expand_N_Attribute_Reference) <Address>: Do not
|
||
adjust a return object of a class-wide interface type.
|
||
* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add test that
|
||
Finalize_Address is not already present as a condition for calling
|
||
Make_Finalize_Address_Body.
|
||
(Expand_Freeze_Record_Type): Call Make_Finalize_Address_Body for
|
||
class-wide types of both regular tagged types and interface types.
|
||
* exp_ch4.adb (Process_Transients_In_Expression): Replace the use
|
||
of hooks with the use of master nodes.
|
||
* exp_ch6.adb (Build_Flag_For_Function): Delete.
|
||
(Expand_N_Extended_Return_Statement): Create a master node for the
|
||
return object if it does not exist. At the end of the statement,
|
||
generate a call to Suppress_Object_Finalize.
|
||
(Expand_Non_Function_Return): Likewise just before the return.
|
||
* exp_ch7.ads (Make_Master_Node_Declaration): Declare.
|
||
(Make_Suppress_Object_Finalize_Call): Likewise.
|
||
* exp_ch7.adb (Build_Finalization_Master): Defer generating the
|
||
call to Set_Finalize_Address until freezing if the Finalize_Address
|
||
procedure has not been analyzed yet.
|
||
(Build_Finalizer): Reimplement the expansion using a finalization
|
||
scope master per finalizer.
|
||
(Insert_Actions_In_Scope_Around): Replace finalization hooks by
|
||
master nodes and calls to the Finalize_Object.
|
||
(Make_Master_Node_Declaration): New procedure.
|
||
(Make_Suppress_Object_Finalize_Call): Likewise.
|
||
* exp_util.ads (Build_Transient_Object_Statements): Delete.
|
||
* exp_util.adb (Build_Transient_Object_Statements): Likewise.
|
||
(Requires_Cleanup_Actions): Remove obsolete code and return true
|
||
for master nodes.
|
||
* gen_il-fields.ads (Opt_Field_Enum): Add
|
||
Finalization_Master_Node_Or_Object and
|
||
remove Status_Flag_Or_Transient_Decl.
|
||
* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
|
||
* rtsfind.ads (RTU_Id): Add System_Finalization_Primitives.
|
||
(RE_Id): Add entities of System_Finalization_Primitives.
|
||
(RE_Unit_Table): Add entries for them.
|
||
* sem_ch3.adb (Analyze_Object_Declaration): For an array whose type
|
||
has an unconstrained first subtype and a controlled component, set
|
||
the Is_Constr_Array_Subt_With_Bounds flag.
|
||
* libgnat/s-finpri.ads: New file.
|
||
* libgnat/s-finpri.adb: Likewise.
|
||
|
||
2024-05-06 Yannick Moy <moy@adacore.com>
|
||
|
||
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Adapt checking.
|
||
|
||
2024-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gnatvsn.ads: Bump Library_Version to 15.
|
||
|
||
2024-04-15 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_aspects.rst
|
||
(Exceptional_Cases): Add description for aspect.
|
||
* doc/gnat_rm/implementation_defined_pragmas.rst
|
||
(Exceptional_Cases): Add description for pragma.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-03-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/113979
|
||
* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
|
||
call Apply_Predicate_Check on the resulting access value if needed.
|
||
|
||
2024-02-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/113893
|
||
* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
|
||
for a local designated type.
|
||
* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
|
||
to false if no finalization master is attached to an access type
|
||
and assert that it is anonymous in this case.
|
||
* sem_res.adb (Resolve_Allocator): Mention that the object might
|
||
not be finalized at all in the warning given when the type is an
|
||
anonymous access-to-controlled type.
|
||
|
||
2024-01-23 Ronan Desplanques <desplanques@adacore.com>
|
||
|
||
* gnatvsn.ads: Update year.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
|
||
TYPE_CANONICAL of types when it comes to aliasing.
|
||
* gcc-interface/utils.cc (relate_alias_sets): Likewise.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
|
||
separate FLD local variable to hold the first field of the fat
|
||
pointer type being built.
|
||
* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
|
||
the first two parameters.
|
||
* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.
|
||
|
||
2024-01-09 Viljar Indus <indus@adacore.com>
|
||
|
||
* sem_attr.adb: avoid marking a use of the Address attribute
|
||
as a modification of its prefix.
|
||
|
||
2024-01-09 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
|
||
tests to tests using "No" (in two places).
|
||
|
||
2024-01-09 Bob Duff <duff@adacore.com>
|
||
|
||
* sem_ch12.adb (Instantiate_Type): Make the relevant error message
|
||
conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
|
||
cleanup.
|
||
|
||
2024-01-09 Gary Dismukes <dismukes@adacore.com>
|
||
|
||
* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
|
||
whether the aggregate is an indexed aggregate, setting a flag
|
||
(Is_Indexed_Aggregate), which is tested to have proper separation
|
||
of treatment for the Add_Unnamed
|
||
(for positional aggregates) and New_Indexed (for indexed
|
||
aggregates) cases. In the code generating associations for indexed
|
||
aggregates, remove the code for Expressions cases entirely, since
|
||
the code for indexed aggregates is governed by the presence of
|
||
Component_Associations, and add an assertion that Expressions must
|
||
be Empty. Also, exclude empty aggregates from entering that code.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* rtsfind.ads (RE_Id): Remove RE_Attach.
|
||
(RE_Unit_Table): Likewise.
|
||
* libgnat/s-finmas.ads (Attach): Delete.
|
||
* libgnat/s-finmas.adb (Attach): Likewise.
|
||
|
||
2024-01-09 Tucker Taft <taft@adacore.com>
|
||
|
||
* pprint.adb (List_Name): Check for "Box_Present" when displaying
|
||
a list, and emit "<>" if returns True.
|
||
* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
|
||
parameter is from a package that was mentioned in a limited with
|
||
clause, and make no further checks, since this check routine does
|
||
not have all the logic to check such a usage.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
|
||
with itypes that are class-wide subtypes.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
|
||
(Atomic_Store_8): New instantiated procedure.
|
||
(Atomic_Store_16): Likewise.
|
||
(Atomic_Store_32): Likewise.
|
||
(Atomic_Store_64): Likewise.
|
||
* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
|
||
(Atomic_Store_8): New instantiated procedure.
|
||
(Atomic_Store_16): Likewise.
|
||
(Atomic_Store_32): Likewise.
|
||
* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
|
||
support for __atomic_store_n and __sync_bool_compare_and_swap_n.
|
||
* gcc-interface/gigi.h (list_second): New inline function.
|
||
|
||
2024-01-09 Javier Miranda <miranda@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
|
||
the type of the formals with its corresponding record in
|
||
init-procs.
|
||
* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
|
||
a procedure that denotes a renaming of an entry.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
|
||
itype declarations.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
|
||
flag by default in GNATprove mode.
|
||
* sem_res.adb (Resolve_Call): Only look at flag which is cleared
|
||
when inlined subprogram is detected to be recursive.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
|
||
Remove detection of recursive calls.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
|
||
dead code.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
|
||
* sem_ch8.adb (Find_Direct_Name): Likewise.
|
||
|
||
2024-01-09 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_util.adb (Enclosing_Declaration): Instead of returning a
|
||
subprogram specification node, return its parent (which is
|
||
presumably a subprogram declaration).
|
||
* contracts.adb (Insert_Stable_Property_Check): Remove code
|
||
formerly needed to compensate for incorrect behavior of
|
||
Sem_Util.Enclosing_Declaration.
|
||
* exp_attr.adb (In_Available_Context): Remove code formerly needed
|
||
to compensate for incorrect behavior of
|
||
Sem_Util.Enclosing_Declaration.
|
||
* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
|
||
needed to compensate for incorrect behavior of
|
||
Sem_Util.Enclosing_Declaration.
|
||
|
||
2024-01-09 Steve Baird <baird@adacore.com>
|
||
|
||
* sem_ch8.adb (Check_Constrained_Object): Before updating the
|
||
subtype mark of an object renaming declaration by calling Rewrite,
|
||
first check whether the destination of the Rewrite call exists.
|
||
* atree.adb (Copy_Slots): Return without performing any updates if
|
||
Destination equals Empty or Error, or if Source equals Empty. Any
|
||
of those conditions indicates an error case.
|
||
* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
|
||
errors.
|
||
* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
|
||
not pass Error as destination in a call to Rewrite.
|
||
(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
|
||
or Empty as destination in a call to Rewrite.
|
||
|
||
2024-01-09 Joffrey Huguet <huguet@adacore.com>
|
||
|
||
* libgnat/i-cstrin.ads (Update): Fix precondition.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
|
||
call to Transform_BIP_Assignment as well as the procedure.
|
||
|
||
2024-01-09 Bob Duff <duff@adacore.com>
|
||
|
||
* lib-xref.adb (Generate_Reference): Do not count it as a read
|
||
reference if we're calling a TSS.
|
||
|
||
2024-01-09 Piotr Trojanek <trojanek@adacore.com>
|
||
|
||
* doc/gnat_rm/implementation_defined_aspects.rst,
|
||
doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
|
||
Always_Terminates.
|
||
* gnat-style.texi: Regenerate.
|
||
* gnat_rm.texi: Regenerate.
|
||
* gnat_ugn.texi: Regenerate.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/78207
|
||
* libgnat/g-regexp.ads: Fix outdated comment.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/112781
|
||
* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
|
||
* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
|
||
(Is_Function_Call_With_BIP_Formals): New predicate.
|
||
(Is_Build_In_Place_Function_Call): Restore original semantics.
|
||
(Expand_Call_Helper): Adjust conditions guarding the calls to
|
||
Add_Dummy_Build_In_Place_Actuals to above renaming.
|
||
(Expand_N_Extended_Return_Statement): Adjust to above renaming.
|
||
(Expand_Simple_Function_Return): Likewise. Move the assertion
|
||
to after the transformation into an extended return statement.
|
||
(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
|
||
(Make_Build_In_Place_Call_In_Assignment): Likewise.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR ada/112781
|
||
* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
|
||
consistently to retrieve the ancestor for a derived type.
|
||
* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
|
||
consistently before accessing Designated_Type.
|
||
|
||
2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
|
||
assertion for regular pointer types.
|
||
|
||
2024-01-04 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gcc-interface/lang.opt.urls: New file, autogenerated by
|
||
regenerate-opt-urls.py.
|
||
|
||
2024-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gnat_ugn.texi: Bump @copying's copyright year.
|
||
* gnat_rm.texi: Likewise.
|
||
|
||
|
||
Copyright (C) 2024 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.
|