Bogus libcalls with multiple REG_RETVAL notes
Bernd Schmidt
bernds@redhat.co.uk
Mon Sep 18 02:41:00 GMT 2000
On Sat, 16 Sep 2000, Richard Henderson wrote:
>
> I see that we are not and were not setting CONST_CALL_P.
> Doing that in emit_libcall_block while adjusting the EH
> region seems like the right thing.
Like this?
Bernd
* optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
Index: optabs.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/optabs.c,v
retrieving revision 1.81
diff -u -p -r1.81 optabs.c
--- optabs.c 2000/09/17 12:45:50 1.81
+++ optabs.c 2000/09/18 09:41:11
@@ -2766,14 +2766,15 @@ emit_libcall_block (insns, target, resul
/* look for any CALL_INSNs in this sequence, and attach a REG_EH_REGION
reg note to indicate that this call cannot throw or execute a nonlocal
- goto. (Unless there is already a REG_EH_REGION note, in which case
- we update it.) */
+ goto (unless there is already a REG_EH_REGION note, in which case
+ we update it). Also set the CONST_CALL_P flag. */
for (insn = insns; insn; insn = NEXT_INSN (insn))
if (GET_CODE (insn) == CALL_INSN)
{
rtx note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);
+ CONST_CALL_P (insn) = 1;
if (note != 0)
XEXP (note, 0) = GEN_INT (-1);
else
More information about the Gcc-patches
mailing list