aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-06-13 18:58:08 +0200
committerTristan Gingold <tgingold@free.fr>2020-06-13 18:58:08 +0200
commit9f99eee0818eafb3c544181c4ad2eda00d59e5ce (patch)
treef6c6a26a8a4ad3cebe02d6ddca6e14e9520ca526 /testsuite
parent71a81bae09057650e72802bc39f9ebe97b7e6bd8 (diff)
downloadghdl-9f99eee0818eafb3c544181c4ad2eda00d59e5ce.tar.gz
ghdl-9f99eee0818eafb3c544181c4ad2eda00d59e5ce.tar.bz2
ghdl-9f99eee0818eafb3c544181c4ad2eda00d59e5ce.zip
testsuite/gna: add a test for #1361
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/gna/issue1361/repro.vhdl19
-rw-r--r--testsuite/gna/issue1361/repro2.vhdl15
-rw-r--r--testsuite/gna/issue1361/repro3.vhdl15
-rw-r--r--testsuite/gna/issue1361/repro3err.vhdl15
-rwxr-xr-xtestsuite/gna/issue1361/testsuite.sh19
5 files changed, 83 insertions, 0 deletions
diff --git a/testsuite/gna/issue1361/repro.vhdl b/testsuite/gna/issue1361/repro.vhdl
new file mode 100644
index 000000000..54447849d
--- /dev/null
+++ b/testsuite/gna/issue1361/repro.vhdl
@@ -0,0 +1,19 @@
+ENTITY repro IS
+END repro;
+
+ARCHITECTURE vhdl_behavioral of repro IS
+ constant userpreload : boolean := true;
+ CONSTANT MaxData : NATURAL := 16#FF#; --255;
+ CONSTANT AddrRANGE : NATURAL := 16#0FFFFFF#;
+
+ TYPE MemArray IS ARRAY (0 TO AddrRANGE) OF INTEGER RANGE -1 TO MaxData;
+ SHARED VARIABLE Mem : MemArray := (OTHERS => MaxData);
+begin
+ MemPreload : PROCESS
+ BEGIN
+ IF UserPreload THEN
+ Mem := (OTHERS => MaxData);
+ end if;
+ WAIT;
+ END PROCESS MemPreload;
+END vhdl_behavioral;
diff --git a/testsuite/gna/issue1361/repro2.vhdl b/testsuite/gna/issue1361/repro2.vhdl
new file mode 100644
index 000000000..428073458
--- /dev/null
+++ b/testsuite/gna/issue1361/repro2.vhdl
@@ -0,0 +1,15 @@
+ENTITY repro2 IS
+END repro2;
+
+ARCHITECTURE behav of repro2 IS
+ CONSTANT AddrRANGE : NATURAL := 16#0FFFFFF#;
+
+ TYPE MemArray IS ARRAY (0 TO AddrRANGE) OF bit_vector(7 downto 0);
+begin
+ process
+ VARIABLE Mem : MemArray := (OTHERS => x"00");
+ begin
+ Mem := (OTHERS => x"ff");
+ WAIT;
+ END PROCESS;
+END behav;
diff --git a/testsuite/gna/issue1361/repro3.vhdl b/testsuite/gna/issue1361/repro3.vhdl
new file mode 100644
index 000000000..1309a3ba0
--- /dev/null
+++ b/testsuite/gna/issue1361/repro3.vhdl
@@ -0,0 +1,15 @@
+ENTITY repro3 IS
+END repro3;
+
+ARCHITECTURE behav of repro3 IS
+ CONSTANT AddrRANGE : NATURAL := 16#0FFFFFF#;
+
+ TYPE MemArray IS ARRAY (0 TO AddrRANGE) OF bit_vector;
+begin
+ process
+ VARIABLE Mem : MemArray(open)(7 downto 0) := (OTHERS => x"00");
+ begin
+ Mem := (OTHERS => x"ff");
+ WAIT;
+ END PROCESS;
+END behav;
diff --git a/testsuite/gna/issue1361/repro3err.vhdl b/testsuite/gna/issue1361/repro3err.vhdl
new file mode 100644
index 000000000..9d7b82007
--- /dev/null
+++ b/testsuite/gna/issue1361/repro3err.vhdl
@@ -0,0 +1,15 @@
+ENTITY repro3err IS
+END repro3err;
+
+ARCHITECTURE behav of repro3err IS
+ CONSTANT AddrRANGE : NATURAL := 16#0FFFFFF#;
+
+ TYPE MemArray IS ARRAY (0 TO AddrRANGE) OF bit_vector;
+begin
+ process
+ VARIABLE Mem : MemArray(open)(7 downto 0) := (OTHERS => x"00");
+ begin
+ Mem := (OTHERS => x"fff");
+ WAIT;
+ END PROCESS;
+END behav;
diff --git a/testsuite/gna/issue1361/testsuite.sh b/testsuite/gna/issue1361/testsuite.sh
new file mode 100755
index 000000000..f809c42d2
--- /dev/null
+++ b/testsuite/gna/issue1361/testsuite.sh
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+analyze repro.vhdl
+elab_simulate repro
+
+analyze repro2.vhdl
+elab_simulate repro2
+
+clean
+
+export GHDL_STD_FLAGS=--std=08
+analyze repro3.vhdl
+elab_simulate repro3
+
+clean
+
+echo "Test successful"