This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tree checking failure in jc1
- From: Dave Korn <dave dot korn dot cygwin at gmail dot com>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, GCC Java <java at gcc dot gnu dot org>
- Date: Sat, 11 Dec 2010 10:24:05 +0000
- Subject: Re: Tree checking failure in jc1
- References: <4D02925F.2030900@gmail.com>
On 10/12/2010 20:49, Dave Korn wrote:
> I found a couple of new FAILs in my latest libjava testrun:
>
>> FAIL: newarray_overflow -O3 compilation from source
>> FAIL: newarray_overflow -O3 -findirect-dispatch compilation from source
>
> These turn out to be tree checking failures:
>
>> In file included from <built-in>:3:0:
>> newarray_overflow.java:20:0: internal compiler error: tree check: expected class
>> 'type', have 'declaration' (function_decl) in put_decl_node, at java/lang.c:405
This turned out to be a second bug, triggered by -fdump-tree-all attempting
to output some line of mangled gimple. Without that flag, or ...
> put_decl_node (TREE_CODE (DECL_CONTEXT (node)) == FUNCTION_DECL
> ? DECL_CONTEXT (node)
> : TYPE_NAME (DECL_CONTEXT (node)),
> verbosity);
... with the suggested fix, compilation proceeds to the site of the actual
crash that occurred in the testsuite run: a segfault in gimple.c#walk_gimple_op():
> Program received signal SIGSEGV, Segmentation fault.
> 0x007cfdbe in walk_gimple_op (stmt=0x7fe106e0, callback_op=0x4a0ef0 <verify_expr
> .265801>, wi=0x326c554) at /gnu/gcc/gcc/gcc/gimple.c:2841
> 2841 return !AGGREGATE_TYPE_P (type);
> (gdb) call debug_gimple_stmt (stmt)
> newarray_overflow.int_check.__builtin_prefetch (D.1284_85, 0, );
>
> (gdb)
I think this is the same as PR29710(*) "gnat ICEs on -fprefetch-loop-arrays
-O1", so I'll put the rest of my findings there. Note that weird missing
third argument: it turns out that integer_three_node hasn't been initialised
at the time that issue_prefetch_ref() attempts to pass it to gimple_build_call().
cheers,
DaveK
--
(*) - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29710