3 procedure BIP_Aggregate_Bug is
5 package Limited_Types is
7 type Lim_Tagged is tagged limited record
11 type Lim_Ext is new Lim_Tagged with record
15 function Func_Lim_Tagged (Choice : Integer) return Lim_Tagged'Class;
19 package body Limited_Types is
21 function Func_Lim_Tagged (Choice : Integer) return Lim_Tagged'Class is
25 return Lim_Ext'(Root_Comp => Choice, Ext_Comp => Choice);
27 return Result : Lim_Tagged'Class
28 := Lim_Ext'(Root_Comp => Choice, Ext_Comp => Choice);
30 return Lim_Tagged'(Root_Comp => Choice);
38 LT_Root : Lim_Tagged'Class := Func_Lim_Tagged (Choice => 999);
39 LT_Ext1 : Lim_Tagged'Class := Func_Lim_Tagged (Choice => 111);
40 LT_Ext2 : Lim_Tagged'Class := Func_Lim_Tagged (Choice => 222);
43 if LT_Root.Root_Comp /= 999
44 or else Lim_Ext (LT_Ext1).Ext_Comp /= 111
45 or else Lim_Ext (LT_Ext2).Ext_Comp /= 222
49 end BIP_Aggregate_Bug;