23 lines
880 B
Go
23 lines
880 B
Go
|
|
// Copyright 2025 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.
|
||
|
|
|
||
|
|
// Package ssainternal exposes setters for internals of go/ssa.
|
||
|
|
// It cannot actually depend on symbols from go/ssa.
|
||
|
|
package ssainternal
|
||
|
|
|
||
|
|
import "go/types"
|
||
|
|
|
||
|
|
// SetNoReturn sets the predicate used when building the ssa.Program
|
||
|
|
// prog that reports whether a given function cannot return.
|
||
|
|
// This may be used to prune spurious control flow edges
|
||
|
|
// after (e.g.) log.Fatal, improving the precision of analyses.
|
||
|
|
//
|
||
|
|
// You must link [golang.org/x/tools/go/ssa] into your application for
|
||
|
|
// this function to be non-nil.
|
||
|
|
//
|
||
|
|
// TODO(adonovan): add (*ssa.Program).SetNoReturn to the public API.
|
||
|
|
var SetNoReturn = func(prog any, noreturn func(*types.Func) bool) {
|
||
|
|
panic("golang.org/x/tools/go/ssa not linked into application")
|
||
|
|
}
|