cgo: ignore funcs won't be compiled
This commit is contained in:
13
cl/import.go
13
cl/import.go
@@ -366,6 +366,17 @@ func checkCgo(fnName string) bool {
|
|||||||
(fnName[4] == '_' || strings.HasPrefix(fnName[4:], "Check"))
|
(fnName[4] == '_' || strings.HasPrefix(fnName[4:], "Check"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var cgoIgnoredNames = map[string]none{
|
||||||
|
"_Cgo_ptr": {},
|
||||||
|
"_Cgo_use": {},
|
||||||
|
"_cgoCheckResult": {},
|
||||||
|
}
|
||||||
|
|
||||||
|
func cgoIgnored(fnName string) bool {
|
||||||
|
_, ok := cgoIgnoredNames[fnName]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ignoredFunc = iota
|
ignoredFunc = iota
|
||||||
goFunc = int(llssa.InGo)
|
goFunc = int(llssa.InGo)
|
||||||
@@ -434,7 +445,7 @@ func (p *context) funcName(fn *ssa.Function, ignore bool) (*types.Package, strin
|
|||||||
orgName = funcName(pkg, origin, true)
|
orgName = funcName(pkg, origin, true)
|
||||||
} else {
|
} else {
|
||||||
fname := fn.Name()
|
fname := fn.Name()
|
||||||
if checkCgo(fname) {
|
if checkCgo(fname) && !cgoIgnored(fname) {
|
||||||
return nil, fname, llgoInstr
|
return nil, fname, llgoInstr
|
||||||
}
|
}
|
||||||
if isCgoCfuncOrCmacro(fn) {
|
if isCgoCfuncOrCmacro(fn) {
|
||||||
|
|||||||
Reference in New Issue
Block a user