mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-09 16:41:18 +08:00
[Ada] AI12-0132 Freezing of renames_as_body
gcc/ada/ * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body freezes the expression of any expression function that it renames.
This commit is contained in:
parent
7a21651f33
commit
ca320dabf0
@ -3160,6 +3160,22 @@ package body Sem_Ch8 is
|
||||
Error_Msg_NE ("subprogram& is not overriding", N, Rename_Spec);
|
||||
end if;
|
||||
|
||||
-- AI12-0132: a renames-as-body freezes the expression of any
|
||||
-- expression function that it renames.
|
||||
|
||||
if Is_Entity_Name (Nam)
|
||||
and then Is_Expression_Function (Entity (Nam))
|
||||
and then not Inside_A_Generic
|
||||
then
|
||||
Freeze_Expr_Types
|
||||
(Def_Id => Entity (Nam),
|
||||
Typ => Etype (Entity (Nam)),
|
||||
Expr =>
|
||||
Expression
|
||||
(Original_Node (Unit_Declaration_Node (Entity (Nam)))),
|
||||
N => N);
|
||||
end if;
|
||||
|
||||
-- Normal subprogram renaming (not renaming as body)
|
||||
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user