diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-09-30 06:16:39 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-09-30 06:16:39 +0200 |
commit | 91a072a3795dd2533d13f8434aa03cc06000ff7a (patch) | |
tree | 0f947aa38734ad710896b858dd531c7fc14c8af5 | |
parent | 4747007bf70c88ac77ff6dc274e8f3b3b7459658 (diff) | |
download | ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.tar.gz ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.tar.bz2 ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.zip |
testsuite/gna: add a test for #2193
close #2193
-rw-r--r-- | testsuite/gna/issue2193/demo.vhdl | 35 | ||||
-rw-r--r-- | testsuite/gna/issue2193/demo2.vhdl | 35 | ||||
-rwxr-xr-x | testsuite/gna/issue2193/testsuite.sh | 14 |
3 files changed, 84 insertions, 0 deletions
diff --git a/testsuite/gna/issue2193/demo.vhdl b/testsuite/gna/issue2193/demo.vhdl new file mode 100644 index 000000000..3b797e559 --- /dev/null +++ b/testsuite/gna/issue2193/demo.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; +use std.textio.all; + +entity demo is +end demo; + +architecture behavioral of demo is + signal clk : std_logic := '0'; + signal i : integer := 0; +begin + + clk <= not clk after 5 ns; + + process(clk) + variable l : line; + variable s : string(1 to 4) := " "; + begin + if rising_edge(clk) then + if i = 1 then + std.env.finish; + end if; + l := new string(1 to 13); + l.all := "hereisastring"; + report l.all; -- fine + report l.all(1 to 4); -- fine + read(l, s); -- fine if commented out + report s; + report l.all; -- fine + report l.all(1 to 4); -- overflow detected + i <= i+1; + end if; + end process; + +end behavioral; diff --git a/testsuite/gna/issue2193/demo2.vhdl b/testsuite/gna/issue2193/demo2.vhdl new file mode 100644 index 000000000..aaffdb30b --- /dev/null +++ b/testsuite/gna/issue2193/demo2.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; +use std.textio.all; + +entity demo2 is +end demo2; + +architecture behavioral of demo2 is + signal clk : std_logic := '0'; + signal i : integer := 0; +begin + + clk <= not clk after 5 ns; + + process(clk) + variable l : line; + variable s : string(1 to 4) := " "; + begin + if rising_edge(clk) then + if i = 1 then + std.env.finish; + end if; + l := new string(1 to 13); + l.all := "hereisastring"; + report l.all; -- fine + report l.all(1 to 4); -- fine + read(l, s); -- fine if commented out + report s; + report l.all; -- fine + report l.all(5 to 13); -- overflow detected + i <= i+1; + end if; + end process; + +end behavioral; diff --git a/testsuite/gna/issue2193/testsuite.sh b/testsuite/gna/issue2193/testsuite.sh new file mode 100755 index 000000000..068140bc7 --- /dev/null +++ b/testsuite/gna/issue2193/testsuite.sh @@ -0,0 +1,14 @@ +#! /bin/sh + +. ../../testenv.sh + +export GHDL_STD_FLAGS=--std=08 +analyze demo2.vhdl +elab_simulate demo2 + +analyze demo.vhdl +elab_simulate_failure demo + +clean + +echo "Test successful" |