...
Run Format

Source file test/live2.go

Documentation: test

  // errorcheck -0 -live -wb=0
  
  // Copyright 2014 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.
  
  // liveness tests with inlining ENABLED
  // see also live.go.
  
  package main
  
  // issue 8142: lost 'addrtaken' bit on inlined variables.
  // no inlining in this test, so just checking that non-inlined works.
  
  func printnl()
  
  type T40 struct {
  	m map[int]int
  }
  
  func newT40() *T40 {
  	ret := T40{}
  	ret.m = make(map[int]int) // ERROR "live at call to makemap: &ret$"
  	return &ret
  }
  
  func bad40() {
  	t := newT40() // ERROR "live at call to makemap: .autotmp_[0-9]+ ret$"
  	printnl()     // ERROR "live at call to printnl: .autotmp_[0-9]+ ret$"
  	_ = t
  }
  
  func good40() {
  	ret := T40{}
  	ret.m = make(map[int]int) // ERROR "live at call to makemap: .autotmp_[0-9]+ ret$"
  	t := &ret
  	printnl() // ERROR "live at call to printnl: .autotmp_[0-9]+ ret$"
  	_ = t
  }
  

View as plain text