dwarf2out.c (output_loc_list): Don't use deltas if we have a separate line info table in use.

* dwarf2out.c (output_loc_list): Don't use deltas if we have
	a separate line info table in use.
	Use the correct size for terminators.
	(output_die): Use offset, not delta.

From-SVN: r77409
This commit is contained in:
Daniel Berlin 2004-02-06 18:25:16 +00:00 committed by Josef Zlomek
parent b1e5a971c5
commit 1711adc261
2 changed files with 29 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2004-02-06 Daniel Berlin <dberlin@dberlin.org>
* dwarf2out.c (output_loc_list): Don't use deltas if we have
a separate line info table in use.
Use the correct size for terminators.
(output_die): Use offset, not delta.
2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
* doc/invoke.texi: Remove the pni option from -mfpmath=.

View File

@ -6551,16 +6551,28 @@ output_loc_list (dw_loc_list_ref list_head)
"Location list base address specifier base");
}
/* Walk the location list, and output each range + expression. */
for (curr = list_head; curr != NULL; curr = curr->dw_loc_next)
{
unsigned long size;
dw2_asm_output_delta (DWARF2_ADDR_SIZE, curr->begin, curr->section,
"Location list begin address (%s)",
list_head->ll_symbol);
dw2_asm_output_delta (DWARF2_ADDR_SIZE, curr->end, curr->section,
"Location list end address (%s)",
list_head->ll_symbol);
if (separate_line_info_table_in_use == 0)
{
dw2_asm_output_delta (DWARF2_ADDR_SIZE, curr->begin, curr->section,
"Location list begin address (%s)",
list_head->ll_symbol);
dw2_asm_output_delta (DWARF2_ADDR_SIZE, curr->end, curr->section,
"Location list end address (%s)",
list_head->ll_symbol);
}
else
{
dw2_asm_output_addr (DWARF2_ADDR_SIZE, curr->begin,
"Location list begin address (%s)",
list_head->ll_symbol);
dw2_asm_output_addr (DWARF2_ADDR_SIZE, curr->end,
"Location list end address (%s)",
list_head->ll_symbol);
}
size = size_of_locs (curr->expr);
/* Output the block length for this list of location operations. */
@ -6571,10 +6583,10 @@ output_loc_list (dw_loc_list_ref list_head)
output_loc_sequence (curr->expr);
}
dw2_asm_output_data (DWARF_OFFSET_SIZE, 0,
dw2_asm_output_data (DWARF2_ADDR_SIZE, 0,
"Location list terminator begin (%s)",
list_head->ll_symbol);
dw2_asm_output_data (DWARF_OFFSET_SIZE, 0,
dw2_asm_output_data (DWARF2_ADDR_SIZE, 0,
"Location list terminator end (%s)",
list_head->ll_symbol);
}
@ -6694,8 +6706,7 @@ output_die (dw_die_ref die)
if (sym == 0)
abort ();
dw2_asm_output_delta (DWARF_OFFSET_SIZE, sym,
loc_section_label, "%s", name);
dw2_asm_output_offset (DWARF_OFFSET_SIZE, sym, "%s", name);
}
break;