[COMMITTED] ada: Accept aspects Global and Depends on abstract subprograms

Message ID 20221122123659.336456-1-poulhies@adacore.com
State Committed
Commit 61351ab96a4dfa0884c8b1a53342b97915fb5dd7
Headers
Series [COMMITTED] ada: Accept aspects Global and Depends on abstract subprograms |

Commit Message

Marc Poulhiès Nov. 22, 2022, 12:36 p.m. UTC
  From: Piotr Trojanek <trojanek@adacore.com>

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.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_prag.adb | 5 +++++
 1 file changed, 5 insertions(+)
  

Patch

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