Fix for ia64-java bug reported by Hans Boehm.
authorHans Boehm <boehm@acm.org>
Tue, 2 Oct 2001 02:01:55 +0000 (02:01 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 2 Oct 2001 02:01:55 +0000 (19:01 -0700)
* optabs.c (emit_libcall_block): When using non-call exceptions,
don't add REG_LIBCALL reg notes to trapping calls.

From-SVN: r45934

gcc/ChangeLog
gcc/optabs.c

index d55106d9412dd5bf39982c45eea921a44d8403e4..bbb780ed679664e3ce331c2a4ca8ae24f9706abf 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-01  Hans Boehm  <boehm@acm.org>
+
+       * optabs.c (emit_libcall_block): When using non-call exceptions,
+       don't add REG_LIBCALL reg notes to trapping calls.
+
 2001-10-01  David Billinghurst <David.Billinghurst@riotinto.com>
 
        * flow.c (propagate_block_delete_libcall): Remove unused first arg
index 035beac049349db14ac4e4a35927a295eec8ce8c..5b47c13a316f7af3a997b0bb7710564aa0452431 100644 (file)
@@ -2957,9 +2957,13 @@ emit_libcall_block (insns, target, result, equiv)
     first = NEXT_INSN (prev);
 
   /* Encapsulate the block so it gets manipulated as a unit.  */
-  REG_NOTES (first) = gen_rtx_INSN_LIST (REG_LIBCALL, last,
-                                        REG_NOTES (first));
-  REG_NOTES (last) = gen_rtx_INSN_LIST (REG_RETVAL, first, REG_NOTES (last));
+  if (!flag_non_call_exceptions || !may_trap_p (equiv))
+    {
+      REG_NOTES (first) = gen_rtx_INSN_LIST (REG_LIBCALL, last,
+                                            REG_NOTES (first));
+      REG_NOTES (last) = gen_rtx_INSN_LIST (REG_RETVAL, first,
+                                           REG_NOTES (last));
+    }
 }
 \f
 /* Generate code to store zero in X.  */