...
Run Format

Source file test/fixedbugs/bug483.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2014 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.
  
  // Test for a garbage collection bug involving not
  // marking x as having its address taken by &x[0]
  // when x is an array value.
  
  package main
  
  import (
  	"bytes"
  	"fmt"
  	"runtime"
  )
  
  func main() {
  	var x = [4]struct{ x, y interface{} }{
  		{"a", "b"},
  		{"c", "d"},
  		{"e", "f"},
  		{"g", "h"},
  	}
  
  	var buf bytes.Buffer
  	for _, z := range x {
  		runtime.GC()
  		fmt.Fprintf(&buf, "%s %s ", z.x.(string), z.y.(string))
  	}
  
  	if buf.String() != "a b c d e f g h " {
  		println("BUG wrong output\n", buf.String())
  	}
  }
  

View as plain text