aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-11-24 12:07:28 +0100
committerMarc Poulhiès <poulhies@adacore.com>2023-12-19 15:27:48 +0100
commit40cf86ef4a51438a4c08e5937e5cbc61c1c28ec2 (patch)
treeeeb0d799dc63edde2ee8d1ded867963bf5506822
parentcdd8f4b3f2457ff1699b870100acd6c90ca30842 (diff)
downloadgcc-40cf86ef4a51438a4c08e5937e5cbc61c1c28ec2.zip
gcc-40cf86ef4a51438a4c08e5937e5cbc61c1c28ec2.tar.gz
gcc-40cf86ef4a51438a4c08e5937e5cbc61c1c28ec2.tar.bz2
ada: Add missing guard to previous change
Ancestor_Type is overloaded with Aggregate_Bounds on N_Aggregate nodes so its access needs to be guarded in Copy_Generic_Node. gcc/ada/ * sem_ch12.adb (Copy_Generic_Node): Add guard for Ancestor_Type.
-rw-r--r--gcc/ada/sem_ch12.adb4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index 2b8436d..bfb400f 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -8518,10 +8518,12 @@ package body Sem_Ch12 is
-- Moreover, for a full aggregate, if the type is a derived tagged
-- type and has a global ancestor, then also restore the full view
- -- of this ancestor, and do so up to the root type.
+ -- of this ancestor and do so up to the root type. Beware that the
+ -- Ancestor_Type field is overloaded, so test that it's an entity.
if Nkind (N) = N_Aggregate
and then Present (Ancestor_Type (N))
+ and then Nkind (Ancestor_Type (N)) in N_Entity
then
declare
Root_Typ : constant Entity_Id :=