// 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 (
	"syscall"
	"unsafe"
)

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"
}
