Home | History | Annotate | Download | only in fixedbugs
      1 // run
      2 
      3 // Copyright 2009 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 package main
      8 
      9 import "fmt"
     10 
     11 func f0() string {
     12 	const f = 3.141592;
     13 	return fmt.Sprintf("%v", float64(f));
     14 }
     15 
     16 
     17 func f1() string {
     18 	const f = 3.141592;
     19 	x := float64(float32(f));  // appears to change the precision of f
     20 	_ = x;
     21 	return fmt.Sprintf("%v", float64(f));
     22 }
     23 
     24 
     25 func main() {
     26 	r0 := f0();
     27 	r1 := f1();
     28 	if r0 != r1 {
     29 		println("r0 =", r0);
     30 		println("r1 =", r1);
     31 		panic("r0 and r1 should be the same");
     32 	}
     33 }
     34