The mem address should be regarded as uint32.
Fixes #65571
Change-Id: Icee38d11f2d93eeca7d50b2e133159e321daeb90
GitHub-Last-Rev:
c2568b104369bcf5c4d42c6281d235a52bb9675f
GitHub-Pull-Request: golang/go#68400
Reviewed-on: https://go-review.googlesource.com/c/go/+/597955
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
--- /dev/null
+// Copyright 2024 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build js && wasm
+
+package bytes_test
+
+import (
+ "bytes"
+ "testing"
+)
+
+func TestIssue65571(t *testing.T) {
+ b := make([]byte, 1<<31+1)
+ b[1<<31] = 1
+ i := bytes.IndexByte(b, 1)
+ if i != 1<<31 {
+ t.Errorf("IndexByte(b, 1) = %d; want %d", i, 1<<31)
+ }
+}
I64Load b_len+8(FP)
I32WrapI64
Call memchr<>(SB)
- I64ExtendI32S
+ I64ExtendI32U
Set R0
Get SP
I64Load s_len+8(FP)
I32WrapI64
Call memchr<>(SB)
- I64ExtendI32S
+ I64ExtendI32U
Set R0
I64Const $-1