aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_stmt.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-08-19 12:19:45 +0100
committergingerBill <bill@gingerbill.org>2024-08-19 12:19:45 +0100
commit2a0785037b74972f52eddc131309d1e28ef3b8bb (patch)
tree6f77084265cd4a16eb6d91f230206dff9456354d /src/llvm_backend_stmt.cpp
parent34a9e20531dd29e1079c391f93c4a2809b94e09b (diff)
Fix `switch val in ptr`
Diffstat (limited to 'src/llvm_backend_stmt.cpp')
-rw-r--r--src/llvm_backend_stmt.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/llvm_backend_stmt.cpp b/src/llvm_backend_stmt.cpp
index dc577308f..f2fe4f7dc 100644
--- a/src/llvm_backend_stmt.cpp
+++ b/src/llvm_backend_stmt.cpp
@@ -1578,9 +1578,9 @@ gb_internal void lb_store_type_case_implicit(lbProcedure *p, Ast *clause, lbValu
lbAddr x = lb_add_local(p, e->type, e, false);
lb_addr_store(p, x, value);
} else {
- GB_ASSERT(are_types_identical(type_deref(e->type), value.type));
- lbAddr x = lb_add_local(p, type_deref(e->type), e, false);
- lb_addr_store(p, x, value);
+ GB_ASSERT_MSG(are_types_identical(e->type, type_deref(value.type)), "%s", type_to_string(value.type));
+ lbAddr x = lb_add_local(p, e->type, e, false);
+ lb_addr_store(p, x, lb_emit_load(p, value));
}
} else {
if (!is_default_case) {