aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue1277
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-05-04 19:05:48 +0200
committerTristan Gingold <tgingold@free.fr>2020-05-04 19:05:48 +0200
commit17952cb41f2e673c42f2bb863f2119fcececdba1 (patch)
tree1963b9eb59187bfd60fd5e61ecdc6319235ea369 /testsuite/synth/issue1277
parentdd54ea2665bc2901b2fec4e5ecdef7438e671992 (diff)
downloadghdl-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.vhdl23
-rwxr-xr-xtestsuite/synth/issue1277/testsuite.sh10
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"