Change-Id: I0f016fa000f949d27847d645b4cdebe68a8abf20
Reviewed-on: https://go-review.googlesource.com/22474
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
if f := p.funcList[i]; f != nil {
// function not yet imported - read body and set it
funchdr(f)
- f.Func.Inl.Set(p.stmtList())
+ body := p.stmtList()
+ if body == nil {
+ // Make sure empty body is not interpreted as
+ // no inlineable body (see also parser.fnbody)
+ // (not doing so can cause significant performance
+ // degradation due to unnecessary calls to empty
+ // functions).
+ body = []*Node{Nod(OEMPTY, nil, nil)}
+ }
+ f.Func.Inl.Set(body)
funcbody(f)
} else {
// function already imported - read body but discard declarations