...
Run Format

Source file test/fixedbugs/bug348.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2011 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
  
  import (
  	"runtime"
  	"strings"
  )
  
  func f() {
  	var x *string
  	
  	for _, i := range *x {  // THIS IS LINE 17
  		println(i)
  	}
  }
  
  func g() {
  }
  
  func main() {
  	defer func() {
  		for i := 0;; i++ {
  			pc, file, line, ok := runtime.Caller(i)
  			if !ok {
  				print("BUG: bug348: cannot find caller\n")
  				return
  			}
  			if !strings.Contains(file, "bug348.go") || runtime.FuncForPC(pc).Name() != "main.f" {
  				// walk past runtime frames
  				continue
  			}
  			if line != 17 {
  				print("BUG: bug348: panic at ", file, ":", line, " in ", runtime.FuncForPC(pc).Name(), "\n")
  				return
  			}
  			recover()
  			return
  		}
  	}()
  	f()
  }
  

View as plain text