cmd/compile: allow inlining of functions with switch statements
Allow inlining of functions with switch statements as long as they don't
contain a break or type switch.
Fixes #13071
Change-Id: I057be351ea4584def1a744ee87eafa5df47a7f6d
Reviewed-on: https://go-review.googlesource.com/20824
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go
index 1bd08e8..72ed6ab 100644
--- a/src/cmd/compile/internal/gc/fmt.go
+++ b/src/cmd/compile/internal/gc/fmt.go
@@ -888,7 +888,7 @@
f += fmt.Sprintf(" %v;", n.Ninit.First())
}
if n.Left != nil {
- f += Nconv(n.Left, 0)
+ f += fmt.Sprintf(" %s ", Nconv(n.Left, 0))
}
f += fmt.Sprintf(" { %v }", n.List)
diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go
index 77e4589..890eead 100644
--- a/src/cmd/compile/internal/gc/inl.go
+++ b/src/cmd/compile/internal/gc/inl.go
@@ -214,10 +214,11 @@
ORANGE,
OFOR,
OSELECT,
- OSWITCH,
+ OTYPESW,
OPROC,
ODEFER,
ODCLTYPE, // can't print yet
+ OBREAK,
ORETJMP:
return true
}