* sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
or protected type with discriminants, do not constrain the
corresponding record type if the subtype declaration has no
discriminant constraints. This can be the case in source code, or in
the subtype declaration created to rename an actual type within an
instantiation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89670
138bc75d-0d04-0410-961f-
82ee72b054a4
Set_Primitive_Operations (Full, Primitive_Operations (Full_Base));
Set_Class_Wide_Type (Full, Class_Wide_Type (Full_Base));
Set_Primitive_Operations (Full, Primitive_Operations (Full_Base));
Set_Class_Wide_Type (Full, Class_Wide_Type (Full_Base));
+ -- If this is a subtype of a protected or task type, constrain its
+ -- corresponding record, unless this is a subtype without constraints,
+ -- i.e. a simple renaming as with an actual subtype in an instance.
+
elsif Is_Concurrent_Type (Full_Base) then
if Has_Discriminants (Full)
and then Present (Corresponding_Record_Type (Full_Base))
elsif Is_Concurrent_Type (Full_Base) then
if Has_Discriminants (Full)
and then Present (Corresponding_Record_Type (Full_Base))
+ and then
+ not Is_Empty_Elmt_List (Discriminant_Constraint (Full))
then
Set_Corresponding_Record_Type (Full,
Constrain_Corresponding_Record
then
Set_Corresponding_Record_Type (Full,
Constrain_Corresponding_Record