aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@gcc.gnu.org>2006-08-14 18:43:28 -0700
committerAndrew Pinski <pinskia@gcc.gnu.org>2006-08-14 18:43:28 -0700
commite63d6886f47b4c844918787f774021cd6faf6270 (patch)
tree2841b130cdc873d7f81ac3bef24c0f60875f6877 /gcc
parentb0100da68143f1d5d088ec0de0befe4d7275ff75 (diff)
downloadgcc-e63d6886f47b4c844918787f774021cd6faf6270.zip
gcc-e63d6886f47b4c844918787f774021cd6faf6270.tar.gz
gcc-e63d6886f47b4c844918787f774021cd6faf6270.tar.bz2
[multiple changes]
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. From-SVN: r116148
Diffstat (limited to 'gcc')
-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 4561c1f..3706f53 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 506b60f..0a5aae5 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 6802b84..5f14195 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 0000000..018ed74
--- /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 0000000..3bc04c0
--- /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" } */
+}
+