From: Arnaud Charlet Date: Mon, 30 Nov 2020 08:11:40 +0000 (-0500) Subject: [Ada] Spurious error on Type'Access and <> X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=043d13792116b459cc3c3b1ba5cc7c40aec36719;p=gcc.git [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). --- diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index d5970a1f62c..1f769a53be7 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