I seem to have found an ICE on valid problem involving constants with
svn 38. See the attached testcase...
Workaround: don't use constants :-)
Tom
$ rpm -q ghdl
ghdl-0.22-0.38svn.0.fc4
$ ghdl -a -O2 -g t.vhd
internal error: eval_dyadic_operator: IIR_PREDEFINED_ARRAY_INEQUALITY
******************** GHDL Bug occured ****************************
Please report this bug on http://gna.org/projects/ghdl
GHDL version: GHDL 0.22dev (20051220) [Sokcho edition]
Compiled with GNAT Version: 4.0.2 20051125 (Red Hat 4.0.2-8)
In directory: /tmp/
Command line:
/usr/libexec/gcc/i386-fedora_ghdl-linux/4.0.2/ghdl1 -O2 -g
-P/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/vhdl/lib/v93/std/
-P/usr/lib/gcc/i386-fedora_ghdl-linux/4.0.2/vhdl/lib/v93/ieee/ -quiet -o
t.s t.vhd
Exception TYPES.INTERNAL_ERROR raised
Exception information:
Exception name: TYPES.INTERNAL_ERROR
Message: errorout.adb:346
Call stack traceback locations:
0x807b400 0x80a22b0 0x811f0f9 0x811f73f 0x811d8a7 0x811e37c 0x810cdcf
0x810eb4a 0x810eff1 0x810f034 0x810f4f8 0x810faff 0x812f402 0x810625f
0x810770c 0x80553a5 0x804d8c0
******************************************************************
Execution terminated by unhandled exception
Exception name: TYPES.INTERNAL_ERROR
Message: errorout.adb:346
Call stack traceback locations:
0x807b400 0x80a22b0 0x811f0f9 0x811f73f 0x811d8a7 0x811e37c 0x810cdcf
0x810eb4a 0x810eff1 0x810f034 0x810f4f8 0x810faff 0x812f402 0x810625f
0x810770c 0x80553a5 0x804d8c0
ghdl: compilation error
library ieee;
use ieee.std_logic_1164.all;
entity t is
end t;
architecture bug of t is
subtype tt is ieee.std_logic_1164.std_ulogic_vector(1 downto 0);
constant c1 : tt := "01";
constant c2 : tt := "01";
begin
p: process
begin
assert c1 /= c2 report "c1 = c2" severity note;
wait;
end process p;
end bug;