aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue816/repro.vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-05-07 20:05:57 +0200
committerTristan Gingold <tgingold@free.fr>2019-05-07 20:05:57 +0200
commit34666ab2dc542936871357d4fe6f54600c5aa325 (patch)
tree5713c8b4077f263641e25788e4bc3080289016d1 /testsuite/gna/issue816/repro.vhdl
parenta5b13e2e4b25d8b1258fa2af19b8840b39a2942f (diff)
downloadghdl-34666ab2dc542936871357d4fe6f54600c5aa325.tar.gz
ghdl-34666ab2dc542936871357d4fe6f54600c5aa325.tar.bz2
ghdl-34666ab2dc542936871357d4fe6f54600c5aa325.zip
Add reproducer for #816
Diffstat (limited to 'testsuite/gna/issue816/repro.vhdl')
-rw-r--r--testsuite/gna/issue816/repro.vhdl40
1 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/gna/issue816/repro.vhdl b/testsuite/gna/issue816/repro.vhdl
new file mode 100644
index 000000000..f67e38825
--- /dev/null
+++ b/testsuite/gna/issue816/repro.vhdl
@@ -0,0 +1,40 @@
+library ieee;
+context ieee.ieee_std_context;
+
+package integer_vector_ptr_pkg is
+ subtype index_t is integer range -1 to integer'high;
+ type integer_vector_ptr_t is record
+ index : index_t;
+ end record;
+
+ impure function get(ptr : integer_vector_ptr_t; index : integer)
+ return integer;
+
+end package;
+
+entity tb_test is
+ generic ( runner_cfg : string );
+end entity;
+
+use work.integer_vector_ptr_pkg.all;
+
+architecture tb of tb_test is
+
+ constant params: integer_vector_ptr_t := (index => 0);
+
+ type time_t is array (natural range 0 to 1) of natural;
+
+ procedure get_time(variable t: inout time_t) is begin
+ t(0) := get(params, 0);
+ t(1) := get(params, 1);
+ end;
+
+begin
+
+ run: process(all)
+ variable r: time_t;
+ begin
+ get_time(r);
+ end process;
+
+end architecture;