Codegen compound statements correctly
This commit is contained in:
parent
28c733a5c8
commit
2b8d55b004
@ -630,13 +630,15 @@ namespace AST {
|
|||||||
builder.block = after_bb;
|
builder.block = after_bb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CompoundStatement::codegen(codegen::Builder& builder, codegen::Scope&, codegen::StackAllocator&) {
|
void CompoundStatement::codegen(codegen::Builder& builder, codegen::Scope& scope, codegen::StackAllocator& allocator) {
|
||||||
if (!builder.block)
|
if (!builder.block)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
builder.builder->SetInsertPoint(builder.block);
|
builder.builder->SetInsertPoint(builder.block);
|
||||||
|
|
||||||
throw CompileError("TODO", this->m_meta);
|
codegen::Scope inner{ scope };
|
||||||
|
for (auto& statement : this->m_statements)
|
||||||
|
statement->codegen(builder, inner, allocator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreakStatement::codegen(codegen::Builder& builder, codegen::Scope&, codegen::StackAllocator&) {
|
void BreakStatement::codegen(codegen::Builder& builder, codegen::Scope&, codegen::StackAllocator&) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user