// 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 8155. // Alignment of stack prologue zeroing was wrong on 64-bit Native Client // (because of 32-bit pointers). package main import "runtime" func bad(b bool) uintptr { var p **int var x1 uintptr x1 = 1 if b { var x [11]*int p = &x[0] } if b { var x [1]*int p = &x[0] } runtime.GC() if p != nil { x1 = uintptr(**p) } return x1 } func poison() uintptr { runtime.GC() var x [20]uintptr var s uintptr for i := range x { x[i] = uintptr(i+1) s += x[i] } return s } func main() { poison() bad(false) }