diff options
author | Janis Johnson <janis187@us.ibm.com> | 2007-05-14 23:49:36 +0000 |
---|---|---|
committer | Janis Johnson <janis@gcc.gnu.org> | 2007-05-14 23:49:36 +0000 |
commit | 3bf6bfcc7e3d3188a558787af16a22604523fb63 (patch) | |
tree | 7401eeca9b8d1b1be3e10740ef7f7ac2d11a25c0 /gcc | |
parent | 5a6bb57eb9ad3397408aedca5c362ef36340a907 (diff) | |
download | gcc-3bf6bfcc7e3d3188a558787af16a22604523fb63.zip gcc-3bf6bfcc7e3d3188a558787af16a22604523fb63.tar.gz gcc-3bf6bfcc7e3d3188a558787af16a22604523fb63.tar.bz2 |
c-typeck.c (build_binary_op): Return early for error.
gcc/
* c-typeck.c (build_binary_op): Return early for error.
gcc/testsuite/
* gcc.dg/dfp/usual-arith-conv-bad.c: New test.
From-SVN: r124732
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/c-typeck.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c | 14 |
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26d474d..0abf554 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-05-14 Janis Johnson <janis187@us.ibm.com> + + * c-typeck.c (build_binary_op): Return early for error. + 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz> * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index fc42389..2bf7677 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -8148,7 +8148,11 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1, int none_complex = (code0 != COMPLEX_TYPE && code1 != COMPLEX_TYPE); if (shorten || common || short_compare) - result_type = c_common_type (type0, type1); + { + result_type = c_common_type (type0, type1); + if (result_type == error_mark_node) + return error_mark_node; + } /* For certain operations (which identify themselves by shorten != 0) if both args were extended from the same smaller type, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 159cee5..fd3c801 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,8 @@ 2007-05-14 Janis Johnson <janis187@us.ibm.com> - * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic. + * gcc.dg/dfp/usual-arith-conv-bad.c: New test. + + * gcc.dg/fltconst-pedantic-dfp.c: New test. PR c/31924 * gcc.dg/fltconst-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c b/gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c new file mode 100644 index 0000000..4693abc --- /dev/null +++ b/gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99" } */ + +/* This used to result in an ICE. */ + +extern _Decimal64 x; +extern int i; + +void +foo (void) +{ + if (x <= 2.0) /* { dg-error "mix operands" } */ + i++; +} |