From 8c4197af38e6a342554c9b5602206916d983c6bc Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 23 Sep 2021 23:32:46 +0100 Subject: Add `#load_or(path_string, default_byte_slice)` --- src/check_expr.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 08be7b7bc..13643b283 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -5865,7 +5865,15 @@ ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *call, Ast *pr proc->kind == Ast_BasicDirective) { ast_node(bd, BasicDirective, proc); String name = bd->name.string; - if (name == "location" || name == "assert" || name == "panic" || name == "defined" || name == "config" || name == "load") { + if ( + name == "location" || + name == "assert" || + name == "panic" || + name == "defined" || + name == "config" || + name == "load" || + name == "load_or" + ) { operand->mode = Addressing_Builtin; operand->builtin_id = BuiltinProc_DIRECTIVE; operand->expr = proc; @@ -6619,10 +6627,11 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type o->type = t_source_code_location; o->mode = Addressing_Value; } else if ( - name == "load" || name == "assert" || name == "defined" || - name == "config" + name == "config" || + name == "load" || + name == "load_or" ) { error(node, "'#%.*s' must be used as a call", LIT(name)); o->type = t_invalid; -- cgit v1.2.3