This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: 2.95.3 20001229 fails enable-checking bootstrap on mips-sgi-irix6.2
- To: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>,bernds at redhat dot com
- Subject: Re: 2.95.3 20001229 fails enable-checking bootstrap on mips-sgi-irix6.2
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Mon, 1 Jan 2001 21:05:03 +0100
- Cc: gcc-bugs at gcc dot gnu dot org
- References: <200012301924.OAA04288@caip.rutgers.edu> <01010119051500.18457@enzo.bigblue.local>
On Monday 01 January 2001 19:05, Franz Sirl wrote:
> 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?
Kaveh,
further browsing showed another candidate:
Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
* tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
Discussed here: http://gcc.gnu.org/ml/gcc-patches/1999-12n/msg00608.html
Franz.