aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-02-02 19:16:04 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2007-02-02 19:16:04 +0000
commit093253be0670270440ce8f0b8a22bdd3856913b7 (patch)
treeea75359bbaa2e28306d3a1e0dc9ed97e7d652471 /gcc
parent6d941be35f0528a90d0d85b2973603293ce46f75 (diff)
downloadgcc-093253be0670270440ce8f0b8a22bdd3856913b7.zip
gcc-093253be0670270440ce8f0b8a22bdd3856913b7.tar.gz
gcc-093253be0670270440ce8f0b8a22bdd3856913b7.tar.bz2
* expmed.c (expand_divmod): Add comment.
From-SVN: r121519
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/expmed.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 95987ef..38dd30e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-02-02 Ian Lance Taylor <iant@google.com>
+
+ * expmed.c (expand_divmod): Add comment.
+
2007-02-02 Kazu Hirata <kazu@codesourcery.com>
* emit-rtl.c (renumber_insns): Remove.
diff --git a/gcc/expmed.c b/gcc/expmed.c
index fea859a..8e8a639 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4176,6 +4176,9 @@ expand_divmod (int rem_flag, enum tree_code code, enum machine_mode mode,
HOST_WIDE_INT d = INTVAL (op1);
unsigned HOST_WIDE_INT abs_d;
+ /* Since d might be INT_MIN, we have to cast to
+ unsigned HOST_WIDE_INT before negating to avoid
+ undefined signed overflow. */
abs_d = (d >= 0
? (unsigned HOST_WIDE_INT) d
: - (unsigned HOST_WIDE_INT) d);