From ea8726cac5af33305fa81886beb4ab2255f99567 Mon Sep 17 00:00:00 2001 From: Yannick Moy Date: Tue, 26 Oct 2021 12:21:40 +0200 Subject: [PATCH] [Ada] Complete support for prefixed call on subtypes/derived types gcc/ada/ * sem_ch3.adb (Analyze_Subtype_Declaration, Derived_Type_Declaration): Initialize list of primitive operations when Extensions_Allowed. --- gcc/ada/sem_ch3.adb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index ff3da385943..e24ca8c6ce8 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -5755,6 +5755,15 @@ package body Sem_Ch3 is if Is_Tagged_Type (Id) then Set_No_Tagged_Streams_Pragma (Id, No_Tagged_Streams_Pragma (T)); + end if; + + -- For tagged types, or when prefixed-call syntax is allowed + -- for untagged types, initialize the list of primitive + -- operations to an empty list. + + if Is_Tagged_Type (Id) + or else Extensions_Allowed + then Set_Direct_Primitive_Operations (Id, New_Elmt_List); end if; @@ -17199,8 +17208,12 @@ package body Sem_Ch3 is Set_Etype (T, Any_Type); Set_Scalar_Range (T, Scalar_Range (Any_Type)); - if Is_Tagged_Type (T) - and then Is_Record_Type (T) + -- For tagged types, or when prefixed-call syntax is allowed for + -- untagged types, initialize the list of primitive operations to + -- an empty list. + + if (Is_Tagged_Type (T) and then Is_Record_Type (T)) + or else Extensions_Allowed then Set_Direct_Primitive_Operations (T, New_Elmt_List); end if;