stmt.c (expand_expr_stmt): If not assigning fresh value to last_expr_value...
authorCraig Burley <burley@gnu.org>
Mon, 13 Jul 1998 22:21:01 +0000 (18:21 -0400)
committerJeff Law <law@gcc.gnu.org>
Mon, 13 Jul 1998 22:21:01 +0000 (16:21 -0600)
        * stmt.c (expand_expr_stmt): If not assigning fresh
        value to last_expr_value, zero it, so old garbage
        doesn't get dereferenced.

From-SVN: r21116

gcc/ChangeLog
gcc/stmt.c

index 6c55abf..2d78aac 100644 (file)
@@ -1,3 +1,9 @@
+Mon Jul 13 23:18:39 1998  Craig Burley  <burley@gnu.org>
+
+       * stmt.c (expand_expr_stmt): If not assigning fresh
+       value to last_expr_value, zero it, so old garbage
+       doesn't get dereferenced.
+
 Mon Jul 13 23:06:55 1998  Henning.Petersen@t-online.de (Henning Petersen)
 
        * gcse.c (hash_scan_insn): Add missing argument declaration.
index 18ca944..9ebe670 100644 (file)
@@ -1533,7 +1533,9 @@ expand_expr_stmt (exp)
     exp = build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (exp)), exp);
 
   last_expr_type = TREE_TYPE (exp);
-  if (! flag_syntax_only || expr_stmts_for_value)
+  if (flag_syntax_only && ! expr_stmts_for_value)
+    last_expr_value = 0;
+  else
     last_expr_value = expand_expr (exp,
                                   (expr_stmts_for_value
                                    ? NULL_RTX : const0_rtx),