From: Josh Bleecher Snyder Date: Wed, 25 May 2016 21:08:13 +0000 (-0700) Subject: cmd/compile: fix printing of OCASE nodes X-Git-Tag: go1.8beta1~1708 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4739dcf7fbe5f5bbe885c4349d36c3e23658c0c6;p=gostls13.git cmd/compile: fix printing of OCASE nodes Switch lowering splits each case expression out into its own OCASE node. Change-Id: Ifcb72b99975ed36da8540f6e43343e9aa2058572 Reviewed-on: https://go-review.googlesource.com/26769 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- diff --git a/src/cmd/compile/internal/gc/fmt.go b/src/cmd/compile/internal/gc/fmt.go index 9cf0fbd413..cbc4c93a13 100644 --- a/src/cmd/compile/internal/gc/fmt.go +++ b/src/cmd/compile/internal/gc/fmt.go @@ -886,13 +886,20 @@ func stmtfmt(n *Node) string { f += fmt.Sprintf(" { %v }", n.List) - case OCASE, OXCASE: + case OXCASE: if n.List.Len() != 0 { f += fmt.Sprintf("case %v: %v", hconv(n.List, FmtComma), n.Nbody) } else { f += fmt.Sprintf("default: %v", n.Nbody) } + case OCASE: + if n.Left != nil { + f += fmt.Sprintf("case %v: %v", n.Left, n.Nbody) + } else { + f += fmt.Sprintf("default: %v", n.Nbody) + } + case OBREAK, OCONTINUE, OGOTO, diff --git a/src/cmd/compile/internal/gc/syntax.go b/src/cmd/compile/internal/gc/syntax.go index b02c70eb94..3608d17c34 100644 --- a/src/cmd/compile/internal/gc/syntax.go +++ b/src/cmd/compile/internal/gc/syntax.go @@ -425,7 +425,7 @@ const ( // statements OBLOCK // { List } (block of code) OBREAK // break - OCASE // case List: Nbody (select case after processing; List==nil means default) + OCASE // case Left: Nbody (select case after processing; Left==nil means default) OXCASE // case List: Nbody (select case before processing; List==nil means default) OCONTINUE // continue ODEFER // defer Left (Left must be call)