aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue1283
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-05-05 04:39:04 +0200
committerTristan Gingold <tgingold@free.fr>2020-05-05 04:39:04 +0200
commit759ea90fecb9b73e7b320fb86f290195d3c6e026 (patch)
tree0086e304e931ce10d98b43303f450527431ea69c /testsuite/synth/issue1283
parent3f02d97cfe261bb96b7717c4e6199b20f253b361 (diff)
downloadghdl-759ea90fecb9b73e7b320fb86f290195d3c6e026.tar.gz
ghdl-759ea90fecb9b73e7b320fb86f290195d3c6e026.tar.bz2
ghdl-759ea90fecb9b73e7b320fb86f290195d3c6e026.zip
testsuite/synth: add test from #1283
Diffstat (limited to 'testsuite/synth/issue1283')
-rw-r--r--testsuite/synth/issue1283/issue1.vhdl15
-rw-r--r--testsuite/synth/issue1283/issue2.vhdl22
-rw-r--r--testsuite/synth/issue1283/issue3.vhdl15
-rw-r--r--testsuite/synth/issue1283/issue4.vhdl16
-rwxr-xr-xtestsuite/synth/issue1283/testsuite.sh13
5 files changed, 81 insertions, 0 deletions
diff --git a/testsuite/synth/issue1283/issue1.vhdl b/testsuite/synth/issue1283/issue1.vhdl
new file mode 100644
index 000000000..ee001e537
--- /dev/null
+++ b/testsuite/synth/issue1283/issue1.vhdl
@@ -0,0 +1,15 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity issue1 is
+end issue1;
+
+architecture beh of issue1 is
+ type t_rec is
+ record
+ elem : std_logic_vector;
+ end record;
+begin
+ assert t_rec'(elem => "000") = t_rec'(elem => "000");
+ assert t_rec'(elem => "001") = t_rec'(elem => "000") severity note;
+end architecture beh;
diff --git a/testsuite/synth/issue1283/issue2.vhdl b/testsuite/synth/issue1283/issue2.vhdl
new file mode 100644
index 000000000..31425026d
--- /dev/null
+++ b/testsuite/synth/issue1283/issue2.vhdl
@@ -0,0 +1,22 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity issue2 is
+end issue2;
+
+architecture beh of issue2 is
+ type t_rec is
+ record
+ elem : std_logic_vector (3 downto 0);
+ end record;
+
+ function fun (arg : std_logic_vector) return t_rec is
+ begin
+ return t_rec'(elem => arg);
+ end function;
+begin
+ -- wrong length
+ -- -a accepts
+ -- -synth error + bug report
+ assert fun ("000") = fun ("000");
+end architecture beh;
diff --git a/testsuite/synth/issue1283/issue3.vhdl b/testsuite/synth/issue1283/issue3.vhdl
new file mode 100644
index 000000000..809fcd49c
--- /dev/null
+++ b/testsuite/synth/issue1283/issue3.vhdl
@@ -0,0 +1,15 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity issue3 is
+end issue3;
+
+architecture beh of issue3 is
+ type t_rec is
+ record
+ elem : std_logic_vector (3 downto 0);
+ end record;
+begin
+ assert t_rec'(elem => 4b"0") = t_rec'(elem => 3b"0");
+end architecture beh;
+
diff --git a/testsuite/synth/issue1283/issue4.vhdl b/testsuite/synth/issue1283/issue4.vhdl
new file mode 100644
index 000000000..41078caf7
--- /dev/null
+++ b/testsuite/synth/issue1283/issue4.vhdl
@@ -0,0 +1,16 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity issue4 is
+end issue4;
+
+architecture beh of issue4 is
+ type t_rec is
+ record
+ elem : std_logic_vector (3 downto 0);
+ end record;
+
+ signal foo : std_logic_vector (4 downto 0);
+begin
+ assert t_rec'(elem => foo) = t_rec'(elem => foo);
+end architecture beh;
diff --git a/testsuite/synth/issue1283/testsuite.sh b/testsuite/synth/issue1283/testsuite.sh
new file mode 100755
index 000000000..db68cde84
--- /dev/null
+++ b/testsuite/synth/issue1283/testsuite.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+GHDL_STD_FLAGS=--std=08
+synth_analyze issue1
+synth_failure issue2
+synth_failure issue3
+synth_failure issue4
+
+clean
+
+echo "Test successful"