// run

// Copyright 2014 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.

// issue 8039. defer copy(x, <-c) did not rewrite <-c properly.

package main

func f(s []int) {
	c := make(chan []int, 1)
	c <- []int{1}
	defer copy(s, <-c)
}

func main() {
	x := make([]int, 1)
	f(x)
	if x[0] != 1 {
		println("BUG", x[0])
	}
}
