github.com/karrick/go@v0.0.0-20170817181416-d5b0ec858b37/test/live_syscall.go (about)

     1  // errorcheck -0 -m -live
     2  
     3  // +build !windows
     4  
     5  // Copyright 2015 The Go Authors. All rights reserved.
     6  // Use of this source code is governed by a BSD-style
     7  // license that can be found in the LICENSE file.
     8  
     9  // Test escape analysis and liveness inferred for syscall.Syscall-like functions.
    10  
    11  package p
    12  
    13  import (
    14  	"syscall"
    15  	"unsafe"
    16  )
    17  
    18  func f(uintptr) // ERROR "f assuming arg#1 is unsafe uintptr"
    19  
    20  func g() {
    21  	var t int
    22  	f(uintptr(unsafe.Pointer(&t))) // ERROR "live at call to f: .?autotmp" "g &t does not escape"
    23  }
    24  
    25  func h() {
    26  	var v int
    27  	syscall.Syscall(0, 1, uintptr(unsafe.Pointer(&v)), 2) // ERROR "live at call to Syscall: .?autotmp" "h &v does not escape"
    28  }