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]
Other format: [Raw text]

[google/4.6] Fix DW_OP_GNU_addr_index problem with -gfission. (issue5866047)


For google/gcc-4_6 branch.

Fix bug where we were outputting a garbage value for the index operand
of DW_OP_GNU_addr_index.

Tested: incremental remake in GCC build directory and hand tested.


2012-03-20   Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (size_of_loc_descr): Use val_index instead of
	v.val_unsigned.
	(output_loc_operands): Likewise.


Index: dwarf2out.c
===================================================================
--- dwarf2out.c	(revision 185585)
+++ dwarf2out.c	(working copy)
@@ -4902,7 +4902,7 @@ size_of_loc_descr (dw_loc_descr_ref loc)
       size += DWARF2_ADDR_SIZE;
       break;
     case DW_OP_GNU_addr_index:
-      size += size_of_uleb128 (loc->dw_loc_oprnd1.v.val_unsigned);
+      size += size_of_uleb128 (loc->dw_loc_oprnd1.val_index);
       break;
     case DW_OP_const1u:
     case DW_OP_const1s:
@@ -5283,7 +5283,7 @@ output_loc_operands (dw_loc_descr_ref lo
       break;
 
     case DW_OP_GNU_addr_index:
-      dw2_asm_output_data_uleb128 (loc->dw_loc_oprnd1.v.val_unsigned,
+      dw2_asm_output_data_uleb128 (loc->dw_loc_oprnd1.val_index,
                                    "(address index)");
       break;
 

--
This patch is available for review at http://codereview.appspot.com/5866047


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