diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-01-11 22:25:13 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-07-12 12:24:11 +0000 |
commit | a54ad45a63182bf6d1873ed55d641769638e4c8f (patch) | |
tree | 7812dea59b5df2a0ce0820df275300c1041a4f43 /gcc | |
parent | a31eda15463b00bad7c48d973e4e7e8a33006379 (diff) | |
download | gcc-a54ad45a63182bf6d1873ed55d641769638e4c8f.zip gcc-a54ad45a63182bf6d1873ed55d641769638e4c8f.tar.gz gcc-a54ad45a63182bf6d1873ed55d641769638e4c8f.tar.bz2 |
[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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch13.adb | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index bb654ab..c668310 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; |