-- { dg-do compile } with Ada.Unchecked_Deallocation; package body Task3 is procedure Destroy (Obj : in out Child_Wrapper) is procedure Free is new Ada.Unchecked_Deallocation (Child, Child_Ptr); begin Free (Obj.Ptr); end Destroy; end Task3;