1 // run 2 3 // Copyright 2015 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 // Test that pointer bitmaps of types with large scalar tails are 8 // correctly repeated when unrolled into the heap bitmap. 9 10 package main 11 12 import "runtime" 13 14 const D = 57 15 16 type T struct { 17 a [D]float64 18 b map[string]int 19 c [D]float64 20 } 21 22 var ts []T 23 24 func main() { 25 ts = make([]T, 4) 26 for i := range ts { 27 ts[i].b = make(map[string]int) 28 } 29 ts[3].b["abc"] = 42 30 runtime.GC() 31 if ts[3].b["abc"] != 42 { 32 panic("bad field value") 33 } 34 } 35