aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Eyraud <eyraud@adacore.com>2021-07-02 14:37:55 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2021-10-04 08:45:09 +0000
commit3a6f30ed5da68be1fbc53a801093f31615db619b (patch)
tree420893359ad0eb7fc486fdc5c756d5ee40e68945
parent8f721245b4870dfe79a769b3bd0100155d4df7c2 (diff)
downloadgcc-3a6f30ed5da68be1fbc53a801093f31615db619b.zip
gcc-3a6f30ed5da68be1fbc53a801093f31615db619b.tar.gz
gcc-3a6f30ed5da68be1fbc53a801093f31615db619b.tar.bz2
[Ada] Emit specific SCOs for decisions of quantified expressions
gcc/ada/ * scos.ads: Extend the documentation. * par_sco.adb (Process_Decisions): Emit specific SCOs for quantified expressions.
-rw-r--r--gcc/ada/par_sco.adb8
-rw-r--r--gcc/ada/scos.ads2
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/par_sco.adb b/gcc/ada/par_sco.adb
index 9720e47..09e4d50 100644
--- a/gcc/ada/par_sco.adb
+++ b/gcc/ada/par_sco.adb
@@ -827,6 +827,14 @@ package body Par_SCO is
return Skip;
end;
+ when N_Quantified_Expression =>
+ declare
+ Cond : constant Node_Id := Condition (N);
+ begin
+ Process_Decisions (Cond, 'W', Pragma_Sloc);
+ return Skip;
+ end;
+
-- All other cases, continue scan
when others =>
diff --git a/gcc/ada/scos.ads b/gcc/ada/scos.ads
index d8e88dd..cdac552 100644
--- a/gcc/ada/scos.ads
+++ b/gcc/ada/scos.ads
@@ -257,7 +257,7 @@ package SCOs is
-- I decision in IF statement or if expression
-- P decision in pragma Assert / Check / Pre/Post_Condition
-- A[name] decision in aspect Pre/Post (aspect name optional)
- -- W decision in WHILE iteration scheme
+ -- W decision in WHILE iteration scheme or quantified expression
-- X decision in some other expression context
-- For E, G, I, P, W, sloc is the source location of the EXIT, ENTRY, IF,