cmd/gc: add missing typecheck for walk-generated constants.

Fixes #6131.

R=golang-dev, daniel.morsing, rsc
CC=golang-dev
https://golang.org/cl/12800045
This commit is contained in:
Rémy Oudompheng 2013-09-06 16:55:30 -04:00 committed by Russ Cox
parent 4e998d71c9
commit c929ac5f7e
2 changed files with 22 additions and 0 deletions

View file

@ -1387,6 +1387,8 @@ ret:
// walk of y%1 may have replaced it by 0.
// Check whether n with its updated args is itself now a constant.
evconst(n);
if(n->op == OLITERAL)
typecheck(&n, Erv);
ullmancalc(n);

View file

@ -0,0 +1,20 @@
// compile
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 6131: missing typecheck after reducing
// n%1 == 0 to a constant value.
package main
func isGood(n int) bool {
return n%1 == 0
}
func main() {
if !isGood(256) {
panic("!isGood")
}
}