From 5c977ed79609e9d9b4f00da0f6fff0d1d2f2394c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Tue, 22 May 2012 14:25:18 +0200
Subject: [PATCH] Compiler: Ensure that foreach always generates a node.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes LysLysKOM 19705902:
| 19705902 2012-05-22 12:22 /4 rader/ Martin Nilsson (Opera Mini - AFK!)
| Mottagare: Henrik Grubbström (Lysator) <11101>
| Mottagare: Martin Nilsson (Opera Mini - AFK!) <14470>
|     Mottaget: 2012-05-22 12:22
| Ärende: Parser bug
| ------------------------------------------------------------
|
| Pike v7.9 release 5 running Hilfe v3.5 (Incremental Pike Frontend)
| > foreach(f, mapping(string:string));
| Segmentation fault
| (19705902) /Martin Nilsson (Opera Mini - AFK!)/-----
---
 src/language.yacc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/language.yacc b/src/language.yacc
index 51c214afd0..acc798b5bc 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -3225,8 +3225,7 @@ foreach: TOK_FOREACH
 		$9);
     } else {
       /* Error in lvalue */
-      free_node($6);
-      $$=$9;
+      $$=mknode(F_COMMA_EXPR, mkcastnode(void_type_string, $6), $9);
     }
     COPY_LINE_NUMBER_INFO($$, $3);
     free_node ($3);
-- 
GitLab