| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /opt/golang/1.22.0/src/cmd/compile/internal/loopvar/testdata/inlines/ |
| Current File : //opt/golang/1.22.0/src/cmd/compile/internal/loopvar/testdata/inlines/main.go |
// Copyright 2023 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
import (
"cmd/compile/internal/loopvar/testdata/inlines/a"
"cmd/compile/internal/loopvar/testdata/inlines/b"
"cmd/compile/internal/loopvar/testdata/inlines/c"
"fmt"
"os"
)
func sum(s []*int) int {
sum := 0
for _, pi := range s {
sum += *pi
}
return sum
}
var t []*int
func F() []*int {
var s []*int
for i, j := 0, 0; j < 10; i, j = i+1, j+1 {
s = append(s, &i)
t = append(s, &j)
}
return s
}
func main() {
f := F()
af := a.F()
bf, _ := b.F()
abf := a.Fb()
cf := c.F()
sf, saf, sbf, sabf, scf := sum(f), sum(af), sum(bf), sum(abf), sum(cf)
fmt.Printf("f, af, bf, abf, cf sums = %d, %d, %d, %d, %d\n", sf, saf, sbf, sabf, scf)
// Special failure just for use with hash searching, to prove it fires exactly once.
// To test: `gossahash -e loopvarhash go run .` in this directory.
// This is designed to fail in two different ways, because gossahash searches randomly
// it will find both failures over time.
if os.Getenv("GOCOMPILEDEBUG") != "" && (sabf == 45 || sf == 45) {
os.Exit(11)
}
os.Exit(0)
}