examples/returns: demonstrate return types

This commit is contained in:
Michael McLoughlin
2018-12-27 21:38:17 -08:00
parent 51524702ba
commit 023324a4ec
7 changed files with 175 additions and 1 deletions

View File

@@ -73,10 +73,13 @@ func (s *Signature) init() {
// Result offsets.
vs = tuplevars(r)
resultsoffsets := Sizes.Offsetsof(vs)
var resultssize int64
if n := len(vs); n > 0 {
resultssize = resultsoffsets[n-1] + Sizes.Sizeof(vs[n-1].Type())
}
for i := range resultsoffsets {
resultsoffsets[i] += paramssize
}
resultssize := Sizes.Sizeof(types.NewStruct(vs, nil))
s.results = newTuple(r, resultsoffsets, resultssize, "ret")
}