// 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.

// These tests check that allocating a 0-size object does not
// introduce a call to runtime.newobject.

package codegen

func zeroAllocNew1() *struct{} {
	// 386:-`CALL runtime\.newobject` `LEAL runtime.zerobase`
	// amd64:-`CALL runtime\.newobject` `LEAQ runtime.zerobase`
	// arm:-`CALL runtime\.newobject` `MOVW [$]runtime.zerobase`
	// arm64:-`CALL runtime\.newobject` `MOVD [$]runtime.zerobase`
	// riscv64:-`CALL runtime\.newobject` `MOV [$]runtime.zerobase`
	return new(struct{})
}

func zeroAllocNew2() *[0]int {
	// 386:-`CALL runtime\.newobject` `LEAL runtime.zerobase`
	// amd64:-`CALL runtime\.newobject` `LEAQ runtime.zerobase`
	// arm:-`CALL runtime\.newobject` `MOVW [$]runtime.zerobase`
	// arm64:-`CALL runtime\.newobject` `MOVD [$]runtime.zerobase`
	// riscv64:-`CALL runtime\.newobject` `MOV [$]runtime.zerobase`
	return new([0]int)
}

func zeroAllocSliceLit() []int {
	// 386:-`CALL runtime\.newobject` `LEAL runtime.zerobase`
	// amd64:-`CALL runtime\.newobject` `LEAQ runtime.zerobase`
	// arm:-`CALL runtime\.newobject` `MOVW [$]runtime.zerobase`
	// arm64:-`CALL runtime\.newobject` `MOVD [$]runtime.zerobase`
	// riscv64:-`CALL runtime\.newobject` `MOV [$]runtime.zerobase`
	return []int{}
}
