jwakely / rpms / binutils

Forked from rpms/binutils 2 years ago
Clone
4dda3fa
*** ../binutils-2.24.orig/bfd/dwarf2.c	2014-01-28 11:58:02.072737296 +0000
4dda3fa
--- bfd/dwarf2.c	2014-01-28 11:59:38.575739971 +0000
4dda3fa
*************** find_abstract_instance_name (struct comp
4dda3fa
*** 2126,2131 ****
4dda3fa
--- 2126,2153 ----
4dda3fa
  	abort ();
4dda3fa
  
4dda3fa
        info_ptr = unit->sec_info_ptr + die_ref;
4dda3fa
+ 
4dda3fa
+       /* Now find the CU containing this pointer.  */
4dda3fa
+       if (info_ptr >= unit->info_ptr_unit && info_ptr < unit->end_ptr)
4dda3fa
+ 	;
4dda3fa
+       else
4dda3fa
+ 	{
4dda3fa
+ 	  /* Check other CUs to see if they contain the abbrev.  */
4dda3fa
+ 	  struct comp_unit * u;
4dda3fa
+ 
4dda3fa
+ 	  for (u = unit->prev_unit; u != NULL; u = u->prev_unit)
4dda3fa
+ 	    if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
4dda3fa
+ 	      break;
4dda3fa
+ 
4dda3fa
+ 	  if (u == NULL)
4dda3fa
+ 	    for (u = unit->next_unit; u != NULL; u = u->next_unit)
4dda3fa
+ 	      if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
4dda3fa
+ 		break;
4dda3fa
+ 
4dda3fa
+ 	  if (u)
4dda3fa
+ 	    unit = u;
4dda3fa
+ 	  /* else FIXME: What do we do now ?  */
4dda3fa
+ 	}
4dda3fa
      }
4dda3fa
    else if (attr_ptr->form == DW_FORM_GNU_ref_alt)
4dda3fa
      {
4dda3fa
*************** find_abstract_instance_name (struct comp
4dda3fa
*** 2137,2142 ****
4dda3fa
--- 2159,2166 ----
4dda3fa
  	  bfd_set_error (bfd_error_bad_value);
4dda3fa
  	  return name;
4dda3fa
  	}
4dda3fa
+       /* FIXME: Do we need to locate the correct CU, in a similar
4dda3fa
+ 	 fashion to the code in the DW_FORM_ref_addr case above ?  */
4dda3fa
      }
4dda3fa
    else
4dda3fa
      info_ptr = unit->info_ptr_unit + die_ref;