Help with GHDL : GCC fails during -O2 optimisation passes.

Brian Drummond brian@shapes.demon.co.uk
Fri Dec 6 23:39:00 GMT 2013


On Fri, 2013-12-06 at 21:23 +0000, Brian Drummond wrote:
> Hi,
> 
> I'm trying to get ghdl to build against gcc4.8.2. I seem to have a
> regression over gcc4.7 and I'm looking for some pointers to fix it.

Summary of problem:
>  ghdl -a -O2 test_utils.vhd
> 0x5314cf crash_signal
>     /home/brian/Projects/gcc4.8.2/source/gcc-4.8.2/gcc/toplev.c:332
> 0x7c0934 gimple_build_call(tree_node*, unsigned int, ...)
>     /home/brian/Projects/gcc4.8.2/source/gcc-4.8.2/gcc/gimple.c:248
> 0xddaa4f unloop_loops(bitmap_head_def*, bool*)
>     /home/brian/Projects/gcc4.8.2/source/gcc-4.8.2/gcc/

The relevant line (tree-ssa-loop-ivcanon.c:623) is:
      stmt = gimple_build_call 
                 (builtin_decl_implicit (BUILT_IN_UNREACHABLE), 0);
which is ... not failing the ASSERT in gimple.c:248 but segfaulting ...
apparently because of a problem with builtin_info(BUILT_IN_UNREACHABLE).

I believe I can work around the issue by creating my own (dummy)
builtin_unreachable function and installing it with the correct implicit
property using set_builtin_decl(). I'll find out tomorrow.

But it might have made life easier if the gimple_build_call had actually
asserted at its assert statement, rather than segfaulting...

Any further light or a better solution much appreciated, thanks!

- Brian



More information about the Gcc-help mailing list