diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-04-28 19:34:12 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-04-28 19:34:12 +0200 |
commit | 12938904c0413f9b7398a9a1fe2ee54b74f1b1d0 (patch) | |
tree | 3d8e758294cde90f1b169d162e521f33021d64d1 /testsuite/synth | |
parent | 3a91c5620268b27aa4b57cc9b1ca8fda6d48a0eb (diff) | |
download | ghdl-12938904c0413f9b7398a9a1fe2ee54b74f1b1d0.tar.gz ghdl-12938904c0413f9b7398a9a1fe2ee54b74f1b1d0.tar.bz2 ghdl-12938904c0413f9b7398a9a1fe2ee54b74f1b1d0.zip |
testsuite/synth: add a test for #2045
Diffstat (limited to 'testsuite/synth')
-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" |