diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2024-01-10 13:14:34 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-05-07 09:55:58 +0200 |
commit | cf14e7c1db2f20d9dbcc8c3efdebe549ec5eec80 (patch) | |
tree | 350e554e5f1e73dbdae5d66ce43bd07535b190c9 /gcc | |
parent | 326f6a4e7400771893a482009c121fc77bc471fe (diff) | |
download | gcc-cf14e7c1db2f20d9dbcc8c3efdebe549ec5eec80.zip gcc-cf14e7c1db2f20d9dbcc8c3efdebe549ec5eec80.tar.gz gcc-cf14e7c1db2f20d9dbcc8c3efdebe549ec5eec80.tar.bz2 |
ada: Cleanup calculation of task stacks
Code cleanup; semantics is unaffected.
gcc/ada/
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Do not look for
tasks inside record discriminants; remove avoid repeated call to
Has_Task that happened for record components.
(Expand_N_Object_Declaration): Use high-level routine to detect
array types and subtypes; remove unused initial values.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/exp_ch3.adb | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index 4c0679f..e9fab87 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -6752,27 +6752,23 @@ package body Exp_Ch3 is | E_Record_Subtype | E_Record_Type => - Component := First_Component_Or_Discriminant (Typ); + Component := First_Component (Typ); -- Recursively descend each component of the composite type - -- looking for tasks, but only if the component is marked as - -- having a task. + -- looking for tasks. while Present (Component) loop - if Has_Task (Etype (Component)) then - declare - P : Int; - S : Int; + declare + P : Int; + S : Int; - begin - Count_Default_Sized_Task_Stacks - (Etype (Component), P, S); - Pri_Stacks := Pri_Stacks + P; - Sec_Stacks := Sec_Stacks + S; - end; - end if; + begin + Count_Default_Sized_Task_Stacks (Etype (Component), P, S); + Pri_Stacks := Pri_Stacks + P; + Sec_Stacks := Sec_Stacks + S; + end; - Next_Component_Or_Discriminant (Component); + Next_Component (Component); end loop; when E_Limited_Private_Subtype @@ -7457,11 +7453,10 @@ package body Exp_Ch3 is and then not Restriction_Active (No_Secondary_Stack) and then (Restriction_Active (No_Implicit_Heap_Allocations) or else Restriction_Active (No_Implicit_Task_Allocations)) - and then not (Ekind (Typ) in E_Array_Type | E_Array_Subtype - and then Has_Init_Expression (N)) + and then not (Is_Array_Type (Typ) and then Has_Init_Expression (N)) then declare - PS_Count, SS_Count : Int := 0; + PS_Count, SS_Count : Int; begin Count_Default_Sized_Task_Stacks (Typ, PS_Count, SS_Count); Increment_Primary_Stack_Count (PS_Count); |