|
|
|
@ -1,3 +1,305 @@
|
|
|
|
|
2020-06-08 Steve Baird <baird@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
|
|
|
|
|
appropriate call to Set_Restriction_No_Dependence if Ada_Version
|
|
|
|
|
>= Ada2012 and Profile is either Ravenscar or a GNAT-defined
|
|
|
|
|
Ravenscar variant (i.e., not Jorvik).
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch5.adb: Fix typo.
|
|
|
|
|
* sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
|
|
|
|
|
the prefix of a prefixed view must be renamable as an object.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_cat.ads: Fix typo.
|
|
|
|
|
* sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
|
|
|
|
|
handling of N_Attribute_Definition_Clause.
|
|
|
|
|
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
|
|
|
|
|
Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
|
|
|
|
|
Storage_Pool.
|
|
|
|
|
* sem_attr.adb, exp_ch4.adb: Update comments.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Justin Squirek <squirek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch4.adb (Analyze_One_Call): Add extra condition to the
|
|
|
|
|
predicate for deciding when a given controlled call is visible.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
|
|
|
|
|
changes in frontend expander.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch13.adb (All_Membership_Choices_Static): Fix style.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Steve Baird <baird@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-rident.ads: Add Jorvik to the Profile_Name
|
|
|
|
|
enumeration type. Add an element for Jorvik to the array
|
|
|
|
|
aggregate that is the initial value of the constant
|
|
|
|
|
Profile_Info.
|
|
|
|
|
* targparm.adb (Get_Target_Parameters): Handle "pragma Profile
|
|
|
|
|
(Jorvik);" similarly to "pragma Profile (Ravenscar);".
|
|
|
|
|
* snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
|
|
|
|
|
Ravenscar, Jorvik is not a pragma name and has no corresponding
|
|
|
|
|
element in the Pragma_Id enumeration type; this means that its
|
|
|
|
|
declaration must not occur between those of First_Pragma_Name
|
|
|
|
|
and Last_Pragma_Name.
|
|
|
|
|
* sem_prag.adb (Analyze_Pragma): Add call to
|
|
|
|
|
Set_Ravenscar_Profile for Jorvik, similar to the existing calls
|
|
|
|
|
for Ravenscar and the GNAT Ravenscar variants.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
|
|
|
|
|
to go through N_Qualified_Expression and N_Type_Conversion. Fix
|
|
|
|
|
another case of wrong usage of E_Anonymous_Access_Type instead
|
|
|
|
|
of Anonymous_Access_Kind.
|
|
|
|
|
* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
|
|
|
|
|
on the original node.
|
|
|
|
|
(Is_Aliased_View): Take into account N_Qualified_Expression.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_eval.adb (Eval_Type_Conversion): Fix handling of
|
|
|
|
|
enumeration to integer conversions.
|
|
|
|
|
* exp_attr.adb (Expand_N_Attribute_Reference
|
|
|
|
|
[Attribute_Enum_Rep]): Remove special casing for first-level
|
|
|
|
|
renaming, best left to the general folding mechanism via
|
|
|
|
|
Eval_Type_Conversion.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
|
|
|
|
|
* checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
|
|
|
|
|
(Insert_Range_Checks): Likewise and remove default value of
|
|
|
|
|
Static_Loc parameter.
|
|
|
|
|
* checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
|
|
|
|
|
Do not test and set Has_Dynamic_Range_Check.
|
|
|
|
|
(Insert_Range_Checks): Likewise and remove default value of
|
|
|
|
|
Static_Loc parameter.
|
|
|
|
|
* csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
|
|
|
|
|
do not handle Has_Dynamic_Range_Check.
|
|
|
|
|
* exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
|
|
|
|
|
in call to Insert_Range_Checks.
|
|
|
|
|
* sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
|
|
|
|
|
with Has_Dynamic_Range_Check.
|
|
|
|
|
(Process_Range_Expr_In_Decl): Remove argument in calls to
|
|
|
|
|
Insert_Range_Checks and Append_Range_Checks.
|
|
|
|
|
* sinfo.ads (Has_Dynamic_Range_Check): Delete.
|
|
|
|
|
(Set_Has_Dynamic_Range_Check): Likewise.
|
|
|
|
|
* sinfo.adb (Has_Dynamic_Range_Check): Delete.
|
|
|
|
|
(Set_Has_Dynamic_Range_Check): Likewise.
|
|
|
|
|
* treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Steve Baird <baird@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch13.ads: Export new function
|
|
|
|
|
All_Membership_Choices_Static.
|
|
|
|
|
* sem_ch13.adb: Implement new function
|
|
|
|
|
All_Membership_Choices_Static. This involves moving the
|
|
|
|
|
functions Is_Static_Choice and All_Membership_Choices_Static,
|
|
|
|
|
which were previously declared within the function
|
|
|
|
|
Is_Predicate_Static, out to library level so that they can be
|
|
|
|
|
called by the new function. The already-exisiting code in
|
|
|
|
|
Is_Predicate_Static which became the body of
|
|
|
|
|
All_Membership_Choices_Static is replaced with a call to the new
|
|
|
|
|
function in order to avoid duplication.
|
|
|
|
|
* exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
|
|
|
|
|
implement rules of AI12-0290 and RM D.7's definition of
|
|
|
|
|
"pure-barrier-eligible". These changes include adding a call to
|
|
|
|
|
the new function Sem_13.All_Membership_Choices_Static, as per
|
|
|
|
|
the "see 4.9" in RM D.7(1.6/5).
|
|
|
|
|
|
|
|
|
|
2020-06-08 Richard Kenner <kenner@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_unst.adb (Visit_Node): When visiting array attribute
|
|
|
|
|
nodes, in addition to checking the type of Get_Referenced_Object
|
|
|
|
|
of the prefix, also check the actual type of the prefix.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Gary Dismukes <dismukes@adacore.com>
|
|
|
|
|
|
|
|
|
|
* checks.adb (Apply_Predicate_Check): Refine test for being in a
|
|
|
|
|
subprogram body to account for no Corresponding_Body case,
|
|
|
|
|
avoiding blowups arising due to other changes here.
|
|
|
|
|
* exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
|
|
|
|
|
checks, if any, after constraint checks are applied.
|
|
|
|
|
* sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
|
|
|
|
|
Check_Failure_Is_Error formal for conditionalizing warning vs.
|
|
|
|
|
error messages.
|
|
|
|
|
* sem_eval.adb (Check_Expression_Against_Static_Predicate):
|
|
|
|
|
Issue an error message rather than a warning when the new
|
|
|
|
|
Check_Failure_Is_Error formal is True. In the nonstatic or
|
|
|
|
|
Dynamic_Predicate case where the predicate is known to fail,
|
|
|
|
|
emit the check to ensure that folded cases get checks applied.
|
|
|
|
|
* sem_res.adb (Resolve_Qualified_Expression): Call
|
|
|
|
|
Check_Expression_Against_Static_Predicate, passing True for
|
|
|
|
|
Check_Failure_Is_Error, to ensure we reject static predicate
|
|
|
|
|
violations. Remove code that was conditionally calling
|
|
|
|
|
Apply_Predicate_Check, which is no longer needed, and that check
|
|
|
|
|
procedure shouldn't be called from a resolution routine in any
|
|
|
|
|
case. Also remove associated comment about preventing infinite
|
|
|
|
|
recursion and consistency with Resolve_Type_Conversion, since
|
|
|
|
|
that handling was already similarly removed from
|
|
|
|
|
Resolve_Type_Convesion at some point.
|
|
|
|
|
(Resolve_Type_Conversion): Add passing of True for
|
|
|
|
|
Check_Failure_Is_Error parameter on call to
|
|
|
|
|
Check_Expression_Against_Static_Predicate, to ensure that static
|
|
|
|
|
conversion cases that violate a predicate are rejected as
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* snames.ads-tmpl (Name_SPARK): Restore after being deleted.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
|
|
|
|
|
par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
|
|
|
|
|
scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
|
|
|
|
|
sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
|
|
|
|
|
sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
|
|
|
|
|
sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
|
|
|
|
|
gnatbind.adb, libgnat/s-rident.ads,
|
|
|
|
|
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
|
|
|
|
|
Remove processing of SPARK_05 restriction.
|
|
|
|
|
* gnat_rm.texi: Regenerate.
|
|
|
|
|
* opt.ads: Remove processing of old checksum which is now
|
|
|
|
|
handled by gprbuild directly.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch12.adb (Instantiate_Object): Relax rules related to null
|
|
|
|
|
exclusions and generic objects. Handle all anonymous types
|
|
|
|
|
consistently and not just E_Anonymous_Access_Type.
|
|
|
|
|
* sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
|
|
|
|
|
it applies to both renamings and instantiations to avoid
|
|
|
|
|
confusion.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/a-textio.ads (File_Mode): Fix typo in comment.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_res.adb (Resolve_Indexed_Component): Do not give a warning
|
|
|
|
|
for a nonatomic component of an atomic array which is subject to
|
|
|
|
|
an address clause in Ada 2020 mode.
|
|
|
|
|
(Resolve_Selected_Component): Likewise for an atomic record.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Philippe Gil <gil@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
|
|
|
|
|
Files with Multiple Units" part documents gnatname use for
|
|
|
|
|
unmodified files handling and gnatchop use for files
|
|
|
|
|
refactoring.
|
|
|
|
|
* gnat_ugn.texi: Regenerate.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/gnat_rm/implementation_defined_attributes.rst:
|
|
|
|
|
Enum_Rep/Enum_Val are standard Ada 202x attributes.
|
|
|
|
|
* gnat_rm.texi: Regenerate.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Javier Miranda <miranda@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_aggr.adb (Safe_Component): Remove code that considers as
|
|
|
|
|
unsafe components that are aggregates; such removal allows the
|
|
|
|
|
frontend to proceed and evaluate if they are safe by means of
|
|
|
|
|
invoking Safe_Aggregate.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
|
|
|
|
|
standard expansion to attributes First and Last.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
|
|
|
|
|
Move from the body of Exp_Attr to Exp_Util and expose from the
|
|
|
|
|
spec.
|
|
|
|
|
* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
|
|
|
|
|
duplicated code with a call to Get_Index_Subtype.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
|
|
|
|
|
many special cases to Is_Object_Reference and removing others by
|
|
|
|
|
only checking renamings coming from sources.
|
|
|
|
|
* sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
|
|
|
|
|
add more regular handling of 'Priority. Remove special cases no
|
|
|
|
|
longer needed now that we are only checking renamings coming
|
|
|
|
|
from sources.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Claire Dross <dross@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/a-cofove.adb (Insert_Space): The computation of Index
|
|
|
|
|
generates a spurious compiler warning about a value not being in
|
|
|
|
|
range for a statically dead branch. Silence it using pragma
|
|
|
|
|
Warnings.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Bob Duff <duff@adacore.com>
|
|
|
|
|
|
|
|
|
|
* bindo-graphs.adb (function Add_Edge): Rename
|
|
|
|
|
Add_Edge_With_Return to Add_Edge; we can tell it returns because
|
|
|
|
|
it's a function, and overloading seems appropriate in this case.
|
|
|
|
|
If Activates_Task=True, and we're not going to add a new edge
|
|
|
|
|
because an existing Pred-->Succ edge already exists, then set
|
|
|
|
|
Activates_Task to True on the preexisting edge. This ensures
|
|
|
|
|
that the message:
|
|
|
|
|
info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
|
|
|
|
|
appears when appropriate, no matter in what order the edges
|
|
|
|
|
happened to be processed.
|
|
|
|
|
(procedure Add_Edge): Remove redundant assertions.
|
|
|
|
|
(Activates_Task): Other kinds of edges can have
|
|
|
|
|
Activates_Task=True. For example, if we had a With_Edge and
|
|
|
|
|
then an Invocation_Edge with Activates_Task=True, then the
|
|
|
|
|
With_Edge has Activates_Task set to True.
|
|
|
|
|
(Add_Edge_Kind_Check): New procedure to prevent other bugs of
|
|
|
|
|
this nature. For example, if we were to sometimes call Add_Edge
|
|
|
|
|
for a Spec_Before_Body_Edge followed by Add_Edge for a
|
|
|
|
|
With_Edge, and sometimes in the other order, that would cause a
|
|
|
|
|
similar bug to what we're fixing here.
|
|
|
|
|
(Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
|
|
|
|
|
it.
|
|
|
|
|
(Set_Activates_Task): New procedure to set the Activates_Task flag.
|
|
|
|
|
* bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
|
|
|
|
|
enumeration literals to facilitate Add_Edge_Kind_Check.
|
|
|
|
|
* ali.adb (Known_ALI_Lines): The comment about "still available"
|
|
|
|
|
was wrong. Fix that by erasing the comment, and encoding the
|
|
|
|
|
relevant information in real code. Take advantage of Ada's full
|
|
|
|
|
coverage rules by removing "others =>". Also DRY.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Ed Schonberg <schonberg@adacore.com>
|
|
|
|
|
|
|
|
|
|
* par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
|
|
|
|
|
properly formal derived types that include aspect
|
|
|
|
|
specifications, so that the "with" keyword appears twice in the
|
|
|
|
|
formal type declaration.
|
|
|
|
|
* sem_ch13.adb (Has_Generic_Parent): Return true if the type
|
|
|
|
|
itself is a generic formal.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Dmitriy Anisimkov <anisimko@adacore.com>
|
|
|
|
|
|
|
|
|
|
* socket.c (__gnat_minus_500ms): Remove
|
|
|
|
|
IsWindowsVersionOrGreater from condition.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Claire Dross <dross@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
|
|
|
|
|
libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
|
|
|
|
|
(Delete): Add Depends contract.
|
|
|
|
|
|
|
|
|
|
2020-06-08 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* snames.ads-tmpl (Name_Program_Error_Check,
|
|
|
|
|
Name_Tasking_Check): New constants.
|
|
|
|
|
* types.ads (Program_Error_Check, Tasking_Check): New constants.
|
|
|
|
|
(All_Checks): Update accordingly.
|
|
|
|
|
|
|
|
|
|
2020-06-05 Arnaud Charlet <charlet@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
|
|
|
|
|