// 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])
	}
}