// run

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

// Test to make sure we don't think values are dead
// when they are assigned to a PPARAMOUT slot before
// the last GC safepoint.

package main

import (
	"fmt"
	"runtime"
)

// When a T is deallocated, T[1] is certain to
// get clobbered (the runtime writes 0xdeaddeaddeaddead there).
type T [4]int

func f() (r, s *T) {
	r = &T{0x30, 0x31, 0x32, 0x33}
	runtime.GC()
	s = &T{0x40, 0x41, 0x42, 0x43}
	runtime.GC()
	return
}

func main() {
	r, s := f()
	if r[1] != 0x31 {
		fmt.Printf("bad r[1], want 0x31 got %x\n", r[1])
	}
	if s[1] != 0x41 {
		fmt.Printf("bad s[1], want 0x41 got %x\n", s[1])
	}
}
