Browse Source

Fix `switch val in ptr`

gingerBill 1 year ago
parent
commit
2a0785037b
1 changed files with 3 additions and 3 deletions
  1. 3 3
      src/llvm_backend_stmt.cpp

+ 3 - 3
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) {