OSDN Git Service

* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2001 17:25:36 +0000 (17:25 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Aug 2001 17:25:36 +0000 (17:25 +0000)
        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

gcc/ChangeLog
gcc/except.c

index e38ff4a..cdaf55a 100644 (file)
@@ -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>
 
index 25a08d5..9aad8f5 100644 (file)
@@ -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