From 9e589aa557334c56af0b180341ce490da96980b3 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 28 Jul 2022 07:45:46 +0200 Subject: testsuite/gna: add a test for #2141 --- testsuite/gna/issue2141/test.vhdl | 35 +++++++++++++++++++++++++++++++++++ testsuite/gna/issue2141/test2.vhdl | 35 +++++++++++++++++++++++++++++++++++ testsuite/gna/issue2141/test3.vhdl | 35 +++++++++++++++++++++++++++++++++++ testsuite/gna/issue2141/testsuite.sh | 14 ++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 testsuite/gna/issue2141/test.vhdl create mode 100644 testsuite/gna/issue2141/test2.vhdl create mode 100644 testsuite/gna/issue2141/test3.vhdl create mode 100755 testsuite/gna/issue2141/testsuite.sh (limited to 'testsuite') diff --git a/testsuite/gna/issue2141/test.vhdl b/testsuite/gna/issue2141/test.vhdl new file mode 100644 index 000000000..1efd36a40 --- /dev/null +++ b/testsuite/gna/issue2141/test.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity test is +end; + +architecture BHV of test is + type array_t is array( natural range <> ) of bit_vector; + type arry_arry_t is array( natural range <> ) of array_t; + + function get_min( a : arry_arry_t) return bit_vector is + --variable res : a'element'element; -- fail@AHDL + --variable res : bit_vector(a'element'element'range); -- success@AHDL + variable res : bit_vector(7 downto 0); -- success@GHDL + begin + res:=a(a'left)(a'element'left); + for i in a'range loop + for j in a'element'range loop + if (a(i)(j) ) of bit_vector; + type arry_arry_t is array( natural range <> ) of array_t; + + function get_min( a : arry_arry_t) return bit_vector is + --variable res : a'element'element; -- fail@AHDL + variable res : bit_vector(a'element'element'range); -- success@AHDL + --variable res : bit_vector(7 downto 0); -- success@GHDL + begin + res:=a(a'left)(a'element'left); + for i in a'range loop + for j in a'element'range loop + if (a(i)(j) ) of bit_vector; + type arry_arry_t is array( natural range <> ) of array_t; + + function get_min( a : arry_arry_t) return bit_vector is + variable res : a'element'element; -- fail@AHDL + --variable res : bit_vector(a'element'element'range); -- success@AHDL + --variable res : bit_vector(7 downto 0); -- success@GHDL + begin + res:=a(a'left)(a'element'left); + for i in a'range loop + for j in a'element'range loop + if (a(i)(j)