From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id 8FDFF38316E1; Tue, 12 Jul 2022 12:25:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8FDFF38316E1 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-1625] [Ada] Accept aspect Yield on subprogram bodies acting as specs X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: a31eda15463b00bad7c48d973e4e7e8a33006379 X-Git-Newrev: a54ad45a63182bf6d1873ed55d641769638e4c8f Message-Id: <20220712122536.8FDFF38316E1@sourceware.org> Date: Tue, 12 Jul 2022 12:25:36 +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, 12 Jul 2022 12:25:36 -0000 https://gcc.gnu.org/g:a54ad45a63182bf6d1873ed55d641769638e4c8f commit r13-1625-ga54ad45a63182bf6d1873ed55d641769638e4c8f Author: Piotr Trojanek Date: Tue Jan 11 22:25:13 2022 +0100 [Ada] Accept aspect Yield on subprogram bodies acting as specs A small fix for the aspect Yield defined in AI12-0279 for Ada 2022, to accept aspect given for a subprogram body which acts as its own spec. For example: procedure Switch with Yield => True is begin ... end Switch; gcc/ada/ * sem_ch13.adb (Analyze_Aspect_Yield): Look at the entity kind, not at the declaration kind. Diff: --- gcc/ada/sem_ch13.adb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index bb654abe412..c6683108540 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -2724,13 +2724,11 @@ package body Sem_Ch13 is Expr_Value : Boolean := False; begin - -- Check valid declarations for 'Yield + -- Check valid entity for 'Yield - if Nkind (N) in N_Abstract_Subprogram_Declaration - | N_Entry_Declaration - | N_Generic_Subprogram_Declaration - | N_Subprogram_Declaration - | N_Formal_Subprogram_Declaration + if (Is_Subprogram (E) + or else Is_Generic_Subprogram (E) + or else Is_Entry (E)) and then not Within_Protected_Type (E) then null;