diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-27 17:25:36 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-27 17:25:36 +0000 |
commit | 52ec67c4c67e730a01b45aece92f4827d23f5dc3 (patch) | |
tree | dadf7407e0ea764a33c471d040de28c9902f52c0 /gcc/except.c | |
parent | 104eedee287e8053a2d5a39db5768256862066d6 (diff) | |
download | gcc-52ec67c4c67e730a01b45aece92f4827d23f5dc3.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45198 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.c')
-rw-r--r-- | gcc/except.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/except.c b/gcc/except.c index 25a08d5c737..9aad8f598c9 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 |