]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/escape_level.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / escape_level.go
index 581e4a95cbe27a21936d14d79284ac379519b094..33ae54053263f784d7c4d6b341e5a308ec40afbf 100644 (file)
@@ -1,6 +1,6 @@
 // errorcheck -0 -m -l
 
-// Copyright 2015 The Go Authors.  All rights reserved.
+// Copyright 2015 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -12,97 +12,97 @@ var sink interface{}
 
 func level0() {
        i := 0     // ERROR "moved to heap: i"
-       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 "moved to heap: p2" "&p1 escapes to heap"
-       sink = &p2 // ERROR "&p2 escapes to heap"
+       p0 := &i   // ERROR "moved to heap: p0"
+       p1 := &p0  // ERROR "moved to heap: p1"
+       p2 := &p1  // ERROR "moved to heap: p2"
+       sink = &p2
 }
 
 func level1() {
        i := 0    // ERROR "moved to heap: i"
-       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 // ERROR "p2 escapes to heap"
+       p0 := &i  // ERROR "moved to heap: p0"
+       p1 := &p0 // ERROR "moved to heap: p1"
+       p2 := &p1
+       sink = p2
 }
 
 func level2() {
-       i := 0    // ERROR "moved to heap: i"
-       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 // ERROR "\*p2 escapes to heap"
+       i := 0     // ERROR "moved to heap: i"
+       p0 := &i   // ERROR "moved to heap: p0"
+       p1 := &p0
+       p2 := &p1
+       sink = *p2
 }
 
 func level3() {
-       i := 0    // ERROR "moved to heap: i"
-       p0 := &i  // ERROR "&i escapes to heap"
-       p1 := &p0 // ERROR "&p0 does not escape"
-       p2 := &p1 // ERROR "&p1 does not escape"
-       sink = **p2 // ERROR "\* \(\*p2\) escapes to heap"
+       i := 0      // ERROR "moved to heap: i"
+       p0 := &i
+       p1 := &p0
+       p2 := &p1
+       sink = **p2
 }
 
 func level4() {
        i := 0     // ERROR "moved to heap: i"
-       p0 := &i   // ERROR "moved to heap: p0" "&i escapes to heap"
-       p1 := &p0  // ERROR "&p0 escapes to heap"
+       p0 := &i   // ERROR "moved to heap: p0"
+       p1 := &p0
        p2 := p1   // ERROR "moved to heap: p2"
-       sink = &p2 // ERROR "&p2 escapes to heap"
+       sink = &p2
 }
 
 func level5() {
        i := 0    // ERROR "moved to heap: i"
-       p0 := &i  // ERROR "moved to heap: p0" "&i escapes to heap"
-       p1 := &p0 // ERROR "&p0 escapes to heap"
+       p0 := &i  // ERROR "moved to heap: p0"
+       p1 := &p0
        p2 := p1
-       sink = p2 // ERROR "p2 escapes to heap"
+       sink = p2
 }
 
 func level6() {
        i := 0    // ERROR "moved to heap: i"
-       p0 := &i  // ERROR "&i escapes to heap"
-       p1 := &p0 // ERROR "&p0 does not escape"
+       p0 := &i
+       p1 := &p0
        p2 := p1
-       sink = *p2 // ERROR "\*p2 escapes to heap"
+       sink = *p2
 }
 
 func level7() {
-       i := 0     // ERROR "moved to heap: i"
-       p0 := &i   // ERROR "moved to heap: p0" "&i escapes to heap"
-       // BAD: p0 should not escape here
-       p1 := &p0  // ERROR "&p0 escapes to heap"
+       i := 0    // ERROR "moved to heap: i"
+       p0 := &i
+       p1 := &p0
+       // note *p1 == &i
        p2 := *p1  // ERROR "moved to heap: p2"
-       sink = &p2 // ERROR "&p2 escapes to heap"
+       sink = &p2
 }
 
 func level8() {
        i := 0    // ERROR "moved to heap: i"
-       p0 := &i  // ERROR "&i escapes to heap"
-       p1 := &p0 // ERROR "&p0 does not escape"
+       p0 := &i
+       p1 := &p0
        p2 := *p1
-       sink = p2 // ERROR "p2 escapes to heap"
+       sink = p2
 }
 
 func level9() {
        i := 0
-       p0 := &i  // ERROR "&i does not escape"
-       p1 := &p0 // ERROR "&p0 does not escape"
+       p0 := &i
+       p1 := &p0
        p2 := *p1
        sink = *p2 // ERROR "\*p2 escapes to heap"
 }
 
 func level10() {
        i := 0
-       p0 := &i // ERROR "&i does not escape"
+       p0 := &i
        p1 := *p0
-       p2 := &p1 // ERROR "&p1 does not escape"
+       p2 := &p1
        sink = *p2 // ERROR "\*p2 escapes to heap"
 }
 
 func level11() {
        i := 0
-       p0 := &i   // ERROR "&i does not escape"
-       p1 := &p0  // ERROR "&p0 does not escape"
+       p0 := &i
+       p1 := &p0
        p2 := **p1 // ERROR "moved to heap: p2"
-       sink = &p2 // ERROR "&p2 escapes to heap"
+       sink = &p2
 }