aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2004-02-06 18:25:16 +0000
committerJosef Zlomek <zlomek@gcc.gnu.org>2004-02-06 18:25:16 +0000
commit1711adc261965d9e88dc92fb3b16829a90145d01 (patch)
treea23590aff41e5fe6c576fb7be0dd07606b42951c /gcc
parentb1e5a971c566abfca67ee34f1255721c25eb2de2 (diff)
downloadgcc-1711adc261965d9e88dc92fb3b16829a90145d01.zip
gcc-1711adc261965d9e88dc92fb3b16829a90145d01.tar.gz
gcc-1711adc261965d9e88dc92fb3b16829a90145d01.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/dwarf2out.c33
2 files changed, 29 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 72a80b9..f2ea897 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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=.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 824add7..468b6dd 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -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;