From ff4b232d92eacbd5b964764847edeabed498db89 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sat, 22 Dec 2012 20:04:11 +0900 Subject: [PATCH] Reset current_storage when resetting current_symtab. This helps prevent an internal error caused by ealier errors. --- tools/qfcc/source/qc-parse.y | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tools/qfcc/source/qc-parse.y b/tools/qfcc/source/qc-parse.y index 34cfe84e5..f0eac4b89 100644 --- a/tools/qfcc/source/qc-parse.y +++ b/tools/qfcc/source/qc-parse.y @@ -271,12 +271,29 @@ external_def_list : /* empty */ { current_symtab = pr.symtab; + current_storage = sc_global; } | external_def_list external_def | external_def_list obj_def - | error END { current_class = 0; yyerrok; current_symtab = pr.symtab; } - | error ';' { yyerrok; current_symtab = pr.symtab; } - | error '}' { yyerrok; current_symtab = pr.symtab; } + | error END + { + yyerrok; + current_class = 0; + current_symtab = pr.symtab; + current_storage = sc_global; + } + | error ';' + { + yyerrok; + current_symtab = pr.symtab; + current_storage = sc_global; + } + | error '}' + { + yyerrok; + current_symtab = pr.symtab; + current_storage = sc_global; + } ; external_def