modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/bug434.go (about) 1 // run 2 3 // Copyright 2012 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Test that typed and untyped negative zero floating point constants 8 // are treated as equivalent to zero constants. 9 10 package main 11 12 import "math" 13 14 const zero = 0.0 15 16 func main() { 17 x := -zero 18 b := math.Float64bits(x) 19 if b != 0 { 20 panic(b) 21 } 22 x = -float64(zero) 23 b = math.Float64bits(x) 24 if b != 0 { 25 panic(b) 26 } 27 v := x 28 b = math.Float64bits(-v) 29 if b != 0x8000000000000000 { 30 panic(b) 31 } 32 }