aboutsummaryrefslogtreecommitdiffstats
path: root/prog/clone.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-05-05 10:25:45 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-05-05 10:25:45 +0200
commitafe402d20af0d54d4e0baeb9e70e668e2a26f188 (patch)
tree58f79c51ee9c8a48939059a23c47d68751d55701 /prog/clone.go
parent9dfb5efa91fc0f051a1ddc88ace2867bb6b32275 (diff)
prog: make c.Ret optional
No reason to allocate return value if there is no return type. c.Ret == nil is the reasonable indication that this is a "void" call.
Diffstat (limited to 'prog/clone.go')
-rw-r--r--prog/clone.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/prog/clone.go b/prog/clone.go
index 51d801e28..3b6ba0fbc 100644
--- a/prog/clone.go
+++ b/prog/clone.go
@@ -12,7 +12,9 @@ func (p *Prog) Clone() *Prog {
for ci, c := range p.Calls {
c1 := new(Call)
c1.Meta = c.Meta
- c1.Ret = clone(c.Ret, newargs).(*ResultArg)
+ if c.Ret != nil {
+ c1.Ret = clone(c.Ret, newargs).(*ResultArg)
+ }
c1.Args = make([]Arg, len(c.Args))
for ai, arg := range c.Args {
c1.Args[ai] = clone(arg, newargs)