diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 0ecac3f..d543253 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -524,6 +524,12 @@ package body Sem_Ch6 is Install_Formals (Def_Id); Preanalyze_Spec_Expression (Expr, Typ); End_Scope; + else + Push_Scope (Def_Id); + Install_Formals (Def_Id); + Preanalyze_Formal_Expression (Expr, Typ); + Check_Limited_Return (Orig_N, Expr, Typ); + End_Scope; end if; -- If this is a wrapper created in an instance for a formal @@ -561,16 +567,6 @@ package body Sem_Ch6 is end; end if; - -- Preanalyze the expression if not already done above - - if not Inside_A_Generic then - Push_Scope (Def_Id); - Install_Formals (Def_Id); - Preanalyze_Formal_Expression (Expr, Typ); - Check_Limited_Return (Orig_N, Expr, Typ); - End_Scope; - end if; - -- In the case of an expression function marked with the aspect -- Static, we need to check the requirement that the function's -- expression is a potentially static expression. This is done |