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;
|
class_t *class = t1->t.fldptr.type->t.class;
|
||||||
symbol_t *sym = e2->e.symbol;//FIXME need to check
|
symbol_t *sym = e2->e.symbol;//FIXME need to check
|
||||||
symbol_t *ivar;
|
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)
|
if (!ivar)
|
||||||
return new_error_expr ();
|
return new_error_expr ();
|
||||||
e2->type = ex_value;
|
e2->type = ex_value;
|
||||||
|
|
|
@ -706,6 +706,7 @@ struct_decl
|
||||||
$1->type = append_type ($1->type, $<spec>0.type);
|
$1->type = append_type ($1->type, $<spec>0.type);
|
||||||
$1->type = find_type ($1->type);
|
$1->type = find_type ($1->type);
|
||||||
$1->sy_type = sy_var;
|
$1->sy_type = sy_var;
|
||||||
|
$1->visibility = current_visibility;
|
||||||
symtab_addsymbol (current_symtab, $1);
|
symtab_addsymbol (current_symtab, $1);
|
||||||
}
|
}
|
||||||
| var_decl
|
| var_decl
|
||||||
|
@ -715,6 +716,7 @@ struct_decl
|
||||||
$1->type = append_type ($1->type, $<spec>0.type);
|
$1->type = append_type ($1->type, $<spec>0.type);
|
||||||
$1->type = find_type ($1->type);
|
$1->type = find_type ($1->type);
|
||||||
$1->sy_type = sy_var;
|
$1->sy_type = sy_var;
|
||||||
|
$1->visibility = current_visibility;
|
||||||
symtab_addsymbol (current_symtab, $1);
|
symtab_addsymbol (current_symtab, $1);
|
||||||
}
|
}
|
||||||
| var_decl ':' expr %prec COMMA {}
|
| var_decl ':' expr %prec COMMA {}
|
||||||
|
@ -1762,6 +1764,7 @@ ivar_decl_list
|
||||||
tab = $$->parent; // preserve the ivars inheritance chain
|
tab = $$->parent; // preserve the ivars inheritance chain
|
||||||
build_struct ('s', 0, $$, 0);
|
build_struct ('s', 0, $$, 0);
|
||||||
$$->parent = tab;
|
$$->parent = tab;
|
||||||
|
current_visibility = vis_public;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue