]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: be safer about uintptr/unsafe.Pointer conversions
authorKeith Randall <khr@golang.org>
Tue, 10 Nov 2015 23:35:36 +0000 (15:35 -0800)
committerKeith Randall <khr@golang.org>
Wed, 11 Nov 2015 05:26:49 +0000 (05:26 +0000)
commit7807bda91d4038241b857a8bd341e6b9baf3a264
tree7569273657185f61197ca6e2e81f9114e39aae62
parent74e568f43a8dc5a2d52fe4b761ae256dadded8ce
[dev.ssa] cmd/compile: be safer about uintptr/unsafe.Pointer conversions

Make sure that when a pointer value is live across a function
call, we save it as a pointer.  (And similarly a uintptr
live across a function call should not be saved as a pointer.)

Add a nasty test case.

This is probably what is preventing the merge from master
to dev.ssa.  Signs point to something like this bug happening
in mallocgc.

Change-Id: Ib23fa1251b8d1c50d82c6a448cb4a4fc28219029
Reviewed-on: https://go-review.googlesource.com/16830
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/ssa_test.go
src/cmd/compile/internal/gc/testdata/unsafe_ssa.go [new file with mode: 0644]
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/gen/genericOps.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/rewritegeneric.go