aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorGary Dismukes <dismukes@adacore.com>2020-05-05 21:10:25 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-06 07:35:04 -0400
commit977b168196992b3f15d167c2f7d05cec38ac0302 (patch)
treef4137ec4f86814cf5e015f2c3f4b91dca3d6b4d3 /gcc/fortran
parent07ac6d8aadae834c20493def3c38ce6b67383c6a (diff)
downloadgcc-977b168196992b3f15d167c2f7d05cec38ac0302.zip
gcc-977b168196992b3f15d167c2f7d05cec38ac0302.tar.gz
gcc-977b168196992b3f15d167c2f7d05cec38ac0302.tar.bz2
[Ada] Predicates and the current instance of a subtype (AI12-0068)
gcc/ada/ * sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue a warning if the attribute prefix is a current instance reference within an aspect of a type or subtype. (Address_Checks): Replace test of Is_Object (Ent) with Is_Object_Reference (P) so that testing for current instances will be done. (Eval_Attribute): Add test for current instance reference, to ensure that we still fold array attributes when current instances are involved, since value prefixes are allowed for array attributes, and will now be excluded by Is_Object_Reference. * sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect): New exported query function. * sem_util.adb (Is_Object_Reference): Return False for the case where N is a current instance reference within an aspect_specification of a type or subtype (basically if the reference occurs within a predicate, invariant, or DIC aspect expression). (Is_Current_Instance_Reference_In_Type_Aspect): New function that tests whether a node is a reference to a current instance formal of a predicate, invariant, or Default_Initial_Condition (DIC) subprogram.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions