aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-06-09 23:47:44 +0100
committergingerBill <bill@gingerbill.org>2021-06-09 23:47:44 +0100
commite6ad773a8887023165fabec552122b21ef4a5633 (patch)
tree995de638c1d411cf06133e12c130d2037ed24ace /src/llvm_backend.cpp
parent82eae32bca73a9eda26da78df48f3c56172c13c1 (diff)
Minor code clean up
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index e7fb1194f..c66b7499d 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -5038,14 +5038,13 @@ void lb_build_type_switch_stmt(lbProcedure *p, AstTypeSwitchStmt *ss) {
GB_ASSERT(tag.value != nullptr);
LLVMValueRef switch_instr = LLVMBuildSwitch(p->builder, tag.value, else_block->block, cast(unsigned)num_cases);
- // NOTE(bill): Append this later
- Ast *default_ = nullptr;
-
for_array(i, body->stmts) {
Ast *clause = body->stmts[i];
ast_node(cc, CaseClause, clause);
if (cc->list.count == 0) {
- default_ = clause;
+ lb_start_block(p, default_block);
+ lb_store_type_case_implicit(p, clause, parent_value);
+ lb_type_case_body(p, ss->label, clause, p->curr_block, done);
continue;
}
@@ -5094,13 +5093,7 @@ void lb_build_type_switch_stmt(lbProcedure *p, AstTypeSwitchStmt *ss) {
lb_type_case_body(p, ss->label, clause, body, done);
}
- if (default_ != nullptr) {
- lb_start_block(p, default_block);
- lb_store_type_case_implicit(p, default_, parent_value);
- lb_type_case_body(p, ss->label, default_, p->curr_block, done);
- } else {
- lb_emit_jump(p, done);
- }
+ lb_emit_jump(p, done);
lb_start_block(p, done);
}