aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-03-25 10:27:54 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-03-25 10:27:54 +0100
commita8acccddfd67f1a0c6c4716700e188b1d0f1a148 (patch)
tree0a1161c992db7af1af2107a57cc510c6a2082954 /gcc
parent57fc74a48b0ba0cd42c26de3813569b0c43d07ac (diff)
downloadgcc-a8acccddfd67f1a0c6c4716700e188b1d0f1a148.zip
gcc-a8acccddfd67f1a0c6c4716700e188b1d0f1a148.tar.gz
gcc-a8acccddfd67f1a0c6c4716700e188b1d0f1a148.tar.bz2
cselib.c (cselib_hash_rtx): Perform addition in unsigned type to avoid signed integer overflow.
* cselib.c (cselib_hash_rtx): Perform addition in unsigned type to avoid signed integer overflow. * explow.c (plus_constant): Likewise. From-SVN: r208804
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cselib.c2
-rw-r--r--gcc/explow.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 95e46dc..8ba19f5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-25 Jakub Jelinek <jakub@redhat.com>
+
+ * cselib.c (cselib_hash_rtx): Perform addition in unsigned
+ type to avoid signed integer overflow.
+ * explow.c (plus_constant): Likewise.
+
2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
* doc/generic.texi: Correct typos.
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 26bcbe0..7918b2b 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1137,7 +1137,7 @@ cselib_hash_rtx (rtx x, int create, enum machine_mode memmode)
return hash ? hash : (unsigned int) ENTRY_VALUE;
case CONST_INT:
- hash += ((unsigned) CONST_INT << 7) + INTVAL (x);
+ hash += ((unsigned) CONST_INT << 7) + UINTVAL (x);
return hash ? hash : (unsigned int) CONST_INT;
case CONST_DOUBLE:
diff --git a/gcc/explow.c b/gcc/explow.c
index f4df9df..4e2f704 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -110,7 +110,7 @@ plus_constant (enum machine_mode mode, rtx x, HOST_WIDE_INT c)
return immed_double_int_const (v, mode);
}
- return gen_int_mode (INTVAL (x) + c, mode);
+ return gen_int_mode (UINTVAL (x) + c, mode);
case CONST_DOUBLE:
{