aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-08-05 12:33:02 +0100
committergingerBill <bill@gingerbill.org>2024-08-05 12:33:02 +0100
commitfd06be2243db3fa193702f881947eaa5f2ebf24b (patch)
tree1e1eb977f9949aedf056b8fc1ecc7b5ce938b254 /src/llvm_backend_expr.cpp
parenta06cb8ba46e8a116c8968565eef055fc56ec298e (diff)
Allow `swizzle` to take more arguments than the original array length
Diffstat (limited to 'src/llvm_backend_expr.cpp')
-rw-r--r--src/llvm_backend_expr.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp
index 1f0719e13..59d5cce23 100644
--- a/src/llvm_backend_expr.cpp
+++ b/src/llvm_backend_expr.cpp
@@ -3814,7 +3814,7 @@ gb_internal lbAddr lb_build_array_swizzle_addr(lbProcedure *p, AstCallExpr *ce,
Type *type = base_type(lb_addr_type(addr));
GB_ASSERT(type->kind == Type_Array);
i64 count = type->Array.count;
- if (count <= 4) {
+ if (count <= 4 && index_count <= 4) {
u8 indices[4] = {};
u8 index_count = 0;
for (i32 i = 1; i < ce->args.count; i++) {