]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: set conversions to unsafe.Pointer as an escaping operation when -asan...
authorfanzha02 <fannie.zhang@arm.com>
Mon, 7 Jun 2021 06:24:45 +0000 (14:24 +0800)
committerFannie Zhang <Fannie.Zhang@arm.com>
Thu, 17 Mar 2022 08:43:51 +0000 (08:43 +0000)
commitc379c3d58d5482f4c8fe97466a99ce70e630ad44
treee7ed5642f0c3b31981f3925895c74d560b7c9e04
parent599d5395ebb41eb17bbe77e75d12ed0d13294767
cmd/compile: set conversions to unsafe.Pointer as an escaping operation when -asan is enabled

When ASan is enabled, treat conversions to unsafe.Pointer as
an escaping operation. In this way, all pointer operations on
the stack objects will become operations on the escaped heap
objects. As we've already supported ASan detection of error
memory accesses to heap objects. With this trick, we can use
-asan option to report errors on bad stack operations.

Add test cases.

Updates #44853.

Change-Id: I6281e77f6ba581d7008d610f0b24316078b6e746
Reviewed-on: https://go-review.googlesource.com/c/go/+/393315
Trust: Fannie Zhang <Fannie.Zhang@arm.com>
Run-TryBot: Fannie Zhang <Fannie.Zhang@arm.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Eric Fang <eric.fang@arm.com>
misc/cgo/testsanitizers/asan_test.go
misc/cgo/testsanitizers/testdata/asan_unsafe_fail1.go [new file with mode: 0644]
misc/cgo/testsanitizers/testdata/asan_unsafe_fail2.go [new file with mode: 0644]
misc/cgo/testsanitizers/testdata/asan_unsafe_fail3.go [new file with mode: 0644]
src/cmd/compile/internal/escape/expr.go
src/cmd/compile/internal/ir/expr.go