diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/exp_ch5.adb | 1 | ||||
-rw-r--r-- | gcc/ada/sem_ch5.adb | 11 | ||||
-rw-r--r-- | gcc/ada/sinfo.ads | 5 |
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb index 265e1a7..d605f75 100644 --- a/gcc/ada/exp_ch5.adb +++ b/gcc/ada/exp_ch5.adb @@ -5610,6 +5610,7 @@ package body Exp_Ch5 is New_List (Make_If_Statement (Loc, Condition => Iterator_Filter (LPS), Then_Statements => Stats))); + Analyze_List (Statements (N)); end if; -- Deal with loop over predicates diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb index ab5a208..6b8f9e4 100644 --- a/gcc/ada/sem_ch5.adb +++ b/gcc/ada/sem_ch5.adb @@ -2853,10 +2853,10 @@ package body Sem_Ch5 is end if; end if; - if Present (Iterator_Filter (N)) then - -- Preanalyze the filter. Expansion will take place when enclosing - -- loop is expanded. + -- Preanalyze the filter. Expansion will take place when enclosing + -- loop is expanded. + if Present (Iterator_Filter (N)) then Preanalyze_And_Resolve (Iterator_Filter (N), Standard_Boolean); end if; end Analyze_Iterator_Specification; @@ -3570,8 +3570,11 @@ package body Sem_Ch5 is end; end if; + -- Preanalyze the filter. Expansion will take place when enclosing + -- loop is expanded. + if Present (Iterator_Filter (N)) then - Analyze_And_Resolve (Iterator_Filter (N), Standard_Boolean); + Preanalyze_And_Resolve (Iterator_Filter (N), Standard_Boolean); end if; -- A loop parameter cannot be effectively volatile (SPARK RM 7.1.3(4)). diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index c25db08..79fef3e 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -1899,6 +1899,11 @@ package Sinfo is -- Present in variable reference markers. Set when the original variable -- reference constitutes a write of the variable. + -- Iterator_Filter + -- Present in N_Loop_Parameter_Specification and N_Iterator_Specification + -- nodes for Ada 2022. It is used to store the condition present in the + -- eponymous Ada 2022 construct. + -- Itype -- Used in N_Itype_Reference node to reference an itype for which it is -- important to ensure that it is defined. See description of this node |