aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/issue2085/bug.vhdl
blob: 0b719a07598d989ec63f2faec7ef98a495561653 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
library IEEE;
use IEEE.std_logic_1164.all;

entity bug is
	port (
		clk   : in  std_ulogic;
		src   : in  std_ulogic_vector(15 downto 0);
		dst   : out std_ulogic_vector(16 downto 0)
	);
end bug;

architecture rtl of bug is
begin

process(clk)
	function fun(val : std_ulogic_vector) return std_ulogic_vector is
		variable tmp : val'subtype; --this causes the crash
	begin
		return val;
	end function;
begin
	if rising_edge(clk) then
		dst <= '0' & fun(src);
	end if;
end process;

end architecture;