...
Run Format

Source file test/fixedbugs/issue13171.go

Documentation: test/fixedbugs

  // run
  
  // Copyright 2015 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.
  
  package main
  
  // Make sure the compiler knows that DUFFCOPY clobbers X0
  
  import "fmt"
  
  //go:noinline
  func f(x float64) float64 {
  	// y is allocated to X0
  	y := x + 5
  	// marshals z before y.  Marshaling z
  	// calls DUFFCOPY.
  	return g(z, y)
  }
  
  //go:noinline
  func g(b [64]byte, y float64) float64 {
  	return y
  }
  
  var z [64]byte
  
  func main() {
  	got := f(5)
  	if got != 10 {
  		panic(fmt.Sprintf("want 10, got %f", got))
  	}
  }
  

View as plain text