[dev.cc] cmd/internal/obj, cmd/internal/gc, new6g: reconvert
Reconvert using rsc.io/c2go rev 27b3f59.
Changes to converter:
- fatal does not return, so no fallthrough after fatal in switch
- many more function results and variables identified as bool
- simplification of negated boolean expressions
Change-Id: I3bc67da5e46cb7ee613e230cf7e9533036cc870b
Reviewed-on: https://go-review.googlesource.com/5171
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/internal/gc/popt.go b/src/cmd/internal/gc/popt.go
index 6d69120..8a3601b 100644
--- a/src/cmd/internal/gc/popt.go
+++ b/src/cmd/internal/gc/popt.go
@@ -179,7 +179,7 @@
var noreturn_symlist [10]*Sym
-func Noreturn(p *obj.Prog) int {
+func Noreturn(p *obj.Prog) bool {
var s *Sym
var i int
@@ -195,18 +195,18 @@
}
if p.To.Node == nil {
- return 0
+ return false
}
s = ((p.To.Node).(*Node)).Sym
if s == nil {
- return 0
+ return false
}
for i = 0; noreturn_symlist[i] != nil; i++ {
if s == noreturn_symlist[i] {
- return 1
+ return true
}
}
- return 0
+ return false
}
// JMP chasing and removal.
@@ -325,7 +325,7 @@
// pass 4: elide JMP to next instruction.
// only safe if there are no jumps to JMPs anymore.
- if !(jmploop != 0) {
+ if jmploop == 0 {
last = nil
for p = firstp; p != nil; p = p.Link {
if p.As == obj.AJMP && p.To.Type == obj.TYPE_BRANCH && p.To.U.Branch == p.Link {
@@ -434,7 +434,7 @@
for f = start; f != nil; f = f.Link {
p = f.Prog
Thearch.Proginfo(&info, p)
- if !(info.Flags&Break != 0) {
+ if info.Flags&Break == 0 {
f1 = f.Link
f.S1 = f1
f1.P1 = f
@@ -492,11 +492,11 @@
r.Rpo = 1
r1 = r.S1
- if r1 != nil && !(r1.Rpo != 0) {
+ if r1 != nil && r1.Rpo == 0 {
n = postorder(r1, rpo2r, n)
}
r1 = r.S2
- if r1 != nil && !(r1.Rpo != 0) {
+ if r1 != nil && r1.Rpo == 0 {
n = postorder(r1, rpo2r, n)
}
rpo2r[n] = r
@@ -529,26 +529,26 @@
return rpo1
}
-func doms(idom []int32, r int32, s int32) int {
+func doms(idom []int32, r int32, s int32) bool {
for s > r {
s = idom[s]
}
- return bool2int(s == r)
+ return s == r
}
-func loophead(idom []int32, r *Flow) int {
+func loophead(idom []int32, r *Flow) bool {
var src int32
src = r.Rpo
- if r.P1 != nil && doms(idom, src, r.P1.Rpo) != 0 {
- return 1
+ if r.P1 != nil && doms(idom, src, r.P1.Rpo) {
+ return true
}
for r = r.P2; r != nil; r = r.P2link {
- if doms(idom, src, r.Rpo) != 0 {
- return 1
+ if doms(idom, src, r.Rpo) {
+ return true
}
}
- return 0
+ return false
}
func loopmark(rpo2r **Flow, head int32, r *Flow) {
@@ -620,7 +620,7 @@
for i = 0; i < nr; i++ {
r1 = rpo2r[i]
r1.Loop++
- if r1.P2 != nil && loophead(idom, r1) != 0 {
+ if r1.P2 != nil && loophead(idom, r1) {
loopmark(&rpo2r[0], i, r1)
}
}
@@ -718,8 +718,8 @@
}
// Is n available for merging?
-func canmerge(n *Node) int {
- return bool2int(n.Class == PAUTO && strings.HasPrefix(n.Sym.Name, "autotmp"))
+func canmerge(n *Node) bool {
+ return n.Class == PAUTO && strings.HasPrefix(n.Sym.Name, "autotmp")
}
func mergetemp(firstp *obj.Prog) {
@@ -757,7 +757,7 @@
// Build list of all mergeable variables.
nvar = 0
for l = Curfn.Dcl; l != nil; l = l.Next {
- if canmerge(l.N) != 0 {
+ if canmerge(l.N) {
nvar++
}
}
@@ -766,7 +766,7 @@
nvar = 0
for l = Curfn.Dcl; l != nil; l = l.Next {
n = l.N
- if canmerge(n) != 0 {
+ if canmerge(n) {
v = &var_[nvar]
nvar++
n.Opt = v
@@ -826,9 +826,9 @@
if f != nil && f.Data.(*Flow) == nil {
p = f.Prog
Thearch.Proginfo(&info, p)
- if p.To.Node == v.node && (info.Flags&RightWrite != 0) && !(info.Flags&RightRead != 0) {
+ if p.To.Node == v.node && (info.Flags&RightWrite != 0) && info.Flags&RightRead == 0 {
p.As = obj.ANOP
- p.To = obj.Zprog.To
+ p.To = obj.Addr{}
v.removed = 1
if debugmerge > 0 && Debug['v'] != 0 {
fmt.Printf("drop write-only %v\n", Sconv(v.node.Sym, 0))
@@ -851,7 +851,7 @@
const (
SizeAny = SizeB | SizeW | SizeL | SizeQ | SizeF | SizeD
)
- if p.From.Node == v.node && p1.To.Node == v.node && (info.Flags&Move != 0) && !((info.Flags|info1.Flags)&(LeftAddr|RightAddr) != 0) && info.Flags&SizeAny == info1.Flags&SizeAny {
+ if p.From.Node == v.node && p1.To.Node == v.node && (info.Flags&Move != 0) && (info.Flags|info1.Flags)&(LeftAddr|RightAddr) == 0 && info.Flags&SizeAny == info1.Flags&SizeAny {
p1.From = p.From
Thearch.Excise(f)
v.removed = 1
@@ -1010,7 +1010,7 @@
// Delete merged nodes from declaration list.
for lp = &Curfn.Dcl; ; {
l = *lp
- if !(l != nil) {
+ if l == nil {
break
}
@@ -1126,11 +1126,11 @@
nkill = 0
for f = g.Start; f != nil; f = f.Link {
p = f.Prog
- if p.As != obj.ACHECKNIL || !(Thearch.Regtyp(&p.From) != 0) {
+ if p.As != obj.ACHECKNIL || !Thearch.Regtyp(&p.From) {
continue
}
ncheck++
- if Thearch.Stackaddr(&p.From) != 0 {
+ if Thearch.Stackaddr(&p.From) {
if Debug_checknil != 0 && p.Lineno > 1 {
Warnl(int(p.Lineno), "removed nil check of SP address")
}
@@ -1177,13 +1177,13 @@
for f = fcheck; f != nil; f = Uniqp(f) {
p = f.Prog
Thearch.Proginfo(&info, p)
- if (info.Flags&RightWrite != 0) && Thearch.Sameaddr(&p.To, &fcheck.Prog.From) != 0 {
+ if (info.Flags&RightWrite != 0) && Thearch.Sameaddr(&p.To, &fcheck.Prog.From) {
// Found initialization of value we're checking for nil.
// without first finding the check, so this one is unchecked.
return
}
- if f != fcheck && p.As == obj.ACHECKNIL && Thearch.Sameaddr(&p.From, &fcheck.Prog.From) != 0 {
+ if f != fcheck && p.As == obj.ACHECKNIL && Thearch.Sameaddr(&p.From, &fcheck.Prog.From) {
fcheck.Data = &killed
return
}
@@ -1249,12 +1249,12 @@
p = f.Prog
Thearch.Proginfo(&info, p)
- if (info.Flags&LeftRead != 0) && Thearch.Smallindir(&p.From, &fcheck.Prog.From) != 0 {
+ if (info.Flags&LeftRead != 0) && Thearch.Smallindir(&p.From, &fcheck.Prog.From) {
fcheck.Data = &killed
return
}
- if (info.Flags&(RightRead|RightWrite) != 0) && Thearch.Smallindir(&p.To, &fcheck.Prog.From) != 0 {
+ if (info.Flags&(RightRead|RightWrite) != 0) && Thearch.Smallindir(&p.To, &fcheck.Prog.From) {
fcheck.Data = &killed
return
}
@@ -1265,12 +1265,12 @@
}
// Stop if value is lost.
- if (info.Flags&RightWrite != 0) && Thearch.Sameaddr(&p.To, &fcheck.Prog.From) != 0 {
+ if (info.Flags&RightWrite != 0) && Thearch.Sameaddr(&p.To, &fcheck.Prog.From) {
return
}
// Stop if memory write.
- if (info.Flags&RightWrite != 0) && !(Thearch.Regtyp(&p.To) != 0) {
+ if (info.Flags&RightWrite != 0) && !Thearch.Regtyp(&p.To) {
return
}