diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2021-03-14 14:24:47 -0700 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2021-04-21 00:53:48 +0000 |
commit | faa4fa1a6e94fce4f6fa22524a2bece5125213b6 (patch) | |
tree | ecd5c4b860564b5b1926725f6ffafcebfac3b3d9 /src/cmd/compile/internal/ssa/expand_calls.go | |
parent | 1c268431f49ee2fc843eac52a0854aea3d02a6e0 (diff) | |
download | go-faa4fa1a6e94fce4f6fa22524a2bece5125213b6.tar.gz go-faa4fa1a6e94fce4f6fa22524a2bece5125213b6.zip |
cmd/compile: allow conversion from slice to array ptr
Panic if the slice is too short.
Updates #395
Change-Id: I90f4bff2da5d8f3148ba06d2482084f32b25c29a
Reviewed-on: https://go-review.googlesource.com/c/go/+/301650
Trust: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/expand_calls.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/expand_calls.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/ssa/expand_calls.go b/src/cmd/compile/internal/ssa/expand_calls.go index be460457a8..46c2388e7b 100644 --- a/src/cmd/compile/internal/ssa/expand_calls.go +++ b/src/cmd/compile/internal/ssa/expand_calls.go @@ -508,7 +508,7 @@ func (x *expandState) rewriteSelect(leaf *Value, selector *Value, offset int64, ls := x.rewriteSelect(leaf, selector.Args[0], offset, regOffset) locs = x.splitSlots(ls, ".ptr", 0, x.typs.BytePtr) - case OpSlicePtr: + case OpSlicePtr, OpSlicePtrUnchecked: w := selector.Args[0] ls := x.rewriteSelect(leaf, w, offset, regOffset) locs = x.splitSlots(ls, ".ptr", 0, types.NewPtr(w.Type.Elem())) @@ -1202,7 +1202,7 @@ func expandCalls(f *Func) { case OpStructSelect, OpArraySelect, OpIData, OpITab, OpStringPtr, OpStringLen, - OpSlicePtr, OpSliceLen, OpSliceCap, + OpSlicePtr, OpSliceLen, OpSliceCap, OpSlicePtrUnchecked, OpComplexReal, OpComplexImag, OpInt64Hi, OpInt64Lo: w := v.Args[0] |