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