OSDN Git Service

2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Aug 2006 01:43:28 +0000 (01:43 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Aug 2006 01:43:28 +0000 (01:43 +0000)
        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

gcc/ChangeLog
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/sizeof-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/switch-A.c [new file with mode: 0644]

index 4561c1f..3706f53 100644 (file)
@@ -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.
index 506b60f..0a5aae5 100644 (file)
@@ -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);
 }
 
index 6802b84..5f14195 100644 (file)
@@ -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 (file)
index 0000000..018ed74
--- /dev/null
@@ -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 (file)
index 0000000..3bc04c0
--- /dev/null
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+
+void foo()
+{
+  switch (,) { } /* { dg-error "expected expression before" } */
+}
+