diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -6000,7 +6000,7 @@ package body Exp_Ch3 is -- The parent type is private then we need to inherit any TSS operations -- from the full view. - if Ekind (Par_Id) in Private_Kind + if Is_Private_Type (Par_Id) and then Present (Full_View (Par_Id)) then Par_Id := Base_Type (Full_View (Par_Id)); @@ -6036,7 +6036,7 @@ package body Exp_Ch3 is -- If the derived type itself is private with a full view, then -- associate the full view with the inherited TSS_Elist as well. - if Ekind (B_Id) in Private_Kind + if Is_Private_Type (B_Id) and then Present (Full_View (B_Id)) then Ensure_Freeze_Node (Base_Type (Full_View (B_Id))); diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -3761,7 +3761,7 @@ package body Exp_Ch6 is -- because the object has underlying discriminants with defaults. if Present (Extra_Constrained (Formal)) then - if Ekind (Etype (Prev)) in Private_Kind + if Is_Private_Type (Etype (Prev)) and then not Has_Discriminants (Base_Type (Etype (Prev))) then Add_Extra_Actual diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -8901,7 +8901,7 @@ package body Sem_Ch6 is end if; if not Has_Discriminants (Formal_Type) - and then Ekind (Formal_Type) in Private_Kind + and then Is_Private_Type (Formal_Type) and then Present (Underlying_Type (Formal_Type)) then Formal_Type := Underlying_Type (Formal_Type); @@ -11253,7 +11253,7 @@ package body Sem_Ch6 is -- If the entity is a private type, then it must be declared in a -- visible part. - if Ekind (T) in Private_Kind then + if Is_Private_Type (T) then return True; elsif Is_Type (T) and then Has_Private_Declaration (T) then