[COMMITTED] ada: Fix calculation of tasks in null arrays

Message ID 20240507080046.38316-1-poulhies@adacore.com
State Committed
Headers
Series [COMMITTED] ada: Fix calculation of tasks in null arrays |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 warning Patch is already merged

Commit Message

Marc Poulhiès May 7, 2024, 8 a.m. UTC
  From: Piotr Trojanek <trojanek@adacore.com>

Fix handling of null arrays when calculating the secondary stack size
for the binder.

gcc/ada/

	* sem_util.adb (Number_Of_Elements_In_Array): Fix counting of
	elements in null arrays; remove redundant parenthesis; avoid
	run-time conversion of 1 to universal integer.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_util.adb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index bee078e6df5..5f44b4c26fe 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -25404,7 +25404,8 @@  package body Sem_Util is
             return 0;
          else
             Num :=
-              Num * UI_To_Int ((Expr_Value (High) - Expr_Value (Low) + 1));
+              Num * Int'Max
+                (0, UI_To_Int (Expr_Value (High) - Expr_Value (Low) + Uint_1));
          end if;
 
          Next_Index (Indx);