mirror of
https://github.com/golang/go
synced 2024-09-06 00:19:45 +00:00
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:
parent
4e998d71c9
commit
c929ac5f7e
|
@ -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);
|
||||
|
||||
|
|
20
test/fixedbugs/issue6131.go
Normal file
20
test/fixedbugs/issue6131.go
Normal 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")
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue