diff options
-rw-r--r-- | src/cmd/compile/internal/gc/order.go | 5 | ||||
-rw-r--r-- | src/runtime/race/testdata/issue12225_test.go | 13 |
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]))) +} |