2
0
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:
Arnaud Charlet 2020-06-11 14:31:54 -04:00 committed by Pierre-Marie de Rodat
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