The Go frontend had a bug comparing a struct or array value to an
interface value when the struct or array was not addressable. The code
that was supposed to force the struct/array into a temporary variable
did not fire, because the compiler erroneously tried to handle it as a
straight struct/array comparison. This patch fixes the problem.
Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline and 4.9 branch.
The test case has been committed to the master testsuite; see
https://codereview.appspot.com/135170043 . This fixes
http://golang.org/issue/8612 .
Ian