Skip to content

Commit 5f1504a

Browse files
committed
Fix(Compiler): Use correct parent for ForStatement
1 parent a20b789 commit 5f1504a

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

packages/runtime/v8/CMakeLists.txt

Whitespace-only changes.

src/backend/llvm/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export function passForStatement(parent: ts.ForStatement, ctx: Context, builder:
8181
passStatement(<any>parent.initializer, ctx, builder);
8282
}
8383

84-
const conditionBlock = llvm.BasicBlock.create(ctx.llvmContext, "for.condition");
84+
const conditionBlock = llvm.BasicBlock.create(ctx.llvmContext, "for.condition", ctx.scope.currentFunction);
8585
ctx.scope.currentFunction.addBasicBlock(conditionBlock);
8686

8787
const positiveBlock = llvm.BasicBlock.create(ctx.llvmContext, "for.true");
@@ -205,12 +205,16 @@ export function passFunctionDeclaration(parent: ts.FunctionDeclaration, ctx: Con
205205
}
206206
}
207207

208+
ctx.scope.currentFunction = fn;
209+
208210
if (parent.body) {
209211
for (const stmt of parent.body.statements) {
210212
passStatement(stmt, ctx, irBuilder);
211213
}
212214
}
213215

216+
ctx.scope.currentFunction = null;
217+
214218
if (!block.getTerminator() && returnType.isVoidTy()) {
215219
irBuilder.createRetVoid();
216220
}

0 commit comments

Comments
 (0)