From: Josh Bleecher Snyder Date: Wed, 9 Nov 2016 06:18:38 +0000 (-0800) Subject: cmd/compile: report more non-inlineable functions X-Git-Tag: go1.9beta1~1822 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a246f61637b80e2f3426fae03ede072c8a28474e;p=gostls13.git cmd/compile: report more non-inlineable functions Many non-inlineable functions were not being reported in '-m -m' mode. Updates #17858. Change-Id: I7d96361b39dd317f5550e57334a8a6dd1a836598 Reviewed-on: https://go-review.googlesource.com/32971 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index 9912cf5aa0..7095782411 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -268,7 +268,12 @@ func ishairy(n *Node, budget *int32, reason *string) bool { *budget -= 2 } - return *budget < 0 || ishairy(n.Left, budget, reason) || ishairy(n.Right, budget, reason) || + if *budget < 0 { + *reason = "function too complex" + return true + } + + return ishairy(n.Left, budget, reason) || ishairy(n.Right, budget, reason) || ishairylist(n.List, budget, reason) || ishairylist(n.Rlist, budget, reason) || ishairylist(n.Ninit, budget, reason) || ishairylist(n.Nbody, budget, reason) }