mirror of
https://github.com/golang/go
synced 2024-09-05 16:04:50 +00:00
![Ilya Tocar](/assets/img/avatar_default.png)
We currently rewrite (TESTQ (MOVQconst [c] x)) into (TESTQconst [c] x) and (TESTQconst [-1] x) into (TESTQ x x) if x is a (MOVQconst [-1]) we will be stuck in the endless rewrite loop. Don't perform the rewrite in such cases. Fixes #25006 Change-Id: I77f561ba2605fc104f1e5d5c57f32e9d67a2c000 Reviewed-on: https://go-review.googlesource.com/108879 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
31 lines
400 B
Go
31 lines
400 B
Go
// compile
|
|
|
|
// Copyright 2018 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.
|
|
|
|
package p
|
|
|
|
func spin() {
|
|
var i int
|
|
var b bool
|
|
|
|
switch 1 {
|
|
case 0:
|
|
i = 1
|
|
}
|
|
switch 1 {
|
|
case i:
|
|
default:
|
|
i = 1
|
|
b = !b && (b && !b) && b
|
|
}
|
|
switch false {
|
|
case false:
|
|
i = 3 + -i
|
|
switch 0 {
|
|
case 1 - i:
|
|
}
|
|
}
|
|
}
|