/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
go1.26.2
test/codegen/alloc.go
37 строк
1 KB
Russ Cox
test/codegen: simplify asmcheck pattern matching
29 окт 2025, 23:55
29 окт 2025, 23:55
915c183
Код
Авторство
О чём код?
// 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{} }