]> Cypherpunks.ru repositories - gostls13.git/blob - test/fixedbugs/issue13171.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / fixedbugs / issue13171.go
1 // run
2
3 // Copyright 2015 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 // Make sure the compiler knows that DUFFCOPY clobbers X0
10
11 import "fmt"
12
13 //go:noinline
14 func f(x float64) float64 {
15         // y is allocated to X0
16         y := x + 5
17         // marshals z before y.  Marshaling z
18         // calls DUFFCOPY.
19         return g(z, y)
20 }
21
22 //go:noinline
23 func g(b [64]byte, y float64) float64 {
24         return y
25 }
26
27 var z [64]byte
28
29 func main() {
30         got := f(5)
31         if got != 10 {
32                 panic(fmt.Sprintf("want 10, got %f", got))
33         }
34 }