blob: acd94466f599f43abcc61ec0b66833c8108753a2 [file] [log] [blame] [edit]
// run
// Copyright 2009 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.
package main
type S struct {
}
func (p *S) M() {
}
type I interface {
M();
}
func main() {
var p *S = nil;
var i I = p; // this should be possible even though p is nil: we still know the type
i.M(); // should be possible since we know the type, and don't ever use the receiver
}
/*
throw: ifaces2i: nil pointer
SIGSEGV: segmentation violation
Faulting address: 0x0
pc: 0x1b7d
0x1b7d?zi
throw(30409, 0, 0, ...)
throw(0x76c9, 0x0, 0x0, ...)
0x207f?zi
sys·ifaces2i(31440, 0, 31480, ...)
sys·ifaces2i(0x7ad0, 0x7af8, 0x0, ...)
0x136f?zi
main·main(1, 0, 1606416424, ...)
main·main(0x1, 0x7fff5fbff828, 0x0, ...)
rax 0x1
rbx 0x1
rcx 0x33b5
rdx 0x0
rdi 0x1
rsi 0x7684
rbp 0x7684
rsp 0xafb8
r8 0x0
r9 0x0
r10 0x1002
r11 0x206
r12 0x0
r13 0x0
r14 0x7c48
r15 0xa000
rip 0x1b7d
rflags 0x10202
cs 0x27
fs 0x10
gs 0x48
*/