ssa: toLLVMFunc by NameValist

This commit is contained in:
visualfc
2024-11-25 13:28:18 +08:00
parent bab5c0589f
commit 4552691aed
3 changed files with 13 additions and 5 deletions

View File

@@ -34,6 +34,15 @@ func VArg() *types.Var {
return types.NewParam(0, nil, NameValist, types.NewSlice(tyAny))
}
func hasNameValist(sig *types.Signature) bool {
if sig.Variadic() {
if params := sig.Params(); params.At(params.Len()-1).Name() == NameValist {
return true
}
}
return false
}
// -----------------------------------------------------------------------------
type aNamedConst struct {
@@ -228,7 +237,7 @@ func newParams(fn Type, prog Program) (params []Type, hasVArg bool) {
sig := fn.raw.Type.(*types.Signature)
in := sig.Params()
if n := in.Len(); n > 0 {
if hasVArg = sig.Variadic(); hasVArg {
if hasVArg = hasNameValist(sig); hasVArg {
n--
}
params = make([]Type, n)