From 5380ffa47115629411c969b735171fffb9b2b62b Mon Sep 17 00:00:00 2001 From: Li Jie Date: Tue, 26 Nov 2024 21:07:37 +0800 Subject: [PATCH] cgo: ignore funcs won't be compiled --- cl/import.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cl/import.go b/cl/import.go index 8c1f7d3b..b6877fa5 100644 --- a/cl/import.go +++ b/cl/import.go @@ -366,6 +366,17 @@ func checkCgo(fnName string) bool { (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 ( ignoredFunc = iota 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) } else { fname := fn.Name() - if checkCgo(fname) { + if checkCgo(fname) && !cgoIgnored(fname) { return nil, fname, llgoInstr } if isCgoCfuncOrCmacro(fn) {