diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-07-27 22:22:16 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-07-27 22:30:44 +0200 |
commit | 3976d0f60b3ab41d91767e30ee972ad8ded426a1 (patch) | |
tree | 2012570005cdf888f955953f3f7056a5a1e75b77 /testsuite/synth/issue2144/repro.vhdl | |
parent | af37a8e12d4f06d874c0d4b2a961b7e6b7496c30 (diff) | |
download | ghdl-3976d0f60b3ab41d91767e30ee972ad8ded426a1.tar.gz ghdl-3976d0f60b3ab41d91767e30ee972ad8ded426a1.tar.bz2 ghdl-3976d0f60b3ab41d91767e30ee972ad8ded426a1.zip |
testsuite/synth: add a test for #2144
Diffstat (limited to 'testsuite/synth/issue2144/repro.vhdl')
-rw-r--r-- | testsuite/synth/issue2144/repro.vhdl | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testsuite/synth/issue2144/repro.vhdl b/testsuite/synth/issue2144/repro.vhdl new file mode 100644 index 000000000..a89fbcaa5 --- /dev/null +++ b/testsuite/synth/issue2144/repro.vhdl @@ -0,0 +1,52 @@ +library IEEE; +use IEEE.std_logic_1164.all; + +entity bug is + port ( + dummy : in std_ulogic + ); +end bug; + +architecture struct of bug is + type table_t is array (natural range<>, natural range<>) of natural; + + function fun return table_t is + variable ret : table_t(0 to 1, 0 to 3); + begin + ret(0,0) := 100; + ret(0,1) := 101; + ret(0,2) := 102; + ret(0,3) := 103; + ret(1,0) := 110; + ret(1,1) := 111; + ret(1,2) := 112; + ret(1,3) := 113; + for i in ret'range(1) loop + for j in ret'range(2) loop + report "t("& integer'image(i) & "," & integer'image(j) + & ")=" & integer'image(ret(i,j)); + end loop; + end loop; + return ret; + end function; + + constant table : table_t := fun; +begin + gen_i : for i in table'range(1) generate + gen_j : for j in table'range(2) generate + b : block is + function print return std_ulogic is + begin + report "index="& integer'image(i) & "," & integer'image(j) & "; " & + "length="& integer'image(table'length(1)) & "," & integer'image(table'length(2)); + return '0'; + end function; + + constant tmp : std_ulogic := print; + constant entry : natural := table(i, j); + begin + + end block; + end generate; + end generate; +end architecture; |