2.95.3 20001229 fails enable-checking bootstrap on mips-sgi-irix6.2
Franz Sirl
Franz.Sirl-kernel@lauterbach.com
Mon Jan 1 10:04:00 GMT 2001
On Saturday 30 December 2000 20:24, Kaveh R. Ghazi wrote:
> > From: Bernd Schmidt <bernds@redhat.com>
> >
> > On Sat, 30 Dec 2000, Kaveh R. Ghazi wrote:
> > > I tried bootstrapping 2.95.3 20001229 on mips-sgi-irix6.2 configured
> > >
> > > with --enable-checking=yes and got this in stage1:
> > > > frame
> > > > frame.c: In function `fde_split':
> > > > frame.c:873: Internal compiler error at dwarf2out.c:3636
> > > > make[4]: *** [libgcc2.a] Error 1
> > >
> > > I was able to reproduce this with a cross compiler from solaris2.7 so
> > > you probably don't need a mips box to debug it.
> > >
> > > Here is the .i file, compile with:
> > > ./cc1 frame.i -quiet -dumpbase frame.c -g -g1 -O2 -version -o frame.s
> >
> > Thanks. I'll try to reproduce it. Is this a regression from 2.95.2?
> > Bernd
>
> Its not a regression, the same thing happens in 2.95.2. But please
> consider repairing it if the fix isn't too disruptive.
Well looking over the mainline ChangeLog's, these look promising:
1999-11-25 Jason Merrill <jason@casey.cygnus.com>
* dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
(splice_child_die): Handle moving a child DIE from the declaration
DIE of a class to its specification.
(gen_struct_or_union_type_die): Use 'complete' consistently.
(gen_decl_die): Generate the virtual context DIE first.
Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
1999-11-24 Jason Merrill <jason@casey.cygnus.com>
* dwarf2out.c (free_AT, free_die): New fns.
(remove_children): Call them.
(output_line_info): Disable removal of duplicate notes.
Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO
set.
* dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
means pretend the type isn't defined.
Don't defer emitting types.
(gen_type_die_for_member): New fn.
(gen_decl_die): Call it.
(splice_child_die): New fn.
(gen_member_die): Call it rather than generate duplicate dies.
Defer emitting information for the abstract instance of an inline
until we either inline it or emit an out-of-line copy.
* dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
from output_inline_function if DECL_ABSTRACT is also set.
(block_ultimate_origin): Likewise.
(gen_abstract_function): New fn.
(gen_decl_die, gen_inlined_subroutine_die): Call it.
(gen_subprogram_die): An abstract instance is not a declaration
just because it doesn't match current_function_decl. Don't abort
because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
has an abstract origin.
* toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
abstract instance here.
Kaveh, maybe you can try them?
Franz.
More information about the Gcc-bugs
mailing list