]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Add missing SCO generation for quantified expressions in object decl
authorLéo Creuse <creuse@adacore.com>
Thu, 13 Jul 2023 10:30:42 +0000 (12:30 +0200)
committerMarc Poulhiès <poulhies@adacore.com>
Fri, 28 Jul 2023 07:28:15 +0000 (09:28 +0200)
This change corrects the Has_Decision predicate in par_sco.adb to
properly consider predicates of quantified expressions as
decisions.

gcc/ada/

* par_sco.adb (Has_Decision): Consider that quantified expressions
contain decisions.

gcc/ada/par_sco.adb

index c3aa2a5936e6829737d8bf1a0ea6010b6c66d270..ce7de7f3d7955e55bda3dd4fe89d332a3644fa24 100644 (file)
@@ -398,7 +398,8 @@ package body Par_SCO is
       function Check_Node (N : Node_Id) return Traverse_Result;
       --  Determine if Nkind (N) indicates the presence of a decision (i.e. N
       --  is a logical operator, which is a decision in itself, or an
-      --  IF-expression whose Condition attribute is a decision).
+      --  IF-expression whose Condition attribute is a decision, or a
+      --  quantified expression, whose predicate is a decision).
 
       ----------------
       -- Check_Node --
@@ -409,10 +410,11 @@ package body Par_SCO is
          --  If we are not sure this is a logical operator (AND and OR may be
          --  turned into logical operators with the Short_Circuit_And_Or
          --  pragma), assume it is. Putative decisions will be discarded if
-         --  needed in the secord pass.
+         --  needed in the second pass.
 
          if Is_Logical_Operator (N) /= False
            or else Nkind (N) = N_If_Expression
+           or else Nkind (N) = N_Quantified_Expression
          then
             return Abandon;
          else