//compile

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

// Gccgo had a bug comparing a struct or array value with an interface
// values, when the struct or array was not addressable.

package p

type A [10]int

type S struct {
	i int
}

func F1() S {
	return S{0}
}

func F2() A {
	return A{}
}

func Cmp(v interface{}) bool {
	if F1() == v {
		return true
	}
	if F2() == v {
		return true
	}
	return false
}
