diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/aggr3.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/aggr3.adb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/aggr3.adb b/gcc/testsuite/gnat.dg/aggr3.adb new file mode 100644 index 000000000..dd6cec159 --- /dev/null +++ b/gcc/testsuite/gnat.dg/aggr3.adb @@ -0,0 +1,36 @@ +-- { 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; |