mirror of
https://github.com/golang/go
synced 2024-11-14 15:10:54 -07:00
1e0819101b
Apply the fix in CL 44355 to MIPS. ARM64 has these rules but commented out for performance reason. Fix the commented rules, in case they are enabled in the future. Enhance the test so it triggers the failure on ARM and MIPS without the fix. Updates #20530. Change-Id: I82d77448e3939a545fe519d0a29a164f8fa5417c Reviewed-on: https://go-review.googlesource.com/44430 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
35 lines
614 B
Go
35 lines
614 B
Go
// run
|
|
|
|
// Copyright 2017 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 main
|
|
|
|
var a uint8
|
|
|
|
//go:noinline
|
|
func f() {
|
|
b := int8(func() int32 { return -1 }())
|
|
a = uint8(b)
|
|
if int32(a) != 255 {
|
|
// Failing case prints 'got 255 expected 255'
|
|
println("got", a, "expected 255")
|
|
}
|
|
}
|
|
|
|
//go:noinline
|
|
func g() {
|
|
b := int8(func() uint32 { return 0xffffffff }())
|
|
a = uint8(b)
|
|
if int32(a) != 255 {
|
|
// Failing case prints 'got 255 expected 255'
|
|
println("got", a, "expected 255")
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
f()
|
|
g()
|
|
}
|