|  | // run | 
|  |  | 
|  | // Copyright 2021 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. | 
|  |  | 
|  | package main | 
|  |  | 
|  | const p0exp = "foo" | 
|  | const p1exp = 10101 | 
|  | const p2exp = 3030303 | 
|  | const p3exp = 505050505 | 
|  | const p4exp = 70707070707 | 
|  |  | 
|  | //go:noinline | 
|  | //go:registerparams | 
|  | func callee(p0 string, p1 uint64, p2 uint64, p3 uint64, p4 uint64) { | 
|  | if p0 != p0exp { | 
|  | panic("bad p0") | 
|  | } | 
|  | if p1 != p1exp { | 
|  | panic("bad p1") | 
|  | } | 
|  | if p2 != p2exp { | 
|  | panic("bad p2") | 
|  | } | 
|  | if p3 != p3exp { | 
|  | panic("bad p3") | 
|  | } | 
|  | if p4 != p4exp { | 
|  | panic("bad p4") | 
|  | } | 
|  | defer func(p0 string, p2 uint64) { | 
|  | if p0 != p0exp { | 
|  | panic("defer bad p0") | 
|  | } | 
|  | if p1 != p1exp { | 
|  | panic("defer bad p1") | 
|  | } | 
|  | if p2 != p2exp { | 
|  | panic("defer bad p2") | 
|  | } | 
|  | }(p0, p2) | 
|  | } | 
|  |  | 
|  | func main() { | 
|  | callee(p0exp, p1exp, p2exp, p3exp, p4exp) | 
|  | } |