summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2021-10-26 12:21:40 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2021-11-09 09:44:47 +0000
commitea8726cac5af33305fa81886beb4ab2255f99567 (patch)
tree63090b25d1ccc8b14c42bbab6c555397fa873eed
parent51ad879c72e77f8a4021256c4aaf5567c6f587cf (diff)
downloadgcc-ea8726cac5af33305fa81886beb4ab2255f99567.tar.gz
[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.
-rw-r--r--gcc/ada/sem_ch3.adb17
1 files 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;