aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue2045/ghdlcrash.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/synth/issue2045/ghdlcrash.vhdl')
-rw-r--r--testsuite/synth/issue2045/ghdlcrash.vhdl35
1 files changed, 35 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;