From cfc292a4d7319d6599b1d9f74b879301d71af63d Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 20 Nov 2018 17:24:36 +0100 Subject: Add reproducer for #610. --- testsuite/gna/issue610/repro1.vhdl | 18 ++++++++++++++++++ testsuite/gna/issue610/repro2.vhdl | 15 +++++++++++++++ testsuite/gna/issue610/repro3.vhdl | 17 +++++++++++++++++ testsuite/gna/issue610/repro4.vhdl | 19 +++++++++++++++++++ testsuite/gna/issue610/testsuite.sh | 23 +++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 testsuite/gna/issue610/repro1.vhdl create mode 100644 testsuite/gna/issue610/repro2.vhdl create mode 100644 testsuite/gna/issue610/repro3.vhdl create mode 100644 testsuite/gna/issue610/repro4.vhdl create mode 100755 testsuite/gna/issue610/testsuite.sh (limited to 'testsuite') diff --git a/testsuite/gna/issue610/repro1.vhdl b/testsuite/gna/issue610/repro1.vhdl new file mode 100644 index 000000000..dfbc91f7d --- /dev/null +++ b/testsuite/gna/issue610/repro1.vhdl @@ -0,0 +1,18 @@ +entity repro1 is + port (d : bit_vector := x"01"); +end repro1; + + +architecture behav of repro1 +is + type t_bv_array is array (natural range <>) of bit_vector; +begin + process + variable v : t_bv_array (0 to 0)(d'length - 1 downto 0); + begin + v(0) := d; + assert v(0)(0) = '1' severity failure; + assert v(0)(1) = '0' severity failure; + wait; + end process; +end behav; diff --git a/testsuite/gna/issue610/repro2.vhdl b/testsuite/gna/issue610/repro2.vhdl new file mode 100644 index 000000000..1473eeb76 --- /dev/null +++ b/testsuite/gna/issue610/repro2.vhdl @@ -0,0 +1,15 @@ +entity repro2 is + generic (l : natural := 10); +end repro2; + +architecture behav of repro2 is +begin + process + variable v : string (0 to l); + alias a : string is v; + begin + v := (others => ' '); + a := (others => 'x'); + wait; + end process; +end behav; diff --git a/testsuite/gna/issue610/repro3.vhdl b/testsuite/gna/issue610/repro3.vhdl new file mode 100644 index 000000000..dda5b8963 --- /dev/null +++ b/testsuite/gna/issue610/repro3.vhdl @@ -0,0 +1,17 @@ +entity repro3 is +end repro3; + +architecture behav of repro3 is + procedure set (v : out string) is + begin + v := (others => ' '); + end set; +begin + process + variable s : string (1 to 4); + begin + set (s); + assert s = " " severity failure; + wait; + end process; +end behav; diff --git a/testsuite/gna/issue610/repro4.vhdl b/testsuite/gna/issue610/repro4.vhdl new file mode 100644 index 000000000..6ede420d2 --- /dev/null +++ b/testsuite/gna/issue610/repro4.vhdl @@ -0,0 +1,19 @@ +entity repro4 is +end repro4; + +architecture behav of repro4 is + procedure set (signal v : out string) is + begin + v <= (others => ' '); + end set; + signal s : string (1 to 3); +begin + set (s); + + process + begin + wait for 0 ns; + assert s = " " severity failure; + wait; + end process; +end behav; diff --git a/testsuite/gna/issue610/testsuite.sh b/testsuite/gna/issue610/testsuite.sh new file mode 100755 index 000000000..9c9cc5c5c --- /dev/null +++ b/testsuite/gna/issue610/testsuite.sh @@ -0,0 +1,23 @@ +#! /bin/sh + +. ../../testenv.sh + +export GHDL_STD_FLAGS=--std=08 +analyze repro1.vhdl +elab_simulate repro1 + +clean + +export GHDL_STD_FLAGS=-frelaxed-rules +analyze repro2.vhdl +elab_simulate repro2 + +analyze repro3.vhdl +#elab_simulate repro3 + +analyze repro4.vhdl +#elab_simulate repro4 + +clean + +echo "Test successful" -- cgit v1.2.3