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;