From: Etienne Servais Date: Thu, 16 Dec 2021 13:17:40 +0000 (+0100) Subject: [Ada] Fix the check of the 'Old prefix X-Git-Tag: basepoints/gcc-13~1942 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b573d421a457852da09253f966246fcc0e16a27;p=thirdparty%2Fgcc.git [Ada] Fix the check of the 'Old prefix gcc/ada/ * sem_attr.adb (Check_Reference): Fix condition. --- diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 017df8d050bb..aa9ae3abfd02 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -5151,11 +5151,14 @@ package body Sem_Attr is -- Entities mentioned within the prefix of attribute 'Old must -- be global to the related postcondition. If this is not the -- case, then the scope of the local entity is nested within - -- that of the subprogram. + -- that of the subprogram. Moreover, we need to know whether + -- Entity (Nod) occurs in the tree rooted at the prefix to + -- ensure the entity is not declared within then prefix itself. elsif Is_Entity_Name (Nod) and then Present (Entity (Nod)) and then Scope_Within (Scope (Entity (Nod)), Subp_Id) + and then not In_Subtree (Entity (Nod), P) then Error_Attr ("prefix of attribute % cannot reference local entities",