From 4a7bab08134920723b5291280398ae77269c46f9 Mon Sep 17 00:00:00 2001 From: Cary R Date: Sun, 13 Jun 2010 11:45:14 -0700 Subject: [PATCH] V0.9: On error there is no need to pop the scope. The error routines for task and function definitions were incorrectly popping the scope. This should not be done since no scope was pushed. Also assert that the current_task/function is 0 to catch that kind of error like the other definition rules. --- parse.y | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/parse.y b/parse.y index 635016280..54a478cb1 100644 --- a/parse.y +++ b/parse.y @@ -1,7 +1,7 @@ %{ /* - * Copyright (c) 1998-2009 Stephen Williams (steve@icarus.com) + * Copyright (c) 1998-2010 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -2312,8 +2312,7 @@ module_item | K_task automatic_opt IDENTIFIER error K_endtask { - pform_pop_scope(); - current_task = 0; + assert(current_task == 0); delete[]$3; } @@ -2353,8 +2352,7 @@ module_item } | K_function automatic_opt function_range_or_type_opt IDENTIFIER error K_endfunction { - pform_pop_scope(); - current_task = 0; + assert(current_function == 0); delete[]$4; }