From 043d13792116b459cc3c3b1ba5cc7c40aec36719 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Mon, 30 Nov 2020 03:11:40 -0500 Subject: [PATCH] [Ada] Spurious error on Type'Access and <> gcc/ada/ * sem_attr.adb (OK_Self_Reference): Return True if node does not come from source (e.g. a rewritten aggregate). --- gcc/ada/sem_attr.adb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index d5970a1..1f769a5 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -782,6 +782,13 @@ package body Sem_Attr is Par : Node_Id; begin + -- If N does not come from source, the reference is assumed to be + -- valid. + + if not Comes_From_Source (N) then + return True; + end if; + Par := Parent (N); while Present (Par) and then @@ -1032,9 +1039,7 @@ package body Sem_Attr is -- expression comes from source, e.g. when a single component -- association in an aggregate has a box association. - elsif Ada_Version >= Ada_2005 - and then OK_Self_Reference - then + elsif Ada_Version >= Ada_2005 and then OK_Self_Reference then null; -- OK if reference to current instance of a protected object -- 2.7.4