...
Run Format

Source file test/fixedbugs/bug500.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2016 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.
  
  // Gccgo generated incorrect GC info when a global variable was
  // initialized to a slice of a value containing pointers.  The initial
  // backing array for the slice was allocated in the .data section,
  // which is fine, but the backing array was not registered as a GC
  // root.
  
  package main
  
  import (
  	"runtime"
  )
  
  type s struct {
  	str string
  }
  
  var a = []struct {
  	str string
  }{
  	{""},
  }
  
  var b = "b"
  var c = "c"
  
  func init() {
  	a[0].str = b + c
  }
  
  func main() {
  	runtime.GC()
  	if a[0].str != b + c {
  		panic(a[0].str)
  	}
  }
  

View as plain text