From f77aae2c23c385fa8133f9a116e45521b2ea332c Mon Sep 17 00:00:00 2001 From: Krchi <997054144@qq.com> Date: Thu, 8 Jan 2026 12:12:23 +0800 Subject: [PATCH] builder,wasm: fix pointer size to 4 for `-b wasm` before the checker stage (#26281) --- vlib/v/builder/builder.v | 2 +- vlib/v/gen/wasm/gen.v | 1 - vlib/v/gen/wasm/tests/cast.vv | 3 +++ vlib/v/gen/wasm/tests/cast.vv.out | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 vlib/v/gen/wasm/tests/cast.vv create mode 100644 vlib/v/gen/wasm/tests/cast.vv.out diff --git a/vlib/v/builder/builder.v b/vlib/v/builder/builder.v index cb5e1dc64..3796a56b5 100644 --- a/vlib/v/builder/builder.v +++ b/vlib/v/builder/builder.v @@ -62,7 +62,7 @@ pub fn new_builder(pref_ &pref.Preferences) Builder { if pref_.use_color == .never { util.emanager.set_support_color(false) } - table.pointer_size = if pref_.m64 { 8 } else { 4 } + table.pointer_size = if pref_.m64 && pref_.backend != .wasm { 8 } else { 4 } mut msvc := MsvcResult{} if pref_.ccompiler == 'msvc' { $if windows { diff --git a/vlib/v/gen/wasm/gen.v b/vlib/v/gen/wasm/gen.v index 2a0455059..b22ce0272 100644 --- a/vlib/v/gen/wasm/gen.v +++ b/vlib/v/gen/wasm/gen.v @@ -1498,7 +1498,6 @@ pub fn gen(files []&ast.File, mut table ast.Table, out_name string, w_pref &pref stack_top: stack_top data_base: calc_align(stack_top + 1, 16) } - g.table.pointer_size = 4 g.mod.assign_memory('memory', true, 1, none) if g.pref.is_debug { diff --git a/vlib/v/gen/wasm/tests/cast.vv b/vlib/v/gen/wasm/tests/cast.vv new file mode 100644 index 000000000..81d7fedc3 --- /dev/null +++ b/vlib/v/gen/wasm/tests/cast.vv @@ -0,0 +1,3 @@ +fn main() { + println(u32(usize(0))) +} diff --git a/vlib/v/gen/wasm/tests/cast.vv.out b/vlib/v/gen/wasm/tests/cast.vv.out new file mode 100644 index 000000000..c22708346 --- /dev/null +++ b/vlib/v/gen/wasm/tests/cast.vv.out @@ -0,0 +1 @@ +0 \ No newline at end of file -- 2.39.5