| // 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\truntime\.newobject` |
| // amd64:-`CALL\truntime\.newobject` |
| // arm:-`CALL\truntime\.newobject` |
| // arm64:-`CALL\truntime\.newobject` |
| return new(struct{}) |
| } |
| |
| func zeroAllocNew2() *[0]int { |
| // 386:-`CALL\truntime\.newobject` |
| // amd64:-`CALL\truntime\.newobject` |
| // arm:-`CALL\truntime\.newobject` |
| // arm64:-`CALL\truntime\.newobject` |
| return new([0]int) |
| } |
| |
| func zeroAllocSliceLit() []int { |
| // 386:-`CALL\truntime\.newobject` |
| // amd64:-`CALL\truntime\.newobject` |
| // arm:-`CALL\truntime\.newobject` |
| // arm64:-`CALL\truntime\.newobject` |
| return []int{} |
| } |