diff options
Diffstat (limited to 'gcc/ada/exp_attr.adb')
| -rw-r--r-- | gcc/ada/exp_attr.adb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb index 890f09b..80cd34d 100644 --- a/gcc/ada/exp_attr.adb +++ b/gcc/ada/exp_attr.adb @@ -636,6 +636,14 @@ package body Exp_Attr is Make_Build_In_Place_Call_In_Anonymous_Context (Pref); end if; + -- If prefix is a protected type name, this is a reference to + -- the current instance of the type. + + if Is_Protected_Self_Reference (Pref) then + Rewrite (Pref, Concurrent_Ref (Pref)); + Analyze (Pref); + end if; + -- Remaining processing depends on specific attribute case Id is |
