-- { dg-do run } -- { dg-options "-gnatws" } procedure discr4 is package Pkg is type Rec_Comp (D : access Integer) is record Data : Integer; end record; -- type I is interface; procedure Test (Obj : I) is abstract; -- Num : aliased Integer := 10; -- type Root (D : access Integer) is tagged record C1 : Rec_Comp (D); -- test end record; -- type DT is new Root and I with null record; -- procedure Dummy (Obj : DT); procedure Test (Obj : DT); end; -- package body Pkg is procedure Dummy (Obj : DT) is begin raise Program_Error; end; -- procedure Test (Obj : DT) is begin null; end; end; -- use Pkg; -- procedure CW_Test (Obj : I'Class) is begin Obj.Test; end; -- Obj : DT (Num'Access); begin CW_Test (Obj); end;