if-div.c: New file.
authorEric Christopher <echristo@gcc.gnu.org>
Wed, 2 May 2007 21:57:50 +0000 (21:57 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Wed, 2 May 2007 21:57:50 +0000 (21:57 +0000)
2007-05-02  Eric Christopher  <echristo@apple.com>

    * gcc.dg/cpp/if-div.c: New file.

2007-05-02  Eric Christopher  <echristo@apple.com>

    * expr.c (num_div_op): Don't overflow if the result is
    zero.

From-SVN: r124358

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/if-div.c [new file with mode: 0644]
libcpp/ChangeLog
libcpp/expr.c

index d8493a1f3a96d158a02f0ed9bf3ae92ec5e424ea..d2918d77262805480d254d27faae1d9f792622dd 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-02  Eric Christopher  <echristo@apple.com>
+
+       * gcc.dg/cpp/if-div.c: New file.
+
 2007-05-02  Tom Tromey  <tromey@redhat.com>
 
        PR preprocessor/28709:
@@ -47,9 +51,9 @@
 2007-05-01  Dorit Nuzman  <dorit@il.ibm.com>
 
        PR testsuite/31589
-       * gcc.dg/vect/vect-iv-9.c: Added vect_int_mult target keyword to 
+       * gcc.dg/vect/vect-iv-9.c: Added vect_int_mult target keyword to
        dg-final test.
-       * gcc.dg/vect/vect-reduc-dot-u16b.c: Added vect_pack_trunc target 
+       * gcc.dg/vect/vect-reduc-dot-u16b.c: Added vect_pack_trunc target
        keyword to dg-final test.
        * gcc.dg/vect/vect-iv-4.c: Likewise.
        * gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
@@ -58,7 +62,7 @@
        * gcc.dg/vect/vect-reduc-dot-u16a.c: Change variable type to avoid a
        cast.
        * gcc.dg/vect/no-section-anchors-vect-69.c: xfail on is64.
-       * lib/target-supports.exp 
+       * lib/target-supports.exp
        (check_effective_target_vect_widen_sum_hi_to_si): Added ia64.
        (check_effective_target_vect_widen_sum_qi_to_hi): Added ia64.
 
            Olga Golovanevsky  <olga@il.ibm.com>
 
        * g++.dg/other/str_empty.C: New test.
-       
+
 2007-04-24  Richard Henderson  <rth@redhat.com>
 
        * gcc.dg/vect/vect.exp: Don't run tests on Alpha.
diff --git a/gcc/testsuite/gcc.dg/cpp/if-div.c b/gcc/testsuite/gcc.dg/cpp/if-div.c
new file mode 100644 (file)
index 0000000..4e42168
--- /dev/null
@@ -0,0 +1,6 @@
+/* { dg-do preprocess } */
+
+/* Test that this preprocesses without error.  */
+
+#if (-1)/2
+#endif
index 0193de47cf3a52994da97470faf71e6df379878c..cc5a71692c70d10d6e1a370465ad2f7188fc1cd3 100644 (file)
@@ -1,3 +1,8 @@
+2007-05-02  Eric Christopher  <echristo@apple.com>
+
+       * expr.c (num_div_op): Don't overflow if the result is
+       zero.
+
 2007-05-02  Tom Tromey  <tromey@redhat.com>
 
        PR preprocessor/28709:
index 574b85ff656dd02b97dfd27f1c292ec6eea19a4e..a00614026c2e4fc8bd8f22293edaa81117e3f64a 100644 (file)
@@ -91,7 +91,7 @@ interpret_float_suffix (const uchar *s, size_t len)
       case 'l': case 'L': l++; break;
       case 'i': case 'I':
       case 'j': case 'J': i++; break;
-      case 'd': case 'D': 
+      case 'd': case 'D':
        /* Disallow fd, ld suffixes.  */
        if (d && (f || l))
          return 0;
@@ -441,7 +441,7 @@ append_digit (cpp_num num, int digit, int base, size_t precision)
   if (add_low + digit < add_low)
     add_high++;
   add_low += digit;
-    
+
   if (result.low + add_low < result.low)
     add_high++;
   if (result.high + add_high < result.high)
@@ -1527,7 +1527,8 @@ num_div_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op)
        {
          if (negate)
            result = num_negate (result, precision);
-         result.overflow = num_positive (result, precision) ^ !negate;
+         result.overflow = (num_positive (result, precision) ^ !negate
+                            && !num_zerop (result));
        }
 
       return result;