package main // Regression test for guru crash // https://code.google.com/p/go/issues/detail?id=6605 // // Using reflection, methods may be called on types that are not the // operand of any ssa.MakeInterface instruction. In this example, // (Y).F is called by deriving the type Y from *Y. Prior to the fix, // no RTTI (or method set) for type Y was included in the program, so // the F() call would crash. import "reflect" var a int type X struct{} func (X) F() *int { return &a } type I interface { F() *int } func main() { type Y struct{ X } print(reflect.Indirect(reflect.ValueOf(new(Y))).Interface().(I).F()) // @pointsto main.a }