-- Ada 2005 (AI-251): If tagged type has progenitors we must
-- also initialize tags of the secondary dispatch tables.
- if Present (Abstract_Interfaces (Base_Type (Typ)))
- and then not
- Is_Empty_Elmt_List
- (Abstract_Interfaces (Base_Type (Typ)))
- then
+ if Has_Abstract_Interfaces (Base_Type (Typ)) then
Init_Secondary_Tags
(Typ => Base_Type (Typ),
Target => Target,
-- abstract interfaces we must also initialize the tags of the
-- secondary dispatch tables.
- if Present (Abstract_Interfaces (Base_Type (Typ)))
- and then not
- Is_Empty_Elmt_List (Abstract_Interfaces (Base_Type (Typ)))
- then
+ if Has_Abstract_Interfaces (Base_Type (Typ)) then
Init_Secondary_Tags
(Typ => Base_Type (Typ),
Target => Target,
and then Ekind (Current_Scope) /= E_Return_Statement
and then not Is_Limited_Type (Typ)
then
- Establish_Transient_Scope (Aggr, Sec_Stack =>
- Is_Controlled (Typ) or else Has_Controlled_Component (Typ));
+ Establish_Transient_Scope
+ (Aggr,
+ Sec_Stack =>
+ Is_Controlled (Typ) or else Has_Controlled_Component (Typ));
end if;
Insert_Actions_After (N, Late_Expansion (Aggr, Typ, Occ, Obj => Obj));