The code would violate the contract of cmp64.
Fixes #5002.
R=rsc, golang-dev
CC=golang-dev
https://golang.org/cl/
7593043
}
if(is64(nr->type)) {
- if(!nl->addable) {
+ if(!nl->addable || isconst(nl, CTINT)) {
tempname(&n1, nl->type);
cgen(nl, &n1);
nl = &n1;
--- /dev/null
+// build
+
+// 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 5002: 8g produces invalid CMPL $0, $0.
+// Used to fail at link time.
+
+package main
+
+func main() {
+ var y int64
+ if y%1 == 0 {
+ }
+}