1// run 2 3// Copyright 2013 The Go Authors. All rights reserved. 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file. 6 7// issue 5056: escape analysis not applied to wrapper functions 8 9package main 10 11type Foo int16 12 13func (f Foo) Esc() *int{ 14 x := int(f) 15 return &x 16} 17 18type iface interface { 19 Esc() *int 20} 21 22var bar, foobar *int 23 24func main() { 25 var quux iface 26 var x Foo 27 28 quux = x 29 bar = quux.Esc() 30 foobar = quux.Esc() 31 if bar == foobar { 32 panic("bar == foobar") 33 } 34} 35