diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 9357ebc61..bec444d2f 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -87,7 +87,12 @@ void error_operand_not_expression(Operand *o) { void error_operand_no_value(Operand *o) { if (o->mode == Addressing_NoValue) { gbString err = expr_to_string(o->expr); - error(o->expr, "`%s` used as value", err); + AstNode *x = unparen_expr(o->expr); + if (x->kind == AstNode_CallExpr) { + error(o->expr, "`%s` call does not return a value and cannot be used as a value", err); + } else { + error(o->expr, "`%s` used as a value", err); + } gb_string_free(err); o->mode = Addressing_Invalid; }