]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE instead of replacing it.
authorRichard Henderson <rth@redhat.com>
Thu, 26 Jun 2003 20:46:47 +0000 (13:46 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 26 Jun 2003 20:46:47 +0000 (13:46 -0700)
        * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE
        instead of replacing it.

From-SVN: r68547

gcc/ChangeLog
gcc/emit-rtl.c

index 31b981517112c1d86ea99739ea157513c5c9a583..8c89ca03842293ad94c342d8b7c522f22a0c7aad 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-26  Richard Henderson  <rth@redhat.com>
+       
+       * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE
+       instead of replacing it.
+       
 2003-06-26  Richard Henderson  <rth@redhat.com>
 
        * flow.c (propagate_one_insn): Kill function return value 
index 3f444a92e02eb3fb8d9c5641f3f03298bf4252d8..908b12db8ca1ecdf84898fa11a88673a8d4e5a45 100644 (file)
@@ -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);
          }
     }