| // 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. |
| |
| // Issue 7944: |
| // Liveness bitmaps said b was live at call to g, |
| // but no one told the register optimizer. |
| |
| package main |
| |
| import "runtime" |
| |
| func f(b []byte) { |
| for len(b) > 0 { |
| n := len(b) |
| n = f1(n) |
| f2(b[n:]) |
| b = b[n:] |
| } |
| g() |
| } |
| |
| func f1(n int) int { |
| runtime.GC() |
| return n |
| } |
| |
| func f2(b []byte) { |
| runtime.GC() |
| } |
| |
| func g() { |
| runtime.GC() |
| } |
| |
| func main() { |
| f(make([]byte, 100)) |
| } |