diff options
author | Javier Miranda <miranda@adacore.com> | 2023-04-03 17:15:47 +0000 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-05-29 10:23:19 +0200 |
commit | 265c571daa41fdf4d21e06c55703f65ec9aad8c4 (patch) | |
tree | 232540487c7c42ea2c2091697444e6992b24d9ea | |
parent | 204ecf39ca639cf77de1cc4a510a369fa2f91798 (diff) | |
download | gcc-265c571daa41fdf4d21e06c55703f65ec9aad8c4.zip gcc-265c571daa41fdf4d21e06c55703f65ec9aad8c4.tar.gz gcc-265c571daa41fdf4d21e06c55703f65ec9aad8c4.tar.bz2 |
ada: Crash on aggregate for tagged record with discriminants
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.
-rw-r--r-- | gcc/ada/sem_aggr.adb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index fd0779e..edd495b 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, |