...
Run Format

Source file test/fixedbugs/bug093.go

Documentation: test/fixedbugs

  // 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
  */
  

View as plain text