aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2023-01-05 10:18:51 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-05-15 11:36:41 +0200
commitc9ed0840840911e3e936f15327acda3f807d7142 (patch)
tree47aa98ff46723c3b3a96cc23c8430b0391df1287 /gcc/ada
parentb7d26cb1fe3e8f8b44ae82894750d18d2094234e (diff)
downloadgcc-c9ed0840840911e3e936f15327acda3f807d7142.zip
gcc-c9ed0840840911e3e936f15327acda3f807d7142.tar.gz
gcc-c9ed0840840911e3e936f15327acda3f807d7142.tar.bz2
ada: Allow pragmas Annotate between loop pragmas
Pragma Annotate is now allowed between loop pragmas, in order to be able to justify separate loop checks in GNATprove. gcc/ada/ * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between loop pragmas.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_prag.adb8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 266a433..6b1f926 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -6258,6 +6258,14 @@ package body Sem_Prag is
elsif Is_Loop_Pragma (Stmt) then
Prag := Stmt;
+ -- Skip Annotate pragmas, typically used to justify
+ -- unproved loop pragmas in GNATprove.
+
+ elsif Nkind (Stmt) = N_Pragma
+ and then Pragma_Name (Stmt) = Name_Annotate
+ then
+ null;
+
-- Skip declarations and statements generated by
-- the compiler during expansion. Note that some
-- source statements (e.g. pragma Assert) may have