aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp7
1 files changed, 6 insertions, 1 deletions
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;
}