From: Piotr Trojanek Date: Mon, 21 Nov 2022 10:31:29 +0000 (+0100) Subject: ada: Accept aspects Global and Depends on abstract subprograms X-Git-Tag: basepoints/gcc-14~2973 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61351ab96a4dfa0884c8b1a53342b97915fb5dd7;p=thirdparty%2Fgcc.git ada: Accept aspects Global and Depends on abstract subprograms Aspects Global and Depends are now allowed on abstract subprograms (as substitutes for Global'Class and Depends'Class). This patch implements the recently modified rules SPARK RM 6.1.2(2-3). The behavior for Contract_Cases and aspects on null subprograms stays as it was. gcc/ada/ * sem_prag.adb (Analyze_Depends_Global): Accept aspects on abstract subprograms. --- diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index f2c1a3f0e6eb..0a91518cff95 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -4549,6 +4549,11 @@ package body Sem_Prag is elsif Nkind (Subp_Decl) = N_Single_Task_Declaration then null; + -- Abstract subprogram declaration + + elsif Nkind (Subp_Decl) = N_Abstract_Subprogram_Declaration then + null; + -- Subprogram body acts as spec elsif Nkind (Subp_Decl) = N_Subprogram_Body