diff mbox series

[Ada] Fix compiler internal error

Message ID 20211004084730.GA1536154@adacore.com
State New
Headers show
Series [Ada] Fix compiler internal error | expand

Commit Message

Pierre-Marie de Rodat Oct. 4, 2021, 8:47 a.m. UTC
In some cases with -gnat2022 enabled, an enabled postcondition
containing a quantified expression containing an Old attribute reference
could result in an internal error during compilation. Fix this.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* sem_util.adb (Is_Repeatedly_Evaluated): Handle the case of an
	Old attribute reference that occurs within what was originally a
	quantified expression but which expansion has transformed into
	an Expression_With_Actions.
diff mbox series

Patch

diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -31510,7 +31510,12 @@  package body Sem_Util is
                   --    quantified_expression.
 
                   if Nkind (Par) = N_Quantified_Expression
-                     and then Trailer = Condition (Par)
+                    and then Trailer = Condition (Par)
+                  then
+                     return True;
+                  elsif Nkind (Par) = N_Expression_With_Actions
+                    and then
+                      Nkind (Original_Node (Par)) = N_Quantified_Expression
                   then
                      return True;
                   end if;