-- { dg-do run } with Ada.Tags; use Ada.Tags; with Ada.Text_IO; use Ada.Text_IO; procedure aggr3 is package Pkg is type Element is interface; type Event is tagged record V1 : Natural; V2 : Natural; end record; function Create return Event; type D_Event is new Event and Element with null record; function Create return D_Event; end; package body Pkg is function Create return Event is Obj : Event; begin Obj.V1 := 0; return Obj; end; function Create return D_Event is begin return (Event'(Create) with null record); end; end; use Pkg; procedure CW_Test (Obj : Element'Class) is S : Constant String := Expanded_Name (Obj'Tag); begin null; end; begin CW_Test (Create); end;