aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2023-04-03 17:15:47 +0000
committerMarc Poulhiès <poulhies@adacore.com>2023-05-29 10:23:19 +0200
commit265c571daa41fdf4d21e06c55703f65ec9aad8c4 (patch)
tree232540487c7c42ea2c2091697444e6992b24d9ea
parent204ecf39ca639cf77de1cc4a510a369fa2f91798 (diff)
downloadgcc-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.adb2
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,