mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 12:00:11 -05:00
800 lines
30 KiB
Plaintext
800 lines
30 KiB
Plaintext
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.
|
||
no-issue-check
|
||
|
||
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.
|