// asmcheck | |
// Copyright 2018 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. | |
// Make sure a pointer variable and a zero-sized variable | |
// aren't allocated to the same stack slot. | |
// See issue 24993. | |
package codegen | |
func zeroSize() { | |
c := make(chan struct{}) | |
// amd64:`MOVQ\t\$0, ""\.s\+32\(SP\)` | |
var s *int | |
g(&s) // force s to be a stack object | |
// amd64:`LEAQ\t""\..*\+31\(SP\)` | |
c <- struct{}{} | |
} | |
//go:noinline | |
func g(p **int) { | |
} |