diff options
author | Eric Christopher <echristo@gcc.gnu.org> | 2007-05-02 21:57:50 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gcc.gnu.org> | 2007-05-02 21:57:50 +0000 |
commit | 22a8a52d650ef0c4718d04289862f6319f8a8d9d (patch) | |
tree | 96d3589306464ba40e11a61ae06c3e1fdccbd38f | |
parent | fca35e1b54d46d1f731ec8d7681f2e680c85a879 (diff) | |
download | gcc-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/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/if-div.c | 6 | ||||
-rw-r--r-- | libcpp/ChangeLog | 5 | ||||
-rw-r--r-- | libcpp/expr.c | 7 |
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; |