Versions in this module Expand all Collapse all v1 v1.0.0 Sep 22, 2022 Changes in this version + var ChAliasingInfo = &channelAliasingInfo + var ChannelNames = make(map[token.Pos]string) + func Andersen(prog *ssa.Program, mains []*ssa.Package, include IncludeType) *pointer.Result + func CollectNames(pkgs []*packages.Package) + func GetPtsToSets(prog *ssa.Program, mains []*ssa.Package) *pointer.Result + func TotalAndersen(prog *ssa.Program, mains []*ssa.Package) *pointer.Result + func Transform(c *astutil.Cursor) bool + func UnrollLoops(pkgs []*packages.Package) []*packages.Package + type Access interface + func SplitLabel(label *pointer.Label) (ssa.Value, []Access) + type ArrayAccess struct + type ChanNameCollector struct + func (v *ChanNameCollector) Visit(n ast.Node) ast.Visitor + type ChannelOp struct + Buffer ssa.Value + Close []ssa.Instruction + Make ssa.Instruction + Receive []ssa.Instruction + Send []ssa.Instruction + func (op *ChannelOp) BufferLabel() string + func (op *ChannelOp) String() (opStr string) + type CtrLocPriorities struct + BlockPriorities map[*ssa.Function][]int + FunPriorities map[*ssa.Function]int + func GetCtrLocPriorities(allFuns map[*ssa.Function]struct{}, scc graph.SCCDecomposition[*ssa.Function]) CtrLocPriorities + type FieldAccess struct + Field string + type GoCollection interface + FunHasCycle func(*ssa.Function) bool + FunToGoro func(*ssa.Function) *Goro + HasCycle func(*Goro) bool + type GoCycles map[*Goro][]*Goro + func (goro GoCycles) HasCycle(g *Goro) bool + func (goros GoCycles) FunHasCycle(f *ssa.Function) bool + func (goros GoCycles) FunToGoro(f *ssa.Function) *Goro + type GoTopology []*Goro + func CollectGoros(result *pointer.Result) (goros GoTopology) + func (goros GoTopology) Cycles() GoCycles + func (goros GoTopology) FunHasCycle(f *ssa.Function) bool + func (goros GoTopology) FunToGoro(f *ssa.Function) *Goro + func (goros GoTopology) HasCycle(g *Goro) bool + func (goros GoTopology) LogCycles() + type Goro struct + ChannelOperations map[ssa.Value]*ChannelOp + CrossPackageCalls []*Goro + Entry *ssa.Function + SpawnedGoroutines []*Goro + func (g *Goro) ProcessFunction(fun *ssa.Function, results map[ssa.Value]pointer.Pointer) + func (g *Goro) String() (goroStr string) + type IncludeType struct + All bool + Chan bool + Function bool + Interface bool + Map bool + Pointer bool + Slice bool + type TargetType int + func (t TargetType) String() string + type WrittenFields struct + func ComputeWrittenFields(pt *pointer.Result, callDAG graph.SCCDecomposition[*ssa.Function]) WrittenFields + func (w WrittenFields) FieldInfo(typ *T.Struct, funs map[*ssa.Function]struct{}) (isWritten func(fieldIndex int) bool) + func (w WrittenFields) IsFieldWrittenFromFunction(fun *ssa.Function, typ *T.Struct, fieldIndex int) bool + func (w WrittenFields) MapCombinedInfo(funs map[*ssa.Function]struct{}) (isUpdated func(v ssa.Value) bool) + func (w WrittenFields) PointerCombinedInfo(funs map[*ssa.Function]struct{}) (isUpdated func(v ssa.Value) bool) + func (w WrittenFields) SliceCombinedInfo(funs map[*ssa.Function]struct{}) (isUpdated func(v ssa.Value) bool) + func (w WrittenFields) String() string