The current implementation causes a nil pointer panic when a parameter is ignored with an underscore, as it attempts to dereference a nil pointer in the trampoline.
type M struct{}
func TargetFunc(_ M) {
Trampoline(nil)
}
func Trampoline(arg *M) {
Hook(*arg) // panic
}
func Hook(arg M) {}
func main() {
TargetFunc(M{})
}