c-typeck.c (emit_side_effect_warnings): Ignore error marks.
authorRichard Henderson <rth@redhat.com>
Wed, 23 Jun 2004 02:33:25 +0000 (19:33 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 23 Jun 2004 02:33:25 +0000 (19:33 -0700)
        * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
        (c_finish_stmt_expr): Likewise.

From-SVN: r83534

gcc/ChangeLog
gcc/c-typeck.c

index 526a8ec00301d8bab466cd29f0f00a5ff9cc2480..ecd0f068d3dba823657b3282d0f69dde3ed5fee7 100644 (file)
@@ -1,5 +1,8 @@
 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.
index 63c91210015b5bc81372b8d18f8ce3c5d647a64f..beef504d3623431dbf977e7c61bd2d5ee5c0246c 100644 (file)
@@ -6651,7 +6651,9 @@ c_finish_for_stmt (tree body, tree for_stmt)
 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",
@@ -6766,7 +6768,9 @@ c_finish_stmt_expr (tree body)
 
   /* 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.  */