// Copyright 2017 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 p | |
import q "./a" | |
type T struct { | |
X *q.P | |
} | |
func F(in, out *T) { | |
*out = *in | |
if in.X != nil { | |
in, out := &in.X, &out.X | |
if *in == nil { | |
*out = nil | |
} else { | |
*out = new(q.P) | |
**out = **in | |
} | |
} | |
return | |
} | |
//go:noinline | |
func G(x, y *T) { | |
F(x, y) | |
} |