aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/compile/internal/gc/order.go5
-rw-r--r--src/runtime/race/testdata/issue12225_test.go13
2 files changed, 17 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/gc/order.go b/src/cmd/compile/internal/gc/order.go
index 799a17e184..a5cf9207e6 100644
--- a/src/cmd/compile/internal/gc/order.go
+++ b/src/cmd/compile/internal/gc/order.go
@@ -1091,7 +1091,10 @@ func orderexpr(np **Node, order *Order, lhs *Node) {
OMAKESLICE,
ONEW,
OREAL,
- ORECOVER:
+ ORECOVER,
+ OSTRARRAYBYTE,
+ OSTRARRAYBYTETMP,
+ OSTRARRAYRUNE:
ordercall(n, order)
if lhs == nil || lhs.Op != ONAME || flag_race != 0 {
n = ordercopyexpr(n, n.Type, order, 0)
diff --git a/src/runtime/race/testdata/issue12225_test.go b/src/runtime/race/testdata/issue12225_test.go
new file mode 100644
index 0000000000..3b0b8ec289
--- /dev/null
+++ b/src/runtime/race/testdata/issue12225_test.go
@@ -0,0 +1,13 @@
+// Copyright 2015 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 race_test
+
+// golang.org/issue/12225
+// The test is that this compiles at all.
+
+func issue12225() {
+ println(*(*int)(unsafe.Pointer(&convert("")[0])))
+ println(*(*int)(unsafe.Pointer(&[]byte("")[0])))
+}