commit 5bfb1a9a7e811324eccee2f935923b1d97da86c6 (tree)
parent be87644337b7884ef3aa50fd1d719825bd9a174a
Author: Motiejus <motiejus@jakstys.lt>
Date: Sat, 7 Mar 2026 09:32:37 +0000
sema: fix zirBitSizeOf for pointer types
Pointer types (*T) now return 32 bits (wasm32-wasi target pointer
size), matching Sema.zig bitSizeSema → ptrBitWidth.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Diffstat:
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/stage0/sema.c b/stage0/sema.c
@@ -9299,6 +9299,11 @@ static AirInstRef zirBitSizeOf(Sema* sema, uint32_t inst) {
|| type_ip == IP_INDEX_C_ULONGLONG_TYPE) {
bit_size = 64;
}
+ // Pointer types: use target pointer size (wasm32 = 32 bits).
+ // Ported from Sema.zig zirBitSizeOf → bitSizeSema → ptrBitWidth.
+ else if (sema->ip->items[type_ip].tag == IP_KEY_PTR_TYPE) {
+ bit_size = 32; // wasm32-wasi target pointer bit size
+ }
// void, type, etc. have 0 bits.
}
}