diff options
author | Yannick Moy <moy@adacore.com> | 2021-10-26 12:21:40 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-11-09 09:44:47 +0000 |
commit | ea8726cac5af33305fa81886beb4ab2255f99567 (patch) | |
tree | 63090b25d1ccc8b14c42bbab6c555397fa873eed | |
parent | 51ad879c72e77f8a4021256c4aaf5567c6f587cf (diff) | |
download | gcc-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.adb | 17 |
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; |