| // 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) { |
| } |