From: Hans Boehm Date: Tue, 2 Oct 2001 02:01:55 +0000 (+0000) Subject: Fix for ia64-java bug reported by Hans Boehm. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=11e9ecc58c0322bd217013371ecf8f4224ec5bca;p=gcc.git Fix for ia64-java bug reported by Hans Boehm. * optabs.c (emit_libcall_block): When using non-call exceptions, don't add REG_LIBCALL reg notes to trapping calls. From-SVN: r45934 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d55106d9412..bbb780ed679 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-10-01 Hans Boehm + + * 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 * flow.c (propagate_block_delete_libcall): Remove unused first arg diff --git a/gcc/optabs.c b/gcc/optabs.c index 035beac0493..5b47c13a316 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -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)); + } } /* Generate code to store zero in X. */