From 65757d128e7cff52e43cd4c507fa1af9822f25e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 31 Aug 2000 23:57:13 +0200
Subject: [PATCH] Fixed possible bug in optimizer. Improved optimization of
 return statements.

Rev: src/las.c:1.201
---
 src/las.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/las.c b/src/las.c
index de1da89dff..54538132dc 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.200 2000/08/31 14:16:55 grubba Exp $");
+RCSID("$Id: las.c,v 1.201 2000/08/31 21:57:13 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -3931,13 +3931,15 @@ static void optimize(node *n)
     if(n->tree_info & (OPT_NOT_CONST|
 		       OPT_SIDE_EFFECT|
 		       OPT_EXTERNAL_DEPEND|
-		       OPT_ASSIGNMENT))
+		       OPT_ASSIGNMENT|
+		       OPT_RETURN))
     {
       if(car_is_node(n) &&
 	 !(CAR(n)->tree_info & (OPT_NOT_CONST|
 				OPT_SIDE_EFFECT|
 				OPT_EXTERNAL_DEPEND|
-				OPT_ASSIGNMENT)) &&
+				OPT_ASSIGNMENT|
+				OPT_RETURN)) &&
 	 (CAR(n)->tree_info & OPT_TRY_OPTIMIZE) &&
 	 CAR(n)->token != ':')
       {
@@ -3958,7 +3960,8 @@ static void optimize(node *n)
 	 !(CDR(n)->tree_info & (OPT_NOT_CONST|
 				OPT_SIDE_EFFECT|
 				OPT_EXTERNAL_DEPEND|
-				OPT_ASSIGNMENT)) &&
+				OPT_ASSIGNMENT|
+				OPT_RETURN)) &&
 	 (CDR(n)->tree_info & OPT_TRY_OPTIMIZE) &&
 	 CDR(n)->token != ':')
       {
-- 
GitLab