diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-05-04 19:05:48 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-05-04 19:05:48 +0200 |
commit | 17952cb41f2e673c42f2bb863f2119fcececdba1 (patch) | |
tree | 1963b9eb59187bfd60fd5e61ecdc6319235ea369 /testsuite/synth/issue1277 | |
parent | dd54ea2665bc2901b2fec4e5ecdef7438e671992 (diff) | |
download | ghdl-17952cb41f2e673c42f2bb863f2119fcececdba1.tar.gz ghdl-17952cb41f2e673c42f2bb863f2119fcececdba1.tar.bz2 ghdl-17952cb41f2e673c42f2bb863f2119fcececdba1.zip |
testsuite/synth: add a test for #1277
Diffstat (limited to 'testsuite/synth/issue1277')
-rw-r--r-- | testsuite/synth/issue1277/issue.vhdl | 23 | ||||
-rwxr-xr-x | testsuite/synth/issue1277/testsuite.sh | 10 |
2 files changed, 33 insertions, 0 deletions
diff --git a/testsuite/synth/issue1277/issue.vhdl b/testsuite/synth/issue1277/issue.vhdl new file mode 100644 index 000000000..4cff77c52 --- /dev/null +++ b/testsuite/synth/issue1277/issue.vhdl @@ -0,0 +1,23 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity issue is + port (lo_1 : out std_logic_vector (1 downto 0); + lo_2 : out std_logic_vector (1 downto 0)); +end entity issue; + +architecture beh of issue is + function fun (arg : integer) return integer is + begin + return arg - 1; + end function; + + signal hi_c : std_logic_vector (15-1 downto 1); + signal hi_f : std_logic_vector (fun(15) downto 1); + + signal foobar_c : std_logic_vector (15 downto 0) := (others => '0'); + signal foobar_f : std_logic_vector (fun(16) downto 0) := (others=>'0'); +begin + (hi_c, lo_1) <= foobar_f; -- works + (hi_f, lo_2) <= foobar_c; -- crashes +end architecture; diff --git a/testsuite/synth/issue1277/testsuite.sh b/testsuite/synth/issue1277/testsuite.sh new file mode 100755 index 000000000..aac5be939 --- /dev/null +++ b/testsuite/synth/issue1277/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + +GHDL_STD_FLAGS=--std=08 + +synth_analyze issue +clean + +echo "Test successful" |