* c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
a C_MAYBE_CONST_EXPR.
testsuite:
* gcc.dg/noncompile/pr40033-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153522
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-10-23 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/40033
+ * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
+ a C_MAYBE_CONST_EXPR.
+
2009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/41787
goto continue_searching;
}
+ if (last == error_mark_node)
+ return last;
+
/* In the case that the BIND_EXPR is not necessary, return the
expression out from inside it. */
- if (last == error_mark_node
- || (last == BIND_EXPR_BODY (body)
- && BIND_EXPR_VARS (body) == NULL))
+ if (last == BIND_EXPR_BODY (body)
+ && BIND_EXPR_VARS (body) == NULL)
{
/* Even if this looks constant, do not allow it in a constant
expression. */
+2009-10-23 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/40033
+ * gcc.dg/noncompile/pr40033-1.c: New test.
+
2009-10-23 Dodji Seketeli <dodji@redhat.com>
PR c++/40808
--- /dev/null
+/* ICE from error_mark_node being wrapped in a C_MAYBE_CONST_EXPR. PR
+ 40033. */
+
+void foo()
+{
+ ({ 0,; }); /* { dg-error "expected" } */
+}