diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2015-02-19 16:27:32 +0300 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2015-03-28 16:15:27 +0000 |
commit | edcc062bdc35a7dd6ac5d33aa85a135b020b72a8 (patch) | |
tree | dcf12943f01cb1664af7e009e8403c8fa0875f4b /test/escape_level.go | |
parent | 8a2545744b2662fc34c117e769f3dbd2f7167d19 (diff) | |
download | go-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.go | 16 |
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() { |