This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
lots of aborts in dwarf2out_finish
- To: jason at cygnus dot com
- Subject: lots of aborts in dwarf2out_finish
- From: Zack Weinberg <zack at wolery dot cumb dot org>
- Date: Wed, 26 Apr 2000 09:19:25 -0700
- Cc: gcc-bugs at gcc dot gnu dot org
I regularly build with --with-dwarf2 (which forces dwarf2 debugging to
be default). I'm seeing a lot of testsuite failures because of an
abort in dwarf2out_finish.
This example is typical:
$ cat /work/src/gcc/gcc/testsuite/gcc.c-torture/compile/951116-1.c
f ()
{
long long i;
int j;
long long k = i = j;
int inner () {return j + i;}
return k;
}
$ ./cc1 -O3 -g /work/src/gcc/gcc/testsuite/gcc.c-torture/compile/951116-1.c
f inner
951116-1.c: At top level:
951116-1.c:10: Internal compiler error in `dwarf2out_finish',
at dwarf2out.c:9942
(gdb) frame 1
#1 0x80d7d4f in dwarf2out_finish () at dwarf2out.c:9942
9942 abort ();
(gdb) l
9934 if (die->die_parent == NULL)
9935 {
9936 dw_die_ref origin = get_AT_ref (die, DW_AT_abstract_origin);
9937 if (origin)
9938 add_child_die (origin->die_parent, die);
9939 else if (die == comp_unit_die)
9940 ;
9941 else
9942 abort ();
9943 }
9944 free (node);
9945 }
(gdb) p die
$1 = (struct die_struct *) 0x82a3c80
(gdb) p *die
$2 = {die_tag = DW_TAG_subprogram, die_attr = 0x82a3d20, die_parent = 0x0,
die_child = 0x0, die_sib = 0x0, die_offset = 0, die_abbrev = 0}
(gdb) call debug_dwarf_die (die)
DIE 0: DW_TAG_subprogram
abbrev id: 0 offset: 0
DW_AT_inline: 3
DW_AT_type: die -> 0
DW_AT_decl_line: 7
DW_AT_decl_file: 1
DW_AT_name: "inner"
This was not happening a couple of days ago. You were in this file
recently, so could you look at it?
thanks-
zw