[Ada] Constraint_Error in Task_Wrapper and -u0
authorArnaud Charlet <charlet@adacore.com>
Sat, 24 Oct 2020 12:01:58 +0000 (08:01 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 26 Nov 2020 08:39:47 +0000 (03:39 -0500)
gcc/ada/

* libgnarl/s-tassta.adb (Task_Wrapper): Fix computation of
Pattern_Size.

gcc/ada/libgnarl/s-tassta.adb

index aada734777176c8e3d93d4dd37e2722d40ebb37b..900b3b7aa7b91d77a84f12f2c6fdffb2b8c8b469 100644 (file)
@@ -1096,11 +1096,10 @@ package body System.Tasking.Stages is
             --  stack analysis.
 
             Big_Overflow_Guard : constant := 64 * 1024 + 8 * 1024;
-            Small_Stack_Limit  : constant := 64 * 1024;
-            --  ??? These three values are experimental, and seem to work on
-            --  most platforms. They still need to be analyzed further. They
-            --  also need documentation, what are they and why does the logic
-            --  differ depending on whether the stack is large or small???
+            --  These two values are experimental, and seem to work on most
+            --  platforms. They still need to be analyzed further. They also
+            --  need documentation, what are they and why does the logic differ
+            --  depending on whether the stack is large or small???
 
             Pattern_Size : Natural :=
                              Natural (Self_ID.Common.
@@ -1123,7 +1122,7 @@ package body System.Tasking.Stages is
                --  Adjustments for inner frames
 
                Pattern_Size := Pattern_Size -
-                 (if Pattern_Size < Small_Stack_Limit
+                 (if Pattern_Size < Big_Overflow_Guard
                     then Small_Overflow_Guard
                     else Big_Overflow_Guard);
             else