From a246f61637b80e2f3426fae03ede072c8a28474e Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Tue, 8 Nov 2016 22:18:38 -0800 Subject: [PATCH] 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 --- src/cmd/compile/internal/gc/inl.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) }