* expmed.c (expand_divmod): Add comment.
authorIan Lance Taylor <iant@google.com>
Fri, 2 Feb 2007 19:16:04 +0000 (19:16 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 2 Feb 2007 19:16:04 +0000 (19:16 +0000)
From-SVN: r121519

gcc/ChangeLog
gcc/expmed.c

index 95987efeb569b2ac9d3705f5cbc3be00f7e0e156..38dd30edfe18a3f3203efe0ebd38f4d44db7a169 100644 (file)
@@ -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.
index fea859a18c1edb0b1b346a139a1096a230d1499f..8e8a63917a1966784b157c96a0fcf27bae0bd546 100644 (file)
@@ -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);