From 12938904c0413f9b7398a9a1fe2ee54b74f1b1d0 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 28 Apr 2022 19:34:12 +0200 Subject: testsuite/synth: add a test for #2045 --- testsuite/synth/issue2045/ghdlcrash.vhdl | 35 ++++++++++++++++++++++++++++++++ testsuite/synth/issue2045/testsuite.sh | 8 ++++++++ 2 files changed, 43 insertions(+) create mode 100644 testsuite/synth/issue2045/ghdlcrash.vhdl create mode 100755 testsuite/synth/issue2045/testsuite.sh (limited to 'testsuite/synth') 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" -- cgit v1.2.3