aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2001-07-05 09:39:35 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2001-07-05 09:39:35 +0000
commitaafdcfcd2b344819258179c366a15cc943b9ef31 (patch)
tree11cbdd1ac52bcaa85f4cc8ab9961a7fa5a826412
parentce0e8f03d906dbe53177a8c54662e5cc965b5c49 (diff)
downloadgcc-aafdcfcd2b344819258179c366a15cc943b9ef31.zip
gcc-aafdcfcd2b344819258179c366a15cc943b9ef31.tar.gz
gcc-aafdcfcd2b344819258179c366a15cc943b9ef31.tar.bz2
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c31
2 files changed, 25 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c8bb452..cfa5508 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-07-05 Nathan Sidwell <nathan@codesourcery.com>
+
+ * 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 <aj@suse.de>
* doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index d5f3d40..a47dbfc 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. */