diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index ab12f22ad51a26a91ecd5693ca3b1a47e6cef6ba..2e619d89444aa736e1603dd4903dc4b22b721361 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -427,6 +427,12 @@ package body Sem_Ch6 is -- As elsewhere, we do not emit freeze nodes within a generic unit. if not Inside_A_Generic then + -- Set the parent of the new node to be the parent of the original + -- to get the proper context, which is needed for complete error + -- reporting and for semantic analysis. + + Set_Parent (New_Body, Parent (N)); + Freeze_Expr_Types (Def_Id => Def_Id, Typ => Typ,