From c1b89f892ebef693da906685cd72c39f1f38c8ff Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Sat, 18 Apr 2020 16:37:32 +0200 Subject: scope: __func__ is special __func__ needs to be in the namepsace for symbols: NS_SYMBOL but doesn't follow the usual scope rules of them: it always needs to be declared in the function scope. So, use bind_symbol_with_scope() instead of first using bind_symbol() and then changing the namespace. Also change the comment to better express that it's the scope that is the unusual thing. Signed-off-by: Luc Van Oostenryck --- expression.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/expression.c b/expression.c index 78e577cf..ffb3c2dc 100644 --- a/expression.c +++ b/expression.c @@ -122,9 +122,8 @@ static struct symbol *handle_func(struct token *token) decl->ctype.modifiers = MOD_STATIC; decl->endpos = token->pos; - /* function-scope, but in NS_SYMBOL */ - bind_symbol(decl, ident, NS_LABEL); - decl->namespace = NS_SYMBOL; + /* NS_SYMBOL but in function-scope */ + bind_symbol_with_scope(decl, ident, NS_SYMBOL, function_scope); len = current_fn->ident->len; string = __alloc_string(len + 1); -- cgit 1.2.3-korg