aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp102
1 files changed, 50 insertions, 52 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 8f838ea31..ceb4dc1de 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2273,65 +2273,63 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
}
}
- if (count > 0) {
- {
- char const *name = LB_TYPE_INFO_TYPES_NAME;
- Type *t = alloc_type_array(t_type_info_ptr, count);
- LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
- LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
- LLVMSetLinkage(g, LLVMInternalLinkage);
- if (LB_USE_GIANT_PACKED_STRUCT) {
- lb_make_global_private_const(g);
- }
- lb_global_type_info_member_types = lb_addr({g, alloc_type_pointer(t)});
-
+ {
+ char const *name = LB_TYPE_INFO_TYPES_NAME;
+ Type *t = alloc_type_array(t_type_info_ptr, count);
+ LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
+ LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
+ LLVMSetLinkage(g, LLVMInternalLinkage);
+ if (LB_USE_GIANT_PACKED_STRUCT) {
+ lb_make_global_private_const(g);
}
- {
- char const *name = LB_TYPE_INFO_NAMES_NAME;
- Type *t = alloc_type_array(t_string, count);
- LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
- LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
- LLVMSetLinkage(g, LLVMInternalLinkage);
- if (LB_USE_GIANT_PACKED_STRUCT) {
- lb_make_global_private_const(g);
- }
- lb_global_type_info_member_names = lb_addr({g, alloc_type_pointer(t)});
+ lb_global_type_info_member_types = lb_addr({g, alloc_type_pointer(t)});
+
+ }
+ {
+ char const *name = LB_TYPE_INFO_NAMES_NAME;
+ Type *t = alloc_type_array(t_string, count);
+ LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
+ LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
+ LLVMSetLinkage(g, LLVMInternalLinkage);
+ if (LB_USE_GIANT_PACKED_STRUCT) {
+ lb_make_global_private_const(g);
}
- {
- char const *name = LB_TYPE_INFO_OFFSETS_NAME;
- Type *t = alloc_type_array(t_uintptr, count);
- LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
- LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
- LLVMSetLinkage(g, LLVMInternalLinkage);
- if (LB_USE_GIANT_PACKED_STRUCT) {
- lb_make_global_private_const(g);
- }
- lb_global_type_info_member_offsets = lb_addr({g, alloc_type_pointer(t)});
+ lb_global_type_info_member_names = lb_addr({g, alloc_type_pointer(t)});
+ }
+ {
+ char const *name = LB_TYPE_INFO_OFFSETS_NAME;
+ Type *t = alloc_type_array(t_uintptr, count);
+ LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
+ LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
+ LLVMSetLinkage(g, LLVMInternalLinkage);
+ if (LB_USE_GIANT_PACKED_STRUCT) {
+ lb_make_global_private_const(g);
}
+ lb_global_type_info_member_offsets = lb_addr({g, alloc_type_pointer(t)});
+ }
- {
- char const *name = LB_TYPE_INFO_USINGS_NAME;
- Type *t = alloc_type_array(t_bool, count);
- LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
- LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
- LLVMSetLinkage(g, LLVMInternalLinkage);
- if (LB_USE_GIANT_PACKED_STRUCT) {
- lb_make_global_private_const(g);
- }
- lb_global_type_info_member_usings = lb_addr({g, alloc_type_pointer(t)});
+ {
+ char const *name = LB_TYPE_INFO_USINGS_NAME;
+ Type *t = alloc_type_array(t_bool, count);
+ LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
+ LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
+ LLVMSetLinkage(g, LLVMInternalLinkage);
+ if (LB_USE_GIANT_PACKED_STRUCT) {
+ lb_make_global_private_const(g);
}
+ lb_global_type_info_member_usings = lb_addr({g, alloc_type_pointer(t)});
+ }
- {
- char const *name = LB_TYPE_INFO_TAGS_NAME;
- Type *t = alloc_type_array(t_string, count);
- LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
- LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
- LLVMSetLinkage(g, LLVMInternalLinkage);
- if (LB_USE_GIANT_PACKED_STRUCT) {
- lb_make_global_private_const(g);
- }
- lb_global_type_info_member_tags = lb_addr({g, alloc_type_pointer(t)});
+ {
+ char const *name = LB_TYPE_INFO_TAGS_NAME;
+ Type *t = alloc_type_array(t_string, count);
+ LLVMValueRef g = LLVMAddGlobal(m->mod, lb_type(m, t), name);
+ LLVMSetInitializer(g, LLVMConstNull(lb_type(m, t)));
+ LLVMSetLinkage(g, LLVMInternalLinkage);
+ if (LB_USE_GIANT_PACKED_STRUCT) {
+ lb_make_global_private_const(g);
}
+ lb_global_type_info_member_tags = lb_addr({g, alloc_type_pointer(t)});
}
}
}