summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/discr21.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/discr21.adb')
-rw-r--r--gcc/testsuite/gnat.dg/discr21.adb34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/discr21.adb b/gcc/testsuite/gnat.dg/discr21.adb
new file mode 100644
index 000000000..5c105cdb2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr21.adb
@@ -0,0 +1,34 @@
+-- { dg-do compile }
+-- { dg-options "-gnatws -O3" }
+
+with Discr21_Pkg; use Discr21_Pkg;
+
+package body Discr21 is
+
+ type Index is new Natural range 0 .. 100;
+
+ type Arr is array (Index range <> ) of Position;
+
+ type Rec(Size : Index := 1) is record
+ A : Arr(1 .. Size);
+ end record;
+
+ Data : Rec;
+
+ function To_V(pos : Position) return VPosition is
+ begin
+ return To_Position(pos.x, pos.y, pos.z);
+ end;
+
+ procedure Read(Data : Rec) is
+ pos : VPosition := To_V (Data.A(1));
+ begin
+ null;
+ end;
+
+ procedure Test is
+ begin
+ Read (Data);
+ end;
+
+end Discr21;