From: Daniel Berlin Date: Fri, 6 Feb 2004 18:25:16 +0000 (+0000) Subject: dwarf2out.c (output_loc_list): Don't use deltas if we have a separate line info table... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1711adc261965d9e88dc92fb3b16829a90145d01;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 72a80b9b463..f2ea89725e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-02-06 Daniel Berlin + + * 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 * doc/invoke.texi: Remove the pni option from -mfpmath=. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 824add7ee73..468b6dd628e 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;