aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gcc.gnu.org>2007-05-02 21:57:50 +0000
committerEric Christopher <echristo@gcc.gnu.org>2007-05-02 21:57:50 +0000
commit22a8a52d650ef0c4718d04289862f6319f8a8d9d (patch)
tree96d3589306464ba40e11a61ae06c3e1fdccbd38f
parentfca35e1b54d46d1f731ec8d7681f2e680c85a879 (diff)
downloadgcc-22a8a52d650ef0c4718d04289862f6319f8a8d9d.zip
gcc-22a8a52d650ef0c4718d04289862f6319f8a8d9d.tar.gz
gcc-22a8a52d650ef0c4718d04289862f6319f8a8d9d.tar.bz2
if-div.c: New file.
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
-rw-r--r--gcc/testsuite/ChangeLog12
-rw-r--r--gcc/testsuite/gcc.dg/cpp/if-div.c6
-rw-r--r--libcpp/ChangeLog5
-rw-r--r--libcpp/expr.c7
4 files changed, 23 insertions, 7 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d8493a1..d2918d7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
@@ -263,7 +267,7 @@
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
index 0000000..4e42168
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/if-div.c
@@ -0,0 +1,6 @@
+/* { dg-do preprocess } */
+
+/* Test that this preprocesses without error. */
+
+#if (-1)/2
+#endif
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 0193de4..cc5a716 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -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:
diff --git a/libcpp/expr.c b/libcpp/expr.c
index 574b85f..a006140 100644
--- a/libcpp/expr.c
+++ b/libcpp/expr.c
@@ -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;