aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2019-11-21 00:07:21 +0000
committergingerBill <bill@gingerbill.org>2019-11-21 00:07:21 +0000
commit2c5a84bb78b981b61c55e4a5afba303bfe2d8e01 (patch)
treebd3fc46495a330ca9496e86eb546b84b9bd37286 /src/types.cpp
parente01d8a04a959e4cb1fa99cb5591b09a0d254a571 (diff)
`#soa[]Type` (Experimental)
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp6
1 files changed, 5 insertions, 1 deletions
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];