| // run |
| |
| // Copyright 2012 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. |
| |
| // Test that typed and untyped negative zero floating point constants |
| // are treated as equivalent to zero constants. |
| |
| package main |
| |
| import "math" |
| |
| const zero = 0.0 |
| |
| func main() { |
| x := -zero |
| b := math.Float64bits(x) |
| if b != 0 { |
| panic(b) |
| } |
| x = -float64(zero) |
| b = math.Float64bits(x) |
| if b != 0 { |
| panic(b) |
| } |
| v := x |
| b = math.Float64bits(-v) |
| if b != 0x8000000000000000 { |
| panic(b) |
| } |
| } |