This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Gcj 3.0 on Itanium, again



Boehm, Hans writes:

> 1) gcj --main=hello hello.java dies with an ICE at dwarf2out.c:4652.
> This goes away with -O (as expected, I guess).  This sounds
> familiar.  Is it still expected?

I've been seing a similar problem with Alpha. In my case, I noticed
that it occurs only if -g1 is passed down to jc1. I can build and test
things with alpha using with -g0 or -g<n>, n >= 2 and yes it also goes
away when using -O. Below is what I wrote as I was trying to give it a
(unsuccessful) shot last week.

./A

-g1 triggers an ICE in splice_child_die, -g0, -g>=2 don't. I've been
trying to track things a bit, but I couldn't see anything obviously
wrong (I have zero knowledge on dwarf2out.*)

Here's what I see when compiling `class X {}'. -g1 gets passed by
default to jc1. With -g1, member functions get registered in
decl_die_table (it doesn't seem to happen for g0 and g>=2.) Latter on
in gen_member_die, when considering member functions, lookup_decl_die
will return a non null child and therefore call splice_child_die which
aborts here:

  if (child->die_parent != parent
      && child->die_parent != get_AT_ref (parent, DW_AT_specification))
    abort ();

I don't know what's really wrong here. child->die_parent != parent or
the fact that the `parent' doesn't feature the DW_AT_specification
(returning NULL which doesn't compare against a non null child->die_parent.)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]