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;