Run Format

Source file test/live_syscall.go

Documentation: test

  // errorcheck -0 -m -live
  // +build !windows
  // 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.
  // Test escape analysis and liveness inferred for syscall.Syscall-like functions.
  package p
  import (
  func f(uintptr) // ERROR "f assuming arg#1 is unsafe uintptr"
  func g() {
  	var t int
  	f(uintptr(unsafe.Pointer(&t))) // ERROR "live at call to f: .?autotmp" "g &t does not escape"
  func h() {
  	var v int
  	syscall.Syscall(0, 1, uintptr(unsafe.Pointer(&v)), 2) // ERROR "live at call to Syscall: .?autotmp" "h &v does not escape"
  func i() {
  	var t int
  	p := unsafe.Pointer(&t) // ERROR "i &t does not escape"
  	f(uintptr(p))           // ERROR "live at call to f: .?autotmp"
  func j() {
  	var v int
  	p := unsafe.Pointer(&v)              // ERROR "j &v does not escape"
  	syscall.Syscall(0, 1, uintptr(p), 2) // ERROR "live at call to Syscall: .?autotmp"

View as plain text