summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/discr14.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/discr14.ads')
-rw-r--r--gcc/testsuite/gnat.dg/discr14.ads42
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/discr14.ads b/gcc/testsuite/gnat.dg/discr14.ads
new file mode 100644
index 000000000..a6b5a0a87
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr14.ads
@@ -0,0 +1,42 @@
+package Discr14 is
+
+ type COMPLETION_CODE is (SUCCESS, FAILURE, NONE);
+
+ type T_SW_TYPE is (NONE, COMPLETION_CODE_TYPE);
+
+ type T_COMPLETION_CODE_RANGE (CONSTRAINED: BOOLEAN := FALSE) is
+ record
+ case CONSTRAINED is
+ when TRUE =>
+ FIRST : COMPLETION_CODE := SUCCESS;
+ LAST : COMPLETION_CODE := FAILURE;
+ when FALSE =>
+ null;
+ end case;
+ end record;
+
+ type T_SW_DIMENSIONS is range 0 .. 3;
+
+ type T_SW_INDEX_LIST is array (T_SW_DIMENSIONS range <>) of POSITIVE;
+
+ type T_SW_TYPE_DESCRIPTOR (SW_TYPE : T_SW_TYPE := NONE;
+ DIMENSION : T_SW_DIMENSIONS := 0) is
+ record
+ BOUNDS : T_SW_INDEX_LIST (1 .. DIMENSION);
+
+ case SW_TYPE is
+
+ when COMPLETION_CODE_TYPE =>
+ COMPLETION_CODE_RANGE : T_COMPLETION_CODE_RANGE;
+
+ when OTHERS =>
+ null;
+
+ end case;
+ end record;
+
+ type SW_TYPE_INFO is access T_SW_TYPE_DESCRIPTOR;
+
+ procedure ASSIGN(TARGET : in out SW_TYPE_INFO; SOURCE : in SW_TYPE_INFO) ;
+
+end Discr14;