aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-04-01 20:39:25 +0200
committerTristan Gingold <tgingold@free.fr>2021-04-02 13:06:11 +0200
commitc33f41e4612347d1fcbb9a37bc82249d7b8366eb (patch)
tree716df9c5631b1107b92480f1a7c5a43b049d2673 /testsuite
parent1c17875a1430046d19f91946dd5689fc5db43b84 (diff)
downloadghdl-c33f41e4612347d1fcbb9a37bc82249d7b8366eb.tar.gz
ghdl-c33f41e4612347d1fcbb9a37bc82249d7b8366eb.tar.bz2
ghdl-c33f41e4612347d1fcbb9a37bc82249d7b8366eb.zip
testsuite/gna: add a testcase for #1704
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/gna/issue1704/orig.vhdl5
-rw-r--r--testsuite/gna/issue1704/repro1.vhdl15
-rw-r--r--testsuite/gna/issue1704/repro2.vhdl21
-rw-r--r--testsuite/gna/issue1704/repro3.vhdl24
-rwxr-xr-xtestsuite/gna/issue1704/testsuite.sh17
5 files changed, 82 insertions, 0 deletions
diff --git a/testsuite/gna/issue1704/orig.vhdl b/testsuite/gna/issue1704/orig.vhdl
new file mode 100644
index 000000000..9b89c5292
--- /dev/null
+++ b/testsuite/gna/issue1704/orig.vhdl
@@ -0,0 +1,5 @@
+subtype word is std_logic_vector(word_len - 1 downto 0);
+function F return word is
+begin
+ return ("1010","101010101010", others => '0');
+end function;
diff --git a/testsuite/gna/issue1704/repro1.vhdl b/testsuite/gna/issue1704/repro1.vhdl
new file mode 100644
index 000000000..bbd41f75a
--- /dev/null
+++ b/testsuite/gna/issue1704/repro1.vhdl
@@ -0,0 +1,15 @@
+entity repro1 is
+end;
+
+architecture behav of repro1 is
+ constant word_len : natural := 20;
+
+ subtype word is bit_vector(word_len - 1 downto 0);
+ function F return word is
+ begin
+ return ("1010","101010101010", others => '0');
+ end function;
+begin
+ assert f = b"1010_101010101010_0000";
+end;
+
diff --git a/testsuite/gna/issue1704/repro2.vhdl b/testsuite/gna/issue1704/repro2.vhdl
new file mode 100644
index 000000000..07ea0873b
--- /dev/null
+++ b/testsuite/gna/issue1704/repro2.vhdl
@@ -0,0 +1,21 @@
+entity repro2 is
+ generic (
+ word_len : natural := 20);
+end;
+
+architecture behav of repro2 is
+ subtype word is bit_vector(word_len - 1 downto 0);
+
+ function F return word is
+ begin
+ return ("1010","101010101010", others => '0');
+ end function;
+begin
+ assert f = b"1010_101010101010_0000" severity failure;
+ process
+ begin
+ report to_string(f);
+ wait;
+ end process;
+end;
+
diff --git a/testsuite/gna/issue1704/repro3.vhdl b/testsuite/gna/issue1704/repro3.vhdl
new file mode 100644
index 000000000..3a2052911
--- /dev/null
+++ b/testsuite/gna/issue1704/repro3.vhdl
@@ -0,0 +1,24 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity repro3 is
+ generic (
+ word_len : natural := 20);
+end;
+
+architecture behav of repro3 is
+ subtype word is std_logic_vector(word_len - 1 downto 0);
+
+ function F return word is
+ begin
+ return ("1010","101010101010", others => '0');
+ end function;
+begin
+ assert f = b"1010_101010101010_0000" severity failure;
+ process
+ begin
+ report to_string(f);
+ wait;
+ end process;
+end;
+
diff --git a/testsuite/gna/issue1704/testsuite.sh b/testsuite/gna/issue1704/testsuite.sh
new file mode 100755
index 000000000..fd66f2e79
--- /dev/null
+++ b/testsuite/gna/issue1704/testsuite.sh
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+export GHDL_STD_FLAGS=--std=08
+analyze repro1.vhdl
+elab_simulate repro1
+
+analyze repro2.vhdl
+elab_simulate repro2
+
+analyze repro3.vhdl
+elab_simulate repro3
+
+clean
+
+echo "Test successful"