From: Piotr Trojanek Date: Tue, 11 Jan 2022 21:25:13 +0000 (+0100) Subject: [Ada] Accept aspect Yield on subprogram bodies acting as specs X-Git-Tag: basepoints/gcc-14~5582 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a54ad45a63182bf6d1873ed55d641769638e4c8f;p=thirdparty%2Fgcc.git [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 --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;