summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-15 01:43:28 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-15 01:43:28 +0000
commit47adf96bd02beacadd45213c3e790d08ed065d3f (patch)
tree2841b130cdc873d7f81ac3bef24c0f60875f6877
parent051751fcd85278d3fb7c787ea8342e77ea0c8572 (diff)
downloadgcc-47adf96bd02beacadd45213c3e790d08ed065d3f.tar.gz
2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
PR c/27490 PR c/27489 * c-typeck.c (build_compound_expr): If the second expression is an error mark, then just return an error mark instead of creating a COMPOUND_EXPR. 2006-08-14 Andrew Pinski <pinskia@physics.uc.edu> PR c/27490 * gcc.dg/sizeof-2.c: New testcase. PR c/27489 * gcc.dg/switch-A.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116148 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-typeck.c3
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.dg/sizeof-2.c8
-rw-r--r--gcc/testsuite/gcc.dg/switch-A.c7
5 files changed, 34 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4561c1f3dcf..3706f53eb34 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
+
+ PR c/27490
+ PR c/27489
+ * c-typeck.c (build_compound_expr): If the second expression
+ is an error mark, then just return an error mark instead of
+ creating a COMPOUND_EXPR.
+
2006-07-14 Mike Stump <mrs@apple.com>
* Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 506b60fb0fe..0a5aae5eb37 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -3425,6 +3425,9 @@ build_compound_expr (tree expr1, tree expr2)
else if (warn_unused_value)
warn_if_unused_value (expr1, input_location);
+ if (expr2 == error_mark_node)
+ return error_mark_node;
+
return build2 (COMPOUND_EXPR, TREE_TYPE (expr2), expr1, expr2);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6802b840322..5f141952f1d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2006-08-14 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c/27490
+ * gcc.dg/sizeof-2.c: New testcase.
+
+ PR c/27489
+ * gcc.dg/switch-A.c: New testcase.
+
2006-08-14 Steve Ellcey <sje@cup.hp.com>
PR c++/28288
diff --git a/gcc/testsuite/gcc.dg/sizeof-2.c b/gcc/testsuite/gcc.dg/sizeof-2.c
new file mode 100644
index 00000000000..018ed740aaa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sizeof-2.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+
+
+void foo()
+{
+ sizeof(,); /* { dg-error "expected expression before" } */
+}
+
diff --git a/gcc/testsuite/gcc.dg/switch-A.c b/gcc/testsuite/gcc.dg/switch-A.c
new file mode 100644
index 00000000000..3bc04c01729
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/switch-A.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+
+void foo()
+{
+ switch (,) { } /* { dg-error "expected expression before" } */
+}
+