diff --git a/tools/qfcc/include/expr.h b/tools/qfcc/include/expr.h index 7783a572d..977a018ff 100644 --- a/tools/qfcc/include/expr.h +++ b/tools/qfcc/include/expr.h @@ -766,7 +766,7 @@ expr_t *return_expr (struct function_s *f, expr_t *e); expr_t *conditional_expr (expr_t *cond, expr_t *e1, expr_t *e2); expr_t *incop_expr (int op, expr_t *e, int postop); expr_t *array_expr (expr_t *array, expr_t *index); -expr_t *pointer_expr (expr_t *pointer); +expr_t *deref_pointer_expr (expr_t *pointer); expr_t *address_expr (expr_t *e1, expr_t *e2, struct type_s *t); expr_t *build_if_statement (int not, expr_t *test, expr_t *s1, expr_t *els, expr_t *s2); diff --git a/tools/qfcc/source/expr.c b/tools/qfcc/source/expr.c index a5740700e..52b0fbe84 100644 --- a/tools/qfcc/source/expr.c +++ b/tools/qfcc/source/expr.c @@ -2468,7 +2468,7 @@ incop_expr (int op, expr_t *e, int postop) append_expr (block, assign_expr (t2, binary_expr (op, t1, one))); res = copy_expr (e); if (res->type == ex_uexpr && res->e.expr.op == '.') - res = pointer_expr (address_expr (res, 0, 0)); + res = deref_pointer_expr (address_expr (res, 0, 0)); append_expr (block, assign_expr (res, t2)); block->e.block.result = t1; return block; @@ -2531,7 +2531,7 @@ array_expr (expr_t *array, expr_t *index) } expr_t * -pointer_expr (expr_t *pointer) +deref_pointer_expr (expr_t *pointer) { type_t *pointer_type = get_type (pointer); diff --git a/tools/qfcc/source/qc-parse.y b/tools/qfcc/source/qc-parse.y index 709470e0c..399f91b1e 100644 --- a/tools/qfcc/source/qc-parse.y +++ b/tools/qfcc/source/qc-parse.y @@ -1560,7 +1560,7 @@ unary_expr | '!' cast_expr %prec UNARY { $$ = unary_expr ('!', $2); } | '~' cast_expr %prec UNARY { $$ = unary_expr ('~', $2); } | '&' cast_expr %prec UNARY { $$ = address_expr ($2, 0, 0); } - | '*' cast_expr %prec UNARY { $$ = pointer_expr ($2); } + | '*' cast_expr %prec UNARY { $$ = deref_pointer_expr ($2); } | SIZEOF unary_expr %prec UNARY { $$ = sizeof_expr ($2, 0); } | SIZEOF '(' abstract_decl ')' %prec HYPERUNARY {