aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-08-27 10:25:36 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-08-27 10:25:36 -0700
commit225b9cb9f70d310e06ca3fc06f3d2c7a2f667b80 (patch)
treedadf7407e0ea764a33c471d040de28c9902f52c0
parent9f5cd0c5182242e3dfd01968424f5d963ba6a061 (diff)
downloadgcc-225b9cb9f70d310e06ca3fc06f3d2c7a2f667b80.zip
gcc-225b9cb9f70d310e06ca3fc06f3d2c7a2f667b80.tar.gz
gcc-225b9cb9f70d310e06ca3fc06f3d2c7a2f667b80.tar.bz2
dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper alignment for assemble_integer for DW_EH_PE_aligned.
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper alignment for assemble_integer for DW_EH_PE_aligned. * except.c (output_function_exception_table): Likewise. From-SVN: r45198
-rw-r--r--gcc/ChangeLog1
-rw-r--r--gcc/except.c11
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e38ff4a..cdaf55a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2,6 +2,7 @@
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
alignment for assemble_integer for DW_EH_PE_aligned.
+ * except.c (output_function_exception_table): Likewise.
2001-08-26 Andreas Jaeger <aj@suse.de>
diff --git a/gcc/except.c b/gcc/except.c
index 25a08d5..9aad8f5 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -3636,16 +3636,19 @@ output_function_exception_table ()
while (i-- > 0)
{
tree type = VARRAY_TREE (cfun->eh->ttype_data, i);
+ rtx value;
if (type == NULL_TREE)
type = integer_zero_node;
else
type = lookup_type_for_runtime (type);
- dw2_asm_output_encoded_addr_rtx (tt_format,
- expand_expr (type, NULL_RTX, VOIDmode,
- EXPAND_INITIALIZER),
- NULL);
+ value = expand_expr (type, NULL_RTX, VOIDmode, EXPAND_INITIALIZER);
+ if (tt_format == DW_EH_PE_absptr || tt_format == DW_EH_PE_aligned)
+ assemble_integer (value, tt_format_size,
+ tt_format_size * BITS_PER_UNIT, 1);
+ else
+ dw2_asm_output_encoded_addr_rtx (tt_format, value, NULL);
}
#ifdef HAVE_AS_LEB128