From aa42d419661df95820ba8c28e93b0b1359e0f8d7 Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Thu, 5 Dec 2019 23:39:11 +0100 Subject: extract mark_addressable() from evaluate_addressof(). This is just moving the 3 lines of code to mark a symbol as addressable in a speparate function. This is a preparatory step for one of the next patches. Signed-off-by: Luc Van Oostenryck --- evaluate.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/evaluate.c b/evaluate.c index 19bdab92..d78de2ed 100644 --- a/evaluate.c +++ b/evaluate.c @@ -1540,6 +1540,14 @@ static int compatible_argument_type(struct expression *expr, struct symbol *targ return compatible_assignment_types(expr, target, rp, where); } +static void mark_addressable(struct expression *expr) +{ + if (expr->type == EXPR_SYMBOL) { + struct symbol *sym = expr->symbol; + sym->ctype.modifiers |= MOD_ADDRESSABLE; + } +} + static void mark_assigned(struct expression *expr) { struct symbol *sym; @@ -1780,10 +1788,7 @@ static struct symbol *evaluate_addressof(struct expression *expr) ctype = op->ctype; *expr = *op->unop; - if (expr->type == EXPR_SYMBOL) { - struct symbol *sym = expr->symbol; - sym->ctype.modifiers |= MOD_ADDRESSABLE; - } + mark_addressable(expr); /* * symbol expression evaluation is lazy about the type -- cgit 1.2.3-korg