summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-26 20:46:47 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-26 20:46:47 +0000
commit0bb5a6cd923298fb83e25763e4c1b7070c722064 (patch)
tree4c7f7fcade725078185a688569b6cd43d0e5d4b5 /gcc/emit-rtl.c
parentdf20515d40e3a676322e930880085ca37e7ab18a (diff)
downloadgcc-0bb5a6cd923298fb83e25763e4c1b7070c722064.tar.gz
* emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE
instead of replacing it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68547 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 3f444a92e02..908b12db8ca 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3510,8 +3510,10 @@ try_split (pat, trial, last)
for (insn = insn_last; insn ; insn = PREV_INSN (insn))
if (GET_CODE (insn) == CALL_INSN)
{
- CALL_INSN_FUNCTION_USAGE (insn)
- = CALL_INSN_FUNCTION_USAGE (trial);
+ rtx *p = &CALL_INSN_FUNCTION_USAGE (insn);
+ while (*p)
+ p = &XEXP (*p, 1);
+ *p = CALL_INSN_FUNCTION_USAGE (trial);
SIBLING_CALL_P (insn) = SIBLING_CALL_P (trial);
}
}