Force packed structs in ABI parameters

This commit is contained in:
gingerBill
2024-03-20 17:27:05 +00:00
parent b4fe9677a1
commit e804fbd891
+2 -2
View File
@@ -876,7 +876,7 @@ namespace lbAbiAmd64SysV {
if (types.count == 1) { if (types.count == 1) {
return types[0]; return types[0];
} }
return LLVMStructTypeInContext(c, types.data, cast(unsigned)types.count, false); return LLVMStructTypeInContext(c, types.data, cast(unsigned)types.count, true);
} }
gb_internal void classify_with(LLVMTypeRef t, Array<RegClass> *cls, i64 ix, i64 off) { gb_internal void classify_with(LLVMTypeRef t, Array<RegClass> *cls, i64 ix, i64 off) {
@@ -1312,7 +1312,7 @@ namespace lbAbiWasm {
// ignore padding // ignore padding
LLVMStructGetTypeAtIndex(type, 2) LLVMStructGetTypeAtIndex(type, 2)
}; };
LLVMTypeRef new_type = LLVMStructTypeInContext(c, types, gb_count_of(types), false); LLVMTypeRef new_type = LLVMStructTypeInContext(c, types, gb_count_of(types), true);
return lb_arg_type_direct(type, new_type, nullptr, nullptr); return lb_arg_type_direct(type, new_type, nullptr, nullptr);
} else { } else {
return is_struct(c, type, calling_convention); return is_struct(c, type, calling_convention);