diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/discr14.ads')
-rw-r--r-- | gcc/testsuite/gnat.dg/discr14.ads | 42 |
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; |