2004-06-22 Richard Henderson <rth@redhat.com>
+ * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
+ (c_finish_stmt_expr): Likewise.
+
* config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
(ix86_return_in_memory): Move SSE vector return warning ...
(ix86_struct_value_rtx): ... here. New.
static void
emit_side_effect_warnings (tree expr)
{
- if (!TREE_SIDE_EFFECTS (expr))
+ if (expr == error_mark_node)
+ ;
+ else if (!TREE_SIDE_EFFECTS (expr))
{
if (!VOID_TYPE_P (TREE_TYPE (expr)) && !TREE_NO_WARNING (expr))
warning ("%Hstatement with no effect",
/* In the case that the BIND_EXPR is not necessary, return the
expression out from inside it. */
- if (last == BIND_EXPR_BODY (body) && BIND_EXPR_VARS (body) == NULL)
+ if (last == error_mark_node
+ || (last == BIND_EXPR_BODY (body)
+ && BIND_EXPR_VARS (body) == NULL))
return last;
/* Extract the type of said expression. */