| // run |
| |
| // Copyright 2012 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. |
| |
| // The no-op conversion here used to confuse the compiler |
| // into doing a load-effective-address of nil. |
| // See issue 3670. |
| |
| package main |
| |
| import "reflect" |
| |
| type T interface {} |
| |
| var x bool |
| |
| func main() { |
| reflect.TypeOf(nil) |
| reflect.TypeOf(T(nil)) // used to miscompile |
| shouldPanic() |
| } |
| |
| func f() byte { |
| return []byte(nil)[0] // used to miscompile |
| } |
| |
| func shouldPanic() { |
| defer func() { |
| if recover() == nil { |
| panic("not panicking") |
| } |
| }() |
| f() |
| } |