This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: reorder bug in 3.0
- To: amacleod at cygnus dot com, schwab at suse dot de
- Subject: Re: reorder bug in 3.0
- From: Andrew Macleod <amacleod at cygnus dot com>
- Date: Tue, 9 Oct 2001 07:56:50 -0700
- Cc: gcc-bugs at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, rth at redhat dot com
>> |>=20
>> |> I took rth's patch from July 29, and kept just the bare minimum required
>> |> to fix the problem. I have bootstrapped a 3.0 branch with this patch=20
>> |> on an ia64 machine.=20
>>
>> Unfortunately, this is not enough. The attached source still fails to
>> compile on ia64-linux when applying the patch to the current snapshot as
>> of 20011007.
>>
>> $ gcc -O2 -g -c -v ld-collate.i=20
In fact, it fails in the mainline 3.1 too.
for (node = limbo_die_list; node; node = next_node)
{
next_node = node->next;
die = node->die;
if (die->die_parent == NULL)
{
dw_die_ref origin = get_AT_ref (die, DW_AT_abstract_origin);
if (origin)
add_child_die (origin->die_parent, die);
else if (die == comp_unit_die)
;
else
abort (); <<-- here
}
free (node);
}
I'll keep looking at it, but if it means anything to anyone:
the die looks like:
DIE 0: DW_TAG_subprogram
abbrev id: 0 offset: 0
DW_AT_frame_base: location descriptor
DW_AT_high_pc: label: *.LFE21
DW_AT_low_pc: label: *.LFB21
DW_AT_prototyped: 1
DW_AT_decl_line: 2259
DW_AT_decl_file: 33
DW_AT_name: "add_to_tablewc"
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_ranges: offset
DIE 0: DW_TAG_inlined_subroutine
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE219
DW_AT_low_pc: label: *.LBB219
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE221
DW_AT_low_pc: label: *.LBB221
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_inlined_subroutine
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE216
DW_AT_low_pc: label: *.LBB216
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE218
DW_AT_low_pc: label: *.LBB218
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_inlined_subroutine
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE213
DW_AT_low_pc: label: *.LBB213
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE215
DW_AT_low_pc: label: *.LBB215
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE215
DW_AT_low_pc: label: *.LBB215
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_abstract_origin: die -> 0
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_high_pc: label: *.LBE212
DW_AT_low_pc: label: *.LBB212
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_type: die -> 0
DW_AT_decl_line: 2299
DW_AT_decl_file: 33
DW_AT_name: "__len"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_type: die -> 0
DW_AT_decl_line: 2299
DW_AT_decl_file: 33
DW_AT_name: "__o"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2294
DW_AT_decl_file: 33
DW_AT_name: "curp"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2293
DW_AT_decl_file: 33
DW_AT_name: "series_startp"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2292
DW_AT_decl_file: 33
DW_AT_name: "i"
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_ranges: offset
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_ranges: offset
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_ranges: offset
DIE 0: DW_TAG_lexical_block
abbrev id: 0 offset: 0
DW_AT_ranges: offset
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_type: die -> 0
DW_AT_decl_line: 2357
DW_AT_decl_file: 33
DW_AT_name: "__len"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_type: die -> 0
DW_AT_decl_line: 2357
DW_AT_decl_file: 33
DW_AT_name: "__o"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2350
DW_AT_decl_file: 33
DW_AT_name: "i"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2280
DW_AT_decl_file: 33
DW_AT_name: "added"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2279
DW_AT_decl_file: 33
DW_AT_name: "weightidx"
DIE 0: DW_TAG_variable
abbrev id: 0 offset: 0
DW_AT_type: die -> 0
DW_AT_decl_line: 2269
DW_AT_decl_file: 33
DW_AT_name: "lastp"
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2258
DW_AT_decl_file: 33
DW_AT_name: "runp"
DIE 0: DW_TAG_formal_parameter
abbrev id: 0 offset: 0
DW_AT_location: location descriptor
DW_AT_type: die -> 0
DW_AT_decl_line: 2258
DW_AT_decl_file: 33
DW_AT_name: "ch"