diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/synth/issue2045/ghdlcrash.vhdl | 35 | ||||
-rwxr-xr-x | testsuite/synth/issue2045/testsuite.sh | 8 |
2 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/synth/issue2045/ghdlcrash.vhdl b/testsuite/synth/issue2045/ghdlcrash.vhdl new file mode 100644 index 000000000..4fda4dde4 --- /dev/null +++ b/testsuite/synth/issue2045/ghdlcrash.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity ghdlcrash is + port ( + i : in std_logic; + o : out std_logic + ); +end ghdlcrash; + +architecture synth of ghdlcrash is + + -- Utility function to calculate minimum of two values + function min(a, b : natural) return natural is + variable m : natural := 0; + begin + + -- This line makes GHDL crash + m := a when a <= b else b; + + -- This works + if a <= b then m := a ; else m := b; end if; + + return m; + end function; + + -- Initialize general input grouping + constant CST : natural := min(0, 0); + +begin + + -- Phony functionality + o <= i; + +end architecture; diff --git a/testsuite/synth/issue2045/testsuite.sh b/testsuite/synth/issue2045/testsuite.sh new file mode 100755 index 000000000..541971758 --- /dev/null +++ b/testsuite/synth/issue2045/testsuite.sh @@ -0,0 +1,8 @@ +#! /bin/sh + +. ../../testenv.sh + +GHDL_STD_FLAGS=--std=08 +synth_only ghdlcrash + +echo "Test successful" |