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;

Reply via email to