diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2015-03-27 20:09:17 -0700 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2015-03-27 20:09:17 -0700 |
commit | 0dd93631a0aa1b5c2f807270305225bc2786393b (patch) | |
tree | eb360722b41e44cbc47db8d89bc8dab8fa87c81f | |
parent | 7c97a89b191212146e0a723f7bf7507de26fd65e (diff) | |
download | toolchain_gcc-0dd93631a0aa1b5c2f807270305225bc2786393b.tar.gz toolchain_gcc-0dd93631a0aa1b5c2f807270305225bc2786393b.tar.bz2 toolchain_gcc-0dd93631a0aa1b5c2f807270305225bc2786393b.zip |
backport fix for ICE: in add_stores, at var-tracking.c:6000
2014-06-30 Joseph Myers <joseph@codesourcery.com>
* var-tracking.c (add_stores): Return instead of asserting if old
and new values for conditional store are the same.
Change-Id: Ibb5775a3ad90e57bd6882a86a6b4c7a5262c09d0
-rw-r--r-- | gcc-4.8/gcc/var-tracking.c | 3 | ||||
-rw-r--r-- | gcc-4.9/gcc/var-tracking.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/gcc-4.8/gcc/var-tracking.c b/gcc-4.8/gcc/var-tracking.c index 0db15625b..fe1ce6070 100644 --- a/gcc-4.8/gcc/var-tracking.c +++ b/gcc-4.8/gcc/var-tracking.c @@ -5915,7 +5915,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip) { cselib_val *oval = cselib_lookup (oloc, GET_MODE (oloc), 0, VOIDmode); - gcc_assert (oval != v); + if (oval == v) + return; gcc_assert (REG_P (oloc) || MEM_P (oloc)); if (oval && !cselib_preserved_value_p (oval)) diff --git a/gcc-4.9/gcc/var-tracking.c b/gcc-4.9/gcc/var-tracking.c index 65d82854c..555344144 100644 --- a/gcc-4.9/gcc/var-tracking.c +++ b/gcc-4.9/gcc/var-tracking.c @@ -5997,7 +5997,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip) { cselib_val *oval = cselib_lookup (oloc, GET_MODE (oloc), 0, VOIDmode); - gcc_assert (oval != v); + if (oval == v) + return; gcc_assert (REG_P (oloc) || MEM_P (oloc)); if (oval && !cselib_preserved_value_p (oval)) |