diff options
| -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" | 
