From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7871) id 01EDC38582AB; Tue, 22 Nov 2022 12:36:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 01EDC38582AB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1669120575; bh=93sCCRsMXoGE5yCpFLA3SC6f2nUNfxVkBrBhFY4F4Zc=; h=From:To:Subject:Date:From; b=vEm/4jcN6qTZS16di8jAsEuju24JpEgKkFg2hI0gkpbDU/szujtWSyETIqzM4W8NS cv6929iGqm7f4aAWXnd4FD5nEdmXus3HWfppR5n1fjGslKk+SehFhMQ8h/KiAuTeiN ySmL/CtjWX9rR8eijO5kD8w1mNegXvfVuyuxmicY= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Marc Poulhi?s To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-4234] ada: Accept aspects Global and Depends on abstract subprograms X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: 05894d1c5c136fe3f8a36cc33cc750c3f5fb6283 X-Git-Newrev: 61351ab96a4dfa0884c8b1a53342b97915fb5dd7 Message-Id: <20221122123615.01EDC38582AB@sourceware.org> Date: Tue, 22 Nov 2022 12:36:15 +0000 (GMT) List-Id: https://gcc.gnu.org/g:61351ab96a4dfa0884c8b1a53342b97915fb5dd7 commit r13-4234-g61351ab96a4dfa0884c8b1a53342b97915fb5dd7 Author: Piotr Trojanek Date: Mon Nov 21 11:31:29 2022 +0100 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: --- gcc/ada/sem_prag.adb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index f2c1a3f0e6e..0a91518cff9 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