Home | History | Annotate | Download | only in fixedbugs
      1 // run
      2 
      3 // Copyright 2013 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 func F(xi, yi interface{}) uint64 {
     10 	x, y := xi.(uint64), yi.(uint64)
     11 	return x &^ y
     12 }
     13 
     14 func G(xi, yi interface{}) uint64 {
     15 	return xi.(uint64) &^ yi.(uint64) // generates incorrect code
     16 }
     17 
     18 func main() {
     19 	var x, y uint64 = 0, 1 << 63
     20 	f := F(x, y)
     21 	g := G(x, y)
     22 	if f != 0 || g != 0 {
     23 		println("F", f, "G", g)
     24 		panic("bad")
     25 	}
     26 }
     27