aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/match.c
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/match.c
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/match.c')
0 files changed, 0 insertions, 0 deletions