syscall: mark C syscall functions noescape

Many C syscall functions take pointer arguments. The pointers
    don't escape in the C functions. Mark the C functions noescape so
    calling them doesn't need allocation.
    
    Reviewed-on: https://go-review.googlesource.com/c/158158

From-SVN: r267989
This commit is contained in:
Ian Lance Taylor 2019-01-16 22:38:33 +00:00
parent 07e1534f44
commit a6804ea929
3 changed files with 3 additions and 1 deletions

View File

@ -1,4 +1,4 @@
9a79c333e896ea49f6a708d459148074d29a2af6
ee94431c133a90ca5c3c5ebbebcb019c60258dac
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -62,6 +62,7 @@ func runtime_AfterFork()
func runtime_AfterForkInChild()
// Implemented in clone_linux.c
//go:noescape
func rawClone(flags _C_ulong, child_stack *byte, ptid *Pid_t, ctid *Pid_t, regs unsafe.Pointer) _C_long
// Fork, dup fd onto 0..len(fd), and exec(argv0, argvv, envv) in child.

View File

@ -98,6 +98,7 @@ BEGIN {
printf("// Automatically generated wrapper for %s/%s\n", gofnname, cfnname)
if (!(cfnname in cfns)) {
cfns[cfnname] = 1
printf("//go:noescape\n")
printf("//extern %s\n", cfnname)
printf("func c_%s(%s) %s\n", cfnname, cfnparams, cfnresult)
}