diff --git a/tools/qfcc/source/qc-parse.y b/tools/qfcc/source/qc-parse.y index 9205c594d..57a7349cd 100644 --- a/tools/qfcc/source/qc-parse.y +++ b/tools/qfcc/source/qc-parse.y @@ -1353,15 +1353,23 @@ protocol_list ; ivar_decl_list - : /* */ + : /* empty */ { + symtab_t *tab, *ivars; + ivars = class_new_ivars ($0); + for (tab = ivars; tab->parent; tab = tab->parent) + ; + $$ = tab; + tab->parent = current_symtab; + current_symtab = ivars; + current_visibility = vis_protected; - current_symtab = class_new_ivars ($0); } ivar_decl_list_2 { $$ = current_symtab; - current_symtab = $$->parent; + current_symtab = $1->parent; + $1->parent = 0; build_struct ('s', 0, $$, 0); }