mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 07:08:48 +00:00
Fix #992
This commit is contained in:
@@ -14283,7 +14283,9 @@ lbProcedure *lb_create_startup_runtime(lbModule *main_module, lbProcedure *start
|
|||||||
LLVMValueKind value_kind = LLVMGetValueKind(init.value);
|
LLVMValueKind value_kind = LLVMGetValueKind(init.value);
|
||||||
// gb_printf_err("%s %d\n", LLVMPrintValueToString(init.value));
|
// gb_printf_err("%s %d\n", LLVMPrintValueToString(init.value));
|
||||||
|
|
||||||
if (lb_is_const_or_global(init)) {
|
if (is_type_any(e->type) || is_type_union(e->type)) {
|
||||||
|
var->init = init;
|
||||||
|
} else if (lb_is_const_or_global(init)) {
|
||||||
if (!var->is_initialized) {
|
if (!var->is_initialized) {
|
||||||
LLVMSetInitializer(var->var.value, init.value);
|
LLVMSetInitializer(var->var.value, init.value);
|
||||||
var->is_initialized = true;
|
var->is_initialized = true;
|
||||||
@@ -14967,7 +14969,7 @@ void lb_generate_code(lbGenerator *gen) {
|
|||||||
|
|
||||||
if (decl->init_expr != nullptr) {
|
if (decl->init_expr != nullptr) {
|
||||||
TypeAndValue tav = type_and_value_of_expr(decl->init_expr);
|
TypeAndValue tav = type_and_value_of_expr(decl->init_expr);
|
||||||
if (!is_type_any(e->type)) {
|
if (!is_type_any(e->type) && !is_type_union(e->type)) {
|
||||||
if (tav.mode != Addressing_Invalid) {
|
if (tav.mode != Addressing_Invalid) {
|
||||||
if (tav.value.kind != ExactValue_Invalid) {
|
if (tav.value.kind != ExactValue_Invalid) {
|
||||||
ExactValue v = tav.value;
|
ExactValue v = tav.value;
|
||||||
|
|||||||
Reference in New Issue
Block a user