aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzuojunwei.1024 <zuojunwei.1024@bytedance.com>2024-02-27 19:14:00 +0800
committerGopher Robot <gobot@golang.org>2024-02-28 05:32:14 +0000
commitb8c76effd9a3a30d66e44ed7acea789e4e95b926 (patch)
treea9288cf99dfdeb50933719bc2f367bdc4699389c /test
parente8b6d0c9cd86a44802322d56d13baeeb0e418d15 (diff)
downloadgo-b8c76effd9a3a30d66e44ed7acea789e4e95b926.tar.gz
go-b8c76effd9a3a30d66e44ed7acea789e4e95b926.zip
cmd/compile: mark pointer to noalg type as noalg
When the compiler writes PtrToThis field of noalg type, it generates its pointer type. Mark them as noalg to prevent put them in typelinks. Fixes #65957 Change-Id: Icbc3b18bc866f9138c7648e42dd500a80326f72b Reviewed-on: https://go-review.googlesource.com/c/go/+/567335 Reviewed-by: Matthew Dempsky <mdempsky@google.com> Auto-Submit: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'test')
-rw-r--r--test/fixedbugs/issue65957.dir/a.go12
-rw-r--r--test/fixedbugs/issue65957.dir/main.go19
-rw-r--r--test/fixedbugs/issue65957.go7
3 files changed, 38 insertions, 0 deletions
diff --git a/test/fixedbugs/issue65957.dir/a.go b/test/fixedbugs/issue65957.dir/a.go
new file mode 100644
index 0000000000..284ec4af9f
--- /dev/null
+++ b/test/fixedbugs/issue65957.dir/a.go
@@ -0,0 +1,12 @@
+// 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.
+
+package a
+
+var s any
+
+//go:noinline
+func F() {
+ s = new([4]int32)
+}
diff --git a/test/fixedbugs/issue65957.dir/main.go b/test/fixedbugs/issue65957.dir/main.go
new file mode 100644
index 0000000000..89b8a28234
--- /dev/null
+++ b/test/fixedbugs/issue65957.dir/main.go
@@ -0,0 +1,19 @@
+// 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.
+
+package main
+
+import (
+ "./a"
+ "reflect"
+)
+
+var s = []rune{0, 1, 2, 3}
+
+func main() {
+ m := map[any]int{}
+ k := reflect.New(reflect.ArrayOf(4, reflect.TypeOf(int32(0)))).Elem().Interface()
+ m[k] = 1
+ a.F()
+}
diff --git a/test/fixedbugs/issue65957.go b/test/fixedbugs/issue65957.go
new file mode 100644
index 0000000000..48e4d34c93
--- /dev/null
+++ b/test/fixedbugs/issue65957.go
@@ -0,0 +1,7 @@
+// rundir
+
+// 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.
+
+package ignored