diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2024-01-10 13:32:04 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-05-07 09:55:58 +0200 |
commit | c6b06faa3ccb2b12b80ee682d3f22a7f5aa9ddd3 (patch) | |
tree | b02df80883e23eb4515e940f78b40ac97e9dc597 | |
parent | cf14e7c1db2f20d9dbcc8c3efdebe549ec5eec80 (diff) | |
download | gcc-c6b06faa3ccb2b12b80ee682d3f22a7f5aa9ddd3.zip gcc-c6b06faa3ccb2b12b80ee682d3f22a7f5aa9ddd3.tar.gz gcc-c6b06faa3ccb2b12b80ee682d3f22a7f5aa9ddd3.tar.bz2 |
ada: Prevent calculation of negative stack counts
Negative numbers of stack counts have no meaning.
gcc/ada/
* lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count,
Increment_Primary_Stack_Count, Increment_Sec_Stack_Count,
Unit_Record): Stack counts are never negative.
* ali.ads (Unit_Record): Likewise.
* bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise.
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise.
* sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array):
Likewise.
-rw-r--r-- | gcc/ada/ali.ads | 4 | ||||
-rw-r--r-- | gcc/ada/bindgen.adb | 4 | ||||
-rw-r--r-- | gcc/ada/exp_ch3.adb | 2 | ||||
-rw-r--r-- | gcc/ada/lib.adb | 12 | ||||
-rw-r--r-- | gcc/ada/lib.ads | 12 | ||||
-rw-r--r-- | gcc/ada/sem_util.adb | 4 | ||||
-rw-r--r-- | gcc/ada/sem_util.ads | 2 |
7 files changed, 20 insertions, 20 deletions
diff --git a/gcc/ada/ali.ads b/gcc/ada/ali.ads index 23c7444..67b8fcd 100644 --- a/gcc/ada/ali.ads +++ b/gcc/ada/ali.ads @@ -482,11 +482,11 @@ package ALI is -- Indicates whether a package body or a spec has a library-level -- finalization routine. - Primary_Stack_Count : Int; + Primary_Stack_Count : Nat; -- Indicates the number of task objects declared in this unit that have -- default sized primary stacks. - Sec_Stack_Count : Int; + Sec_Stack_Count : Nat; -- Indicates the number of task objects declared in this unit that have -- default sized secondary stacks. end record; diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb index bffd1344..fc834e3 100644 --- a/gcc/ada/bindgen.adb +++ b/gcc/ada/bindgen.adb @@ -57,11 +57,11 @@ package body Bindgen is Num_Elab_Calls : Nat := 0; -- Number of generated calls to elaboration routines - Num_Primary_Stacks : Int := 0; + Num_Primary_Stacks : Nat := 0; -- Number of default-sized primary stacks the binder needs to allocate for -- task objects declared in the program. - Num_Sec_Stacks : Int := 0; + Num_Sec_Stacks : Nat := 0; -- Number of default-sized primary stacks the binder needs to allocate for -- task objects declared in the program. diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index e9fab87..f934dbf 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -6738,7 +6738,7 @@ package body Exp_Ch3 is -- Then multiply the result by the size of the array declare - Quantity : constant Int := Number_Of_Elements_In_Array (Typ); + Quantity : constant Nat := Number_Of_Elements_In_Array (Typ); -- Number_Of_Elements_In_Array is non-trival, consequently -- its result is captured as an optimization. diff --git a/gcc/ada/lib.adb b/gcc/ada/lib.adb index ebd6bc9..c465828 100644 --- a/gcc/ada/lib.adb +++ b/gcc/ada/lib.adb @@ -173,12 +173,12 @@ package body Lib is return Units.Table (U).OA_Setting; end OA_Setting; - function Primary_Stack_Count (U : Unit_Number_Type) return Int is + function Primary_Stack_Count (U : Unit_Number_Type) return Nat is begin return Units.Table (U).Primary_Stack_Count; end Primary_Stack_Count; - function Sec_Stack_Count (U : Unit_Number_Type) return Int is + function Sec_Stack_Count (U : Unit_Number_Type) return Nat is begin return Units.Table (U).Sec_Stack_Count; end Sec_Stack_Count; @@ -1034,8 +1034,8 @@ package body Lib is -- Increment_Primary_Stack_Count -- ----------------------------------- - procedure Increment_Primary_Stack_Count (Increment : Int) is - PSC : Int renames Units.Table (Current_Sem_Unit).Primary_Stack_Count; + procedure Increment_Primary_Stack_Count (Increment : Nat) is + PSC : Nat renames Units.Table (Current_Sem_Unit).Primary_Stack_Count; begin PSC := PSC + Increment; end Increment_Primary_Stack_Count; @@ -1044,8 +1044,8 @@ package body Lib is -- Increment_Sec_Stack_Count -- ------------------------------- - procedure Increment_Sec_Stack_Count (Increment : Int) is - SSC : Int renames Units.Table (Current_Sem_Unit).Sec_Stack_Count; + procedure Increment_Sec_Stack_Count (Increment : Nat) is + SSC : Nat renames Units.Table (Current_Sem_Unit).Sec_Stack_Count; begin SSC := SSC + Increment; end Increment_Sec_Stack_Count; diff --git a/gcc/ada/lib.ads b/gcc/ada/lib.ads index ee06cde..93ff1b1 100644 --- a/gcc/ada/lib.ads +++ b/gcc/ada/lib.ads @@ -463,8 +463,8 @@ package Lib is function No_Elab_Code_All (U : Unit_Number_Type) return Boolean; function OA_Setting (U : Unit_Number_Type) return Character; function Primary_Stack_Count - (U : Unit_Number_Type) return Int; - function Sec_Stack_Count (U : Unit_Number_Type) return Int; + (U : Unit_Number_Type) return Nat; + function Sec_Stack_Count (U : Unit_Number_Type) return Nat; function Source_Index (U : Unit_Number_Type) return Source_File_Index; function Unit_File_Name (U : Unit_Number_Type) return File_Name_Type; function Unit_Name (U : Unit_Number_Type) return Unit_Name_Type; @@ -686,11 +686,11 @@ package Lib is -- source unit, the criterion being that Get_Source_Unit yields the -- same value for each argument. - procedure Increment_Primary_Stack_Count (Increment : Int); + procedure Increment_Primary_Stack_Count (Increment : Nat); -- Increment the Primary_Stack_Count field for the current unit by -- Increment. - procedure Increment_Sec_Stack_Count (Increment : Int); + procedure Increment_Sec_Stack_Count (Increment : Nat); -- Increment the Sec_Stack_Count field for the current unit by Increment function Increment_Serial_Number return Nat; @@ -861,8 +861,8 @@ private Ident_String : Node_Id; Main_Priority : Int; Main_CPU : Int; - Primary_Stack_Count : Int; - Sec_Stack_Count : Int; + Primary_Stack_Count : Nat; + Sec_Stack_Count : Nat; Serial_Number : Nat; Version : Word; Error_Location : Source_Ptr; diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index ebfe27a..bee078e 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -25372,12 +25372,12 @@ package body Sem_Util is -- Number_Of_Elements_In_Array -- --------------------------------- - function Number_Of_Elements_In_Array (T : Entity_Id) return Int is + function Number_Of_Elements_In_Array (T : Entity_Id) return Nat is Indx : Node_Id; Typ : Entity_Id; Low : Node_Id; High : Node_Id; - Num : Int := 1; + Num : Nat := 1; begin pragma Assert (Is_Array_Type (T)); diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads index db02d39..83e824b 100644 --- a/gcc/ada/sem_util.ads +++ b/gcc/ada/sem_util.ads @@ -2785,7 +2785,7 @@ package Sem_Util is -- 2) N is a comparison operator, one of the operands is null, and the -- type of the other operand is a descendant of System.Address. - function Number_Of_Elements_In_Array (T : Entity_Id) return Int; + function Number_Of_Elements_In_Array (T : Entity_Id) return Nat; -- Returns the number of elements in the array T if the index bounds of T -- is known at compile time. If the bounds are not known at compile time, -- the function returns the value zero. |