src/cmd/compile/internal/gc: fix type assertion in overflow check
Fixes #11600.
Change-Id: I8871d4e525168fed35115855483a237bbd6e5445
Reviewed-on: https://go-review.googlesource.com/14596
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go
index de23190..a6428ac 100644
--- a/src/cmd/compile/internal/gc/const.go
+++ b/src/cmd/compile/internal/gc/const.go
@@ -434,19 +434,8 @@
return
}
- if !doesoverflow(v, t) {
- return
- }
-
- switch v.Ctype() {
- case CTINT, CTRUNE:
- Yyerror("constant %v overflows %v", v.U.(*Mpint), t)
-
- case CTFLT:
- Yyerror("constant %v overflows %v", Fconv(v.U.(*Mpflt), obj.FmtSharp), t)
-
- case CTCPLX:
- Yyerror("constant %v overflows %v", Fconv(v.U.(*Mpflt), obj.FmtSharp), t)
+ if doesoverflow(v, t) {
+ Yyerror("constant %s overflows %v", Vconv(v, 0), t)
}
}