[Ada] Handle iterator filters on loop specifications over containers
gcc/ada/ * sem_ch5.adb (Analyze_Iterator_Specification): If iterator filter is present, preanalyze filter without expansion. (Analyze_Loop_Parameter_Specification): When loop_Parameter_Specification is rewritten as Iterator_Specification, transfer Iterator_Filter if present.
This commit is contained in:
parent
aa44eaca60
commit
d1d0c4c800
1 changed files with 7 additions and 1 deletions
|
@ -2620,7 +2620,10 @@ package body Sem_Ch5 is
|
|||
end if;
|
||||
|
||||
if Present (Iterator_Filter (N)) then
|
||||
Analyze_And_Resolve (Iterator_Filter (N), Standard_Boolean);
|
||||
-- Preanalyze the filter. Expansion will take place when enclosing
|
||||
-- loop is expanded.
|
||||
|
||||
Preanalyze_And_Resolve (Iterator_Filter (N), Standard_Boolean);
|
||||
end if;
|
||||
end Analyze_Iterator_Specification;
|
||||
|
||||
|
@ -3017,6 +3020,9 @@ package body Sem_Ch5 is
|
|||
begin
|
||||
Set_Iterator_Specification (Scheme, I_Spec);
|
||||
Set_Loop_Parameter_Specification (Scheme, Empty);
|
||||
Set_Iterator_Filter (I_Spec,
|
||||
Relocate_Node (Iterator_Filter (N)));
|
||||
|
||||
Analyze_Iterator_Specification (I_Spec);
|
||||
|
||||
-- In a generic context, analyze the original domain of
|
||||
|
|
Loading…
Add table
Reference in a new issue