From 1f8a06056a77c1daa7ffb9e0a39d1da81d08183e Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 29 Jun 2026 00:42:26 +0300 Subject: [PATCH] v3: fix notices --- vlib/v3/gen/arm64/gen.v | 2 +- vlib/v3/gen/wasm/gen.v | 2 +- vlib/v3/types/checker.v | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vlib/v3/gen/arm64/gen.v b/vlib/v3/gen/arm64/gen.v index 9343a226e..d0aa226dc 100644 --- a/vlib/v3/gen/arm64/gen.v +++ b/vlib/v3/gen/arm64/gen.v @@ -1417,7 +1417,7 @@ fn (mut g Gen) materialize_string(val_id int, reg int) { // literals point at static data and must NOT be passed to free() (`string.free` // returns early only when is_lit==1). Without this, freeing a literal (e.g. the // `mut res := ''` in os.real_path) aborts with a libmalloc "pointer not allocated". - g.emit_mov_imm(10, i64(str_len) | (i64(1) << 32)) + g.emit_mov_imm(10, i64(str_len) | i64(u64(1) << 32)) } // ==================== Global access ==================== diff --git a/vlib/v3/gen/wasm/gen.v b/vlib/v3/gen/wasm/gen.v index 259c36a67..8ec329e0a 100644 --- a/vlib/v3/gen/wasm/gen.v +++ b/vlib/v3/gen/wasm/gen.v @@ -1770,7 +1770,7 @@ fn (g &Gen) fold_const_infix(n flat.Node) i64 { a ^ b } .left_shift { - a << b + i64(u64(a) << b) } .right_shift { if unsigned { diff --git a/vlib/v3/types/checker.v b/vlib/v3/types/checker.v index 966cefa41..db27793da 100644 --- a/vlib/v3/types/checker.v +++ b/vlib/v3/types/checker.v @@ -7183,7 +7183,7 @@ pub fn (tc &TypeChecker) const_int_value(name string, seen []string) ?int { '|' { l | r } '^' { l ^ r } '&' { l & r } - '<<' { l << r } + '<<' { int(u64(l) << r) } '>>' { l >> r } else { int(u64(l) >> r) } } @@ -7264,7 +7264,7 @@ fn (tc &TypeChecker) const_int_expr(id flat.NodeId, seen []string) ?int { if right < 0 || right >= 64 { return none } - return left << right + return int(u64(left) << right) } .right_shift { if right < 0 || right >= 64 { -- 2.39.5