From f14a5347e69b4bb95e4f1d62d0967b14734193f3 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 23 Apr 2012 15:47:34 -0700 Subject: [PATCH] test: test handling of negative float constants This used to panic when compiled by gccgo. Updates #2876. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6100055 --- test/fixedbugs/bug434.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/fixedbugs/bug434.go diff --git a/test/fixedbugs/bug434.go b/test/fixedbugs/bug434.go new file mode 100644 index 0000000000..5abb567b43 --- /dev/null +++ b/test/fixedbugs/bug434.go @@ -0,0 +1,32 @@ +// 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) + } +}