From: Javier Miranda <mira...@adacore.com> The frontend may crash processing an aggregate initializing a derived tagged record type that has discriminants.
gcc/ada/ * sem_aggr.adb (Resolve_Record_Aggregate): For aggregates of derived tagged record types with discriminants, when collecting components from ancestors, pass to subprogram Gather_Components the parent type. Required to report errors on wrong aggregate components. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_aggr.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index fd0779e66d7..edd495b8359 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -5632,7 +5632,7 @@ package body Sem_Aggr is end if; Record_Def := Type_Definition (Parent (Base_Type (Parent_Typ))); - Gather_Components (Empty, + Gather_Components (Parent_Typ, Component_List (Record_Extension_Part (Record_Def)), Governed_By => New_Assoc_List, Into => Components, -- 2.40.0