ssa: toLLVMFunc by NameValist
This commit is contained in:
11
ssa/decl.go
11
ssa/decl.go
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user