mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 23:32:09 +00:00
[qfcc] Fix ivar visibility
It was broken by the big rewrite and I forgot to fix it.
This commit is contained in:
parent
50d39d64cb
commit
16223098e5
2 changed files with 5 additions and 1 deletions
|
@ -1202,8 +1202,9 @@ field_expr (expr_t *e1, expr_t *e2)
|
|||
class_t *class = t1->t.fldptr.type->t.class;
|
||||
symbol_t *sym = e2->e.symbol;//FIXME need to check
|
||||
symbol_t *ivar;
|
||||
int protected = class_access (current_class, class);
|
||||
|
||||
ivar = class_find_ivar (class, vis_protected, sym->name);
|
||||
ivar = class_find_ivar (class, protected, sym->name);
|
||||
if (!ivar)
|
||||
return new_error_expr ();
|
||||
e2->type = ex_value;
|
||||
|
|
|
@ -706,6 +706,7 @@ struct_decl
|
|||
$1->type = append_type ($1->type, $<spec>0.type);
|
||||
$1->type = find_type ($1->type);
|
||||
$1->sy_type = sy_var;
|
||||
$1->visibility = current_visibility;
|
||||
symtab_addsymbol (current_symtab, $1);
|
||||
}
|
||||
| var_decl
|
||||
|
@ -715,6 +716,7 @@ struct_decl
|
|||
$1->type = append_type ($1->type, $<spec>0.type);
|
||||
$1->type = find_type ($1->type);
|
||||
$1->sy_type = sy_var;
|
||||
$1->visibility = current_visibility;
|
||||
symtab_addsymbol (current_symtab, $1);
|
||||
}
|
||||
| var_decl ':' expr %prec COMMA {}
|
||||
|
@ -1762,6 +1764,7 @@ ivar_decl_list
|
|||
tab = $$->parent; // preserve the ivars inheritance chain
|
||||
build_struct ('s', 0, $$, 0);
|
||||
$$->parent = tab;
|
||||
current_visibility = vis_public;
|
||||
}
|
||||
;
|
||||
|
||||
|
|
Loading…
Reference in a new issue