aboutsummaryrefslogtreecommitdiff
path: root/test/escape_level.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-02-19 16:27:32 +0300
committerDmitry Vyukov <dvyukov@google.com>2015-03-28 16:15:27 +0000
commitedcc062bdc35a7dd6ac5d33aa85a135b020b72a8 (patch)
treedcf12943f01cb1664af7e009e8403c8fa0875f4b /test/escape_level.go
parent8a2545744b2662fc34c117e769f3dbd2f7167d19 (diff)
downloadgo-edcc062bdc35a7dd6ac5d33aa85a135b020b72a8.tar.gz
go-edcc062bdc35a7dd6ac5d33aa85a135b020b72a8.zip
test: add tests for escape analysis of interface conversions
The false positives (var incorrectly escapes) are marked with BAD. Change-Id: If64fabb6ea96de44a1177d9ab12e2ccc579fe0c4 Reviewed-on: https://go-review.googlesource.com/5294 Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'test/escape_level.go')
-rw-r--r--test/escape_level.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/test/escape_level.go b/test/escape_level.go
index 336321bed8..581e4a95cb 100644
--- a/test/escape_level.go
+++ b/test/escape_level.go
@@ -23,7 +23,7 @@ func level1() {
p0 := &i // ERROR "moved to heap: p0" "&i escapes to heap"
p1 := &p0 // ERROR "moved to heap: p1" "&p0 escapes to heap"
p2 := &p1 // ERROR "&p1 escapes to heap"
- sink = p2
+ sink = p2 // ERROR "p2 escapes to heap"
}
func level2() {
@@ -31,7 +31,7 @@ func level2() {
p0 := &i // ERROR "moved to heap: p0" "&i escapes to heap"
p1 := &p0 // ERROR "&p0 escapes to heap"
p2 := &p1 // ERROR "&p1 does not escape"
- sink = *p2
+ sink = *p2 // ERROR "\*p2 escapes to heap"
}
func level3() {
@@ -39,7 +39,7 @@ func level3() {
p0 := &i // ERROR "&i escapes to heap"
p1 := &p0 // ERROR "&p0 does not escape"
p2 := &p1 // ERROR "&p1 does not escape"
- sink = **p2
+ sink = **p2 // ERROR "\* \(\*p2\) escapes to heap"
}
func level4() {
@@ -55,7 +55,7 @@ func level5() {
p0 := &i // ERROR "moved to heap: p0" "&i escapes to heap"
p1 := &p0 // ERROR "&p0 escapes to heap"
p2 := p1
- sink = p2
+ sink = p2 // ERROR "p2 escapes to heap"
}
func level6() {
@@ -63,7 +63,7 @@ func level6() {
p0 := &i // ERROR "&i escapes to heap"
p1 := &p0 // ERROR "&p0 does not escape"
p2 := p1
- sink = *p2
+ sink = *p2 // ERROR "\*p2 escapes to heap"
}
func level7() {
@@ -80,7 +80,7 @@ func level8() {
p0 := &i // ERROR "&i escapes to heap"
p1 := &p0 // ERROR "&p0 does not escape"
p2 := *p1
- sink = p2
+ sink = p2 // ERROR "p2 escapes to heap"
}
func level9() {
@@ -88,7 +88,7 @@ func level9() {
p0 := &i // ERROR "&i does not escape"
p1 := &p0 // ERROR "&p0 does not escape"
p2 := *p1
- sink = *p2
+ sink = *p2 // ERROR "\*p2 escapes to heap"
}
func level10() {
@@ -96,7 +96,7 @@ func level10() {
p0 := &i // ERROR "&i does not escape"
p1 := *p0
p2 := &p1 // ERROR "&p1 does not escape"
- sink = *p2
+ sink = *p2 // ERROR "\*p2 escapes to heap"
}
func level11() {