From 2c5a84bb78b981b61c55e4a5afba303bfe2d8e01 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 21 Nov 2019 00:07:21 +0000 Subject: `#soa[]Type` (Experimental) --- src/types.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/types.cpp') diff --git a/src/types.cpp b/src/types.cpp index 1d89f6e17..63647dcf3 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -811,6 +811,7 @@ Type *alloc_type_simd_vector(i64 count, Type *elem) { + //////////////////////////////////////////////////////////////// @@ -1757,7 +1758,10 @@ bool are_types_identical(Type *x, Type *y) { if (x->Struct.is_raw_union == y->Struct.is_raw_union && x->Struct.fields.count == y->Struct.fields.count && x->Struct.is_packed == y->Struct.is_packed && - x->Struct.custom_align == y->Struct.custom_align) { + x->Struct.custom_align == y->Struct.custom_align && + x->Struct.soa_kind == y->Struct.soa_kind && + x->Struct.soa_count == y->Struct.soa_count && + are_types_identical(x->Struct.soa_elem, y->Struct.soa_elem)) { // TODO(bill); Fix the custom alignment rule for_array(i, x->Struct.fields) { Entity *xf = x->Struct.fields[i]; -- cgit v1.2.3