1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
with Ada.Tags; package body Controlled5_Pkg is type Child is new Root with null record; function Dummy (I : Integer) return Root'Class is A1 : T_Root_Class := new Child; My_Var : Root'Class := A1.all; begin if I = 0 then return My_Var; else return Dummy (I - 1); end if; end Dummy; end Controlled5_Pkg;