// 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, command-line-arguments\.s\+56\(SP\)`
	var s *int
	// force s to be a stack object, also use some (fixed) stack space
	g(&s, 1, 2, 3, 4, 5)

	// amd64:`LEAQ\tcommand-line-arguments\..*\+55\(SP\)`
	c <- struct{}{}
}

//go:noinline
func g(**int, int, int, int, int, int) {}
