Loops such as
func f(c chan int) int {
for x := range c {
return x
}
return 0
}
don't loop. Remove the assumption that they must.
Partly fixes the build.
Change-Id: I766cebeec8e36d14512bea26f54c06c8eaf95e23
Reviewed-on: https://go-review.googlesource.com/11876
Reviewed-by: Keith Randall <khr@golang.org>
s.stmt(n.Right)
}
b = s.endBlock()
- addEdge(b, bCond)
-
+ // If the body ends in a return statement,
+ // the condition check and loop are unreachable.
+ if b != nil {
+ addEdge(b, bCond)
+ }
s.startBlock(bEnd)
case OCALLFUNC: