cmd/internal/gc: convert Bval to bool

No functional changes. Passes toolstash -cmp.

Change-Id: I4fba0c248645c3910ee3f7fc99dacafb676c5dc2
Reviewed-on: https://go-review.googlesource.com/8911
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/cmd/7g/gsubr.go b/src/cmd/7g/gsubr.go
index 02554b0..d2e83ad 100644
--- a/src/cmd/7g/gsubr.go
+++ b/src/cmd/7g/gsubr.go
@@ -447,7 +447,7 @@
 	case gc.CTINT, gc.CTRUNE:
 		return gc.Mpgetfix(n.Val.U.Xval), true
 	case gc.CTBOOL:
-		return int64(n.Val.U.Bval), true
+		return int64(bool2int(n.Val.U.Bval)), true
 	}
 	return
 }
diff --git a/src/cmd/9g/gsubr.go b/src/cmd/9g/gsubr.go
index 86b6f86..5ad5281 100644
--- a/src/cmd/9g/gsubr.go
+++ b/src/cmd/9g/gsubr.go
@@ -526,7 +526,7 @@
 	case gc.CTINT, gc.CTRUNE:
 		return gc.Mpgetfix(n.Val.U.Xval), true
 	case gc.CTBOOL:
-		return int64(n.Val.U.Bval), true
+		return int64(bool2int(n.Val.U.Bval)), true
 	}
 	return
 }
diff --git a/src/cmd/internal/gc/cgen.go b/src/cmd/internal/gc/cgen.go
index 886a2d1..9c73300 100644
--- a/src/cmd/internal/gc/cgen.go
+++ b/src/cmd/internal/gc/cgen.go
@@ -1690,7 +1690,7 @@
 
 		// need to ask if it is bool?
 	case OLITERAL:
-		if !true_ == (n.Val.U.Bval == 0) {
+		if true_ == n.Val.U.Bval {
 			Patch(Gbranch(obj.AJMP, nil, likely), to)
 		}
 		return
diff --git a/src/cmd/internal/gc/const.go b/src/cmd/internal/gc/const.go
index e81db1d..5d44c55 100644
--- a/src/cmd/internal/gc/const.go
+++ b/src/cmd/internal/gc/const.go
@@ -650,7 +650,7 @@
 			mpnegflt(&v.U.Cval.Imag)
 
 		case ONOT<<16 | CTBOOL:
-			if v.U.Bval == 0 {
+			if !v.U.Bval {
 				goto settrue
 			}
 			goto setfalse
@@ -990,13 +990,13 @@
 		goto setfalse
 
 	case OOROR<<16 | CTBOOL:
-		if v.U.Bval != 0 || rv.U.Bval != 0 {
+		if v.U.Bval || rv.U.Bval {
 			goto settrue
 		}
 		goto setfalse
 
 	case OANDAND<<16 | CTBOOL:
-		if v.U.Bval != 0 && rv.U.Bval != 0 {
+		if v.U.Bval && rv.U.Bval {
 			goto settrue
 		}
 		goto setfalse
@@ -1418,7 +1418,7 @@
 			i = Mpgetfix(val.U.Xval)
 
 		case CTBOOL:
-			i = int64(val.U.Bval)
+			i = int64(bool2int(val.U.Bval))
 
 		case CTNIL:
 			i = 0
diff --git a/src/cmd/internal/gc/fmt.go b/src/cmd/internal/gc/fmt.go
index 589f20c..6720d5c 100644
--- a/src/cmd/internal/gc/fmt.go
+++ b/src/cmd/internal/gc/fmt.go
@@ -344,7 +344,7 @@
 		return strconv.Quote(v.U.Sval)
 
 	case CTBOOL:
-		if v.U.Bval != 0 {
+		if v.U.Bval {
 			return "true"
 		}
 		return "false"
diff --git a/src/cmd/internal/gc/go.go b/src/cmd/internal/gc/go.go
index 803703e..5803f39 100644
--- a/src/cmd/internal/gc/go.go
+++ b/src/cmd/internal/gc/go.go
@@ -85,7 +85,7 @@
 	Ctype int16
 	U     struct {
 		Reg  int16   // OREGISTER
-		Bval int16   // bool value CTBOOL
+		Bval bool    // bool value CTBOOL
 		Xval *Mpint  // int CTINT, rune CTRUNE
 		Fval *Mpflt  // float CTFLT
 		Cval *Mpcplx // float CTCPLX
diff --git a/src/cmd/internal/gc/gsubr.go b/src/cmd/internal/gc/gsubr.go
index 6ca8c75..36a4a95 100644
--- a/src/cmd/internal/gc/gsubr.go
+++ b/src/cmd/internal/gc/gsubr.go
@@ -417,7 +417,7 @@
 		case CTBOOL:
 			a.Sym = nil
 			a.Type = obj.TYPE_CONST
-			a.Offset = int64(n.Val.U.Bval)
+			a.Offset = int64(bool2int(n.Val.U.Bval))
 
 		case CTNIL:
 			a.Sym = nil
diff --git a/src/cmd/internal/gc/sinit.go b/src/cmd/internal/gc/sinit.go
index 96743b8..14aca86 100644
--- a/src/cmd/internal/gc/sinit.go
+++ b/src/cmd/internal/gc/sinit.go
@@ -1363,7 +1363,7 @@
 			return n.Val.U.Sval == ""
 
 		case CTBOOL:
-			return n.Val.U.Bval == 0
+			return !n.Val.U.Bval
 
 		case CTINT, CTRUNE:
 			return mpcmpfixc(n.Val.U.Xval, 0) == 0
diff --git a/src/cmd/internal/gc/subr.go b/src/cmd/internal/gc/subr.go
index 3b8ced9..c18f1e9 100644
--- a/src/cmd/internal/gc/subr.go
+++ b/src/cmd/internal/gc/subr.go
@@ -710,7 +710,7 @@
 func Nodbool(b bool) *Node {
 	c := Nodintconst(0)
 	c.Val.Ctype = CTBOOL
-	c.Val.U.Bval = int16(bool2int(b))
+	c.Val.U.Bval = b
 	c.Type = idealbool
 	return c
 }
diff --git a/src/cmd/internal/gc/swt.go b/src/cmd/internal/gc/swt.go
index 991f3ac..793a0d6 100644
--- a/src/cmd/internal/gc/swt.go
+++ b/src/cmd/internal/gc/swt.go
@@ -218,7 +218,7 @@
 	s.kind = switchKindExpr
 	if Isconst(sw.Ntest, CTBOOL) {
 		s.kind = switchKindTrue
-		if sw.Ntest.Val.U.Bval == 0 {
+		if !sw.Ntest.Val.U.Bval {
 			s.kind = switchKindFalse
 		}
 	}
diff --git a/src/cmd/internal/gc/typecheck.go b/src/cmd/internal/gc/typecheck.go
index 08262b1..5c31e3e 100644
--- a/src/cmd/internal/gc/typecheck.go
+++ b/src/cmd/internal/gc/typecheck.go
@@ -2826,12 +2826,12 @@
 			if Eqtype(a.Left.Type, n.Type) {
 				cmp.Right = a.Left
 				evconst(&cmp)
-				b = uint32(cmp.Val.U.Bval)
+				b = uint32(bool2int(cmp.Val.U.Bval))
 			}
 		} else if Eqtype(a.Type, n.Type) {
 			cmp.Right = a
 			evconst(&cmp)
-			b = uint32(cmp.Val.U.Bval)
+			b = uint32(bool2int(cmp.Val.U.Bval))
 		}
 
 		if b != 0 {