OSDN Git Service

* gnat.dg/pak.ad[sb]: New test.
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 May 2008 13:46:21 +0000 (13:46 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 May 2008 13:46:21 +0000 (13:46 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135926 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/pak.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/pak.ads [new file with mode: 0644]

index 156ea63..5f0d17b 100644 (file)
@@ -12,6 +12,7 @@
 
        * gnat.dg/set_in_pproc.adb: New test.
        * gnat.dg/modular2.adb: New test.
+       * gnat.dg/pak.ad[sb]: New test.
 
 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
 
diff --git a/gcc/testsuite/gnat.dg/pak.adb b/gcc/testsuite/gnat.dg/pak.adb
new file mode 100644 (file)
index 0000000..0430482
--- /dev/null
@@ -0,0 +1,15 @@
+--  { dg-do compile }
+package body Pak is
+   pragma Suppress (Discriminant_Check);
+   --  Suppress discriminant check to prevent the assignment from using
+   --  the predefined primitive _assign.
+   
+   procedure Initialize (X : in out T) is begin null; end Initialize;
+   procedure Finalize (X : in out T) is begin null; end Finalize;
+   
+   procedure Assign (X : out T'Class) is
+      Y : T;
+   begin
+      T (X) := Y;
+   end Assign;
+end Pak;
diff --git a/gcc/testsuite/gnat.dg/pak.ads b/gcc/testsuite/gnat.dg/pak.ads
new file mode 100644 (file)
index 0000000..e1e2d0d
--- /dev/null
@@ -0,0 +1,7 @@
+with Ada.Finalization;
+package Pak is
+   type T is new Ada.Finalization.Controlled with null record;
+   procedure Initialize (X : in out T);
+   procedure Finalize (X : in out T);
+   procedure Assign (X : out T'Class);
+end Pak;