From: Andrew Pinski Date: Tue, 15 Aug 2006 01:43:28 +0000 (-0700) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e63d6886f47b4c844918787f774021cd6faf6270;p=gcc.git [multiple changes] 2006-07-14 Andrew Pinski 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 PR c/27490 * gcc.dg/sizeof-2.c: New testcase. PR c/27489 * gcc.dg/switch-A.c: New testcase. From-SVN: r116148 --- 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 + + 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 * 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 + + 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 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" } */ +} +