]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rl78.c (rl78_propogate_register_origins): Verify that CLOBBERs are REGs before propog...
authorDJ Delorie <dj@redhat.com>
Tue, 21 Jan 2014 04:30:45 +0000 (23:30 -0500)
committerDJ Delorie <dj@gcc.gnu.org>
Tue, 21 Jan 2014 04:30:45 +0000 (23:30 -0500)
* config/rl78/rl78.c (rl78_propogate_register_origins): Verify
that CLOBBERs are REGs before propogating their values.

From-SVN: r206867

gcc/ChangeLog
gcc/config/rl78/rl78.c

index a666d2e10460d8e0adb049cd9b2cc6b318d46ed9..45304e908e5692dccdaf4d776e05df57f243ca75 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-20  DJ Delorie  <dj@redhat.com>
+
+       * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
+       that CLOBBERs are REGs before propogating their values.
+
 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR middle-end/59789
index dd8fc55a200975357108c4443103195ed24938c3..227a39be6f29a64f3e35a681659da0a180d2edb0 100644 (file)
@@ -3426,7 +3426,8 @@ rl78_propogate_register_origins (void)
            {
              rtx clobber = XVECEXP (pat, 0, 1);
              pat = XVECEXP (pat, 0, 0);
-             if (GET_CODE (clobber) == CLOBBER)
+             if (GET_CODE (clobber) == CLOBBER
+                 && GET_CODE (XEXP (clobber, 0)) == REG)
                {
                  int cr = REGNO (XEXP (clobber, 0));
                  int mb = GET_MODE_SIZE (GET_MODE (XEXP (clobber, 0)));
@@ -3569,7 +3570,8 @@ rl78_propogate_register_origins (void)
                    }
                }
            }
-         else if (GET_CODE (pat) == CLOBBER)
+         else if (GET_CODE (pat) == CLOBBER
+                  && GET_CODE (XEXP (pat, 0)) == REG)
            {
              if (REG_P (XEXP (pat, 0)))
                {