blob: c9bf0f29c57a560f401024b769f94a8c1bd9291f [file] [log] [blame]
Russ Cox1ac637c2016-01-13 00:46:28 -05001// 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
11package p
12
13import (
14 "syscall"
15 "unsafe"
16)
17
18func f(uintptr) // ERROR "f assuming arg#1 is unsafe uintptr"
19
20func 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
25func 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}