From f4efb7811b741d006e33838219b7f3857655a71b Mon Sep 17 00:00:00 2001 From: zinc Date: Wed, 14 Oct 2026 15:56:18 +0330 Subject: return: a value returned from a void function is dropped and the function yields 0 (typecheck off, spec 4.8.3) --- src/compiler/stmt.zc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/compiler/stmt.zc b/src/compiler/stmt.zc index 21d5801..d84f08f 100644 --- a/src/compiler/stmt.zc +++ b/src/compiler/stmt.zc @@ -649,7 +649,7 @@ int kw_return() { } if_ret(xty, xzero); if (fty && fty != tvoid) fcoerce(fty); - if (fty == tvoid) tcerr("return value", tvoid, xty); + if (fty == tvoid) { tcerr("return value", tvoid, xty); op(O_DROP); lit(0); } // typecheck off: the value is ignored (spec 4.8.3) else if (fty && !compat(fty, xty)) tcerr("return value", fty, xty); } if (nclo) { -- cgit v1.2.3