This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: reorder bug in 3.0


>> |>=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"





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]