// 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) | |

} | |

} |