pkginit

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2022 License: BSD-3-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InitNotStarted = iota
	InitDone
	InitPending
)

Static initialization phase. These values are stored in two bits in Node.flags.

Variables

View Source
var InstrumentGlobalsMap = make(map[string]ir.Node)

InstrumentGlobalsMap contains only package-local (and unlinknamed from somewhere else) globals. And the key is the object name. For example, in package p, a global foo would be in this map as "foo". Consider range over maps is nondeterministic, make a slice to hold all the values in the InstrumentGlobalsMap and iterate over the InstrumentGlobalsSlice.

View Source
var InstrumentGlobalsSlice = make([]ir.Node, 0, 0)

Functions

func GetRedzoneSizeForGlobal

func GetRedzoneSizeForGlobal(size int64) int64

Calculate redzone for globals.

func MakeInit

func MakeInit()

MakeInit creates a synthetic init function to handle any package-scope initialization statements.

TODO(mdempsky): Move into noder, so that the types2-based frontends can use Info.InitOrder instead.

func Task

func Task() *ir.Name

Task makes and returns an initialization record for the package. See runtime/proc.go:initTask for its layout. The 3 tasks for initialization are:

  1. Initialize all of the packages the current package depends on.
  2. Initialize all the variables that have initializers.
  3. Run any init functions.

Types

type InitOrder

type InitOrder struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL