aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2007-05-14 23:49:36 +0000
committerJanis Johnson <janis@gcc.gnu.org>2007-05-14 23:49:36 +0000
commit3bf6bfcc7e3d3188a558787af16a22604523fb63 (patch)
tree7401eeca9b8d1b1be3e10740ef7f7ac2d11a25c0 /gcc
parent5a6bb57eb9ad3397408aedca5c362ef36340a907 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/c-typeck.c6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-2.c14
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++;
+}