diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-08-07 06:38:08 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-08-07 06:38:08 +0200 |
commit | bd2cfc9f25dbe2a7e7359936fca38538c89043fa (patch) | |
tree | 8fd11c2df92d3f4d5133576341f5e736417e8029 /testsuite | |
parent | c689f6ad051c6a17ade3fb2d50f9383095321cf2 (diff) | |
download | ghdl-bd2cfc9f25dbe2a7e7359936fca38538c89043fa.tar.gz ghdl-bd2cfc9f25dbe2a7e7359936fca38538c89043fa.tar.bz2 ghdl-bd2cfc9f25dbe2a7e7359936fca38538c89043fa.zip |
testsuite/gna: add test for #922
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/gna/issue922/dut.vhdl | 22 | ||||
-rwxr-xr-x | testsuite/gna/issue922/testsuite.sh | 11 |
2 files changed, 33 insertions, 0 deletions
diff --git a/testsuite/gna/issue922/dut.vhdl b/testsuite/gna/issue922/dut.vhdl new file mode 100644 index 000000000..acb8c951f --- /dev/null +++ b/testsuite/gna/issue922/dut.vhdl @@ -0,0 +1,22 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity dut is +generic ( + adr_width : positive := 16 +); +end entity dut; +architecture rtl of dut is + function deser(b : bit_vector) return bit_vector is + variable ab : bit_vector(adr_width-1 downto 0); + variable ba : bit_vector(adr_width-1 downto 0); + begin + -- Below causes crash + (ab, ba) := b; + return ab&ba; + end function; + signal s1 : bit_vector(adr_width*2-1 downto 0); + signal s2 : bit_vector(adr_width-1 downto 0); +begin + s1 <= deser(s2); +end architecture rtl; diff --git a/testsuite/gna/issue922/testsuite.sh b/testsuite/gna/issue922/testsuite.sh new file mode 100755 index 000000000..0a831521f --- /dev/null +++ b/testsuite/gna/issue922/testsuite.sh @@ -0,0 +1,11 @@ +#! /bin/sh + +. ../../testenv.sh + +export GHDL_STD_FLAGS=--std=08 +analyze dut.vhdl +elab_simulate dut + +clean + +echo "Test successful" |