diff options
| author | gingerBill <bill@gingerbill.org> | 2024-08-18 22:45:26 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-08-18 22:45:26 +0100 |
| commit | 95c3b8a8def04c7725d6e8b3523d28be7c48046c (patch) | |
| tree | 345cddac940f5cc06afe5d0f3c9a8989a5bd5bbb /src/llvm_backend_stmt.cpp | |
| parent | ae417793668b1e74aae165e61cd2f29ed0c2cee0 (diff) | |
Move assert to `else` branch
Diffstat (limited to 'src/llvm_backend_stmt.cpp')
| -rw-r--r-- | src/llvm_backend_stmt.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/llvm_backend_stmt.cpp b/src/llvm_backend_stmt.cpp index 8f1c3a123..dc577308f 100644 --- a/src/llvm_backend_stmt.cpp +++ b/src/llvm_backend_stmt.cpp @@ -1574,9 +1574,14 @@ gb_internal void lb_store_type_case_implicit(lbProcedure *p, Ast *clause, lbValu GB_ASSERT(e != nullptr); if (e->flags & EntityFlag_Value) { // by value - GB_ASSERT(are_types_identical(e->type, value.type)); - lbAddr x = lb_add_local(p, e->type, e, false); - lb_addr_store(p, x, value); + if (are_types_identical(e->type, value.type)) { + 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); + } } else { if (!is_default_case) { Type *clause_type = e->type; |