From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id A97233851A92; Tue, 5 Jul 2022 08:30:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A97233851A92 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pierre-Marie de Rodat To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-1483] [Ada] Spurious error on qualified prefix in Pack.Func'Result X-Act-Checkin: gcc X-Git-Author: Yannick Moy X-Git-Refname: refs/heads/master X-Git-Oldrev: 69a70b0acbf01387ec1d1e85d2c7ed0d588d799e X-Git-Newrev: 1f85342b42b4bf9fee3cd23bc38498a3565bc9f1 Message-Id: <20220705083008.A97233851A92@sourceware.org> Date: Tue, 5 Jul 2022 08:30:08 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jul 2022 08:30:08 -0000 https://gcc.gnu.org/g:1f85342b42b4bf9fee3cd23bc38498a3565bc9f1 commit r13-1483-g1f85342b42b4bf9fee3cd23bc38498a3565bc9f1 Author: Yannick Moy Date: Mon May 23 14:27:41 2022 +0200 [Ada] Spurious error on qualified prefix in Pack.Func'Result When using a qualified name such as Pack.Func as the prefix of a 'Result attribute reference, the prefix is not fully resolved and may contain a chain of homonyms. Look for the expected function in the homonym chain instead of issuing an error if the first one is not the expected one. gcc/ada/ * sem_attr.adb (Analyze_Attribute): Take into account the possibility of homonyms. Diff: --- gcc/ada/sem_attr.adb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 6a35358261e..b8d878c3d6d 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -5835,6 +5835,12 @@ package body Sem_Attr is elsif Present (Over_Id) and then Pref_Id = Over_Id then return True; + + -- When a qualified name is used for the prefix, homonyms may come + -- before the current function in the homonym chain. + + elsif Has_Homonym (Pref_Id) then + return Denote_Same_Function (Homonym (Pref_Id), Spec_Id); end if; -- Otherwise the prefix does not denote the related subprogram