From aafdcfcd2b344819258179c366a15cc943b9ef31 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Thu, 5 Jul 2001 09:39:35 +0000 Subject: [PATCH] dwarf2out.c (output_loc_list): Use an all ones mask for .text asm output and don't rely on long long literals. * dwarf2out.c (output_loc_list): Use an all ones mask for .text asm output and don't rely on long long literals. Reformat some long lines. From-SVN: r43777 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 31 +++++++++++++++++++------------ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8bb452a2ca..cfa550820c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-07-05 Nathan Sidwell + + * dwarf2out.c (output_loc_list): Use an all ones mask for + .text asm output and don't rely on long long + literals. Reformat some long lines. + 2001-07-05 Andreas Jaeger * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index d5f3d4086f5..a47dbfc81fa 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -5946,28 +5946,35 @@ output_loc_list (list_head) ASM_OUTPUT_LABEL (asm_out_file, list_head->ll_symbol); if (strcmp (curr->section, ".text") == 0) { - if (DWARF2_ADDR_SIZE == 4) - dw2_asm_output_data (DWARF2_ADDR_SIZE, 0xffffffff, "Location list base address specifier fake entry"); - else if (DWARF2_ADDR_SIZE == 8) - dw2_asm_output_data (DWARF2_ADDR_SIZE, 0xffffffffffffffffLL, "Location list base address specifier fake entry"); - else - abort(); - dw2_asm_output_offset (DWARF2_ADDR_SIZE, curr->section, "Location list base address specifier base"); + /* dw2_asm_output_data will mask off any extra bits in the ~0. */ + dw2_asm_output_data (DWARF2_ADDR_SIZE, ~(unsigned HOST_WIDE_INT)0, + "Location list base address specifier fake entry"); + dw2_asm_output_offset (DWARF2_ADDR_SIZE, curr->section, + "Location list base address specifier base"); } for (curr = list_head; curr != NULL; curr=curr->dw_loc_next) { int 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); + 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); size = size_of_locs (curr->expr); /* Output the block length for this list of location operations. */ - dw2_asm_output_data (constant_size (size), size, "%s", "Location expression size"); + dw2_asm_output_data (constant_size (size), size, "%s", + "Location expression size"); output_loc_sequence (curr->expr); } - dw2_asm_output_data (DWARF_OFFSET_SIZE, 0, "Location list terminator begin (%s)", list_head->ll_symbol); - dw2_asm_output_data (DWARF_OFFSET_SIZE, 0, "Location list terminator end (%s)", list_head->ll_symbol); + dw2_asm_output_data (DWARF_OFFSET_SIZE, 0, + "Location list terminator begin (%s)", + list_head->ll_symbol); + dw2_asm_output_data (DWARF_OFFSET_SIZE, 0, + "Location list terminator end (%s)", + list_head->ll_symbol); } /* Output the DIE and its attributes. Called recursively to generate the definitions of each child DIE. */ -- 2.30.2