Home | History | Annotate | Download | only in fixedbugs
      1 // run
      2 
      3 // Copyright 2009 The Go Authors. All rights reserved.
      4 // Use of this source code is governed by a BSD-style
      5 // license that can be found in the LICENSE file.
      6 
      7 package main
      8 
      9 type S struct {
     10 }
     11 
     12 func (p *S) M() {
     13 }
     14 
     15 type I interface {
     16 	M();
     17 }
     18 
     19 func main() {
     20 	var p *S = nil;
     21 	var i I = p;  // this should be possible even though p is nil: we still know the type
     22 	i.M();  // should be possible since we know the type, and don't ever use the receiver
     23 }
     24 
     25 
     26 /*
     27 throw: ifaces2i: nil pointer
     28 SIGSEGV: segmentation violation
     29 Faulting address: 0x0
     30 pc: 0x1b7d
     31 
     32 0x1b7d?zi
     33 	throw(30409, 0, 0, ...)
     34 	throw(0x76c9, 0x0, 0x0, ...)
     35 0x207f?zi
     36 	sysifaces2i(31440, 0, 31480, ...)
     37 	sysifaces2i(0x7ad0, 0x7af8, 0x0, ...)
     38 0x136f?zi
     39 	mainmain(1, 0, 1606416424, ...)
     40 	mainmain(0x1, 0x7fff5fbff828, 0x0, ...)
     41 
     42 rax     0x1
     43 rbx     0x1
     44 rcx     0x33b5
     45 rdx     0x0
     46 rdi     0x1
     47 rsi     0x7684
     48 rbp     0x7684
     49 rsp     0xafb8
     50 r8      0x0
     51 r9      0x0
     52 r10     0x1002
     53 r11     0x206
     54 r12     0x0
     55 r13     0x0
     56 r14     0x7c48
     57 r15     0xa000
     58 rip     0x1b7d
     59 rflags  0x10202
     60 cs      0x27
     61 fs      0x10
     62 gs      0x48
     63 */
     64