go issue8036 源码

2022-07-15 浏览 (819)

golang issue8036 代码

文件路径:/test/fixedbugs/issue8036.go

// run

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

// Issue 8036. Stores necessary for stack scan being eliminated as redundant by optimizer.

package main

import "runtime"

type T struct {
	X *int
	Y *int
	Z *int
}

type TI [3]uintptr

//go:noinline
func G() (t TI) {
	t[0] = 1
	t[1] = 2
	t[2] = 3
	return
}

//go:noinline
func F() (t T) {
	t.X = newint()
	t.Y = t.X
	t.Z = t.Y
	return
}

func newint() *int {
	runtime.GC()
	return nil
}

func main() {
	G() // leave non-pointers where F's return values go
	F()
}

相关信息

go 源码目录

相关文章

go bug000 源码

go bug002 源码

go bug003 源码

go bug004 源码

go bug005 源码

go bug006 源码

go bug007 源码

go bug008 源码

go bug009 源码

go bug010 源码

  • 所属分类: 后端技术
  • 本文标签: golang
  • 版权声明: 本文链接 https://seaxiang.com/blog/e9caa15a982b477c88ad6240c18c6c16