Fix void auto-return bug with empty stmts

This commit is contained in:
nub31
2025-09-08 20:51:35 +02:00
parent bb8cbf71f9
commit f332856dd7
2 changed files with 2 additions and 40 deletions

View File

@@ -363,7 +363,7 @@ public class QBEGenerator
EmitBlock(funcDef.Body);
// Implicit return for void functions if no explicit return has been set
if (funcDef.Signature.ReturnType is VoidTypeNode && funcDef.Body.Statements is [.., not ReturnNode])
if (funcDef.Signature.ReturnType is VoidTypeNode && funcDef.Body.Statements.LastOrDefault() is not ReturnNode)
{
_writer.Indented("ret");
}
@@ -400,7 +400,7 @@ public class QBEGenerator
EmitBlock(function.Body);
// Implicit return for void functions if no explicit return has been set
if (function.Signature.ReturnType is VoidTypeNode && function.Body.Statements is [.., not ReturnNode])
if (function.Signature.ReturnType is VoidTypeNode && function.Body.Statements.LastOrDefault() is not ReturnNode)
{
_writer.Indented("ret");
}