/
/
opt
/
golang
/
1.22.0
/
test
/
fixedbugs
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.211
PHP 8.3.16
Dir:
/opt/golang/1.22.0/test/fixedbugs
Edit:
/opt/golang/1.22.0/test/fixedbugs/issue33555.go
// run //go:build !nacl && !js && !wasip1 && !gccgo // Copyright 2019 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. // Test that the linker permits long call sequences. package main import ( "bytes" "fmt" "io/ioutil" "os" "os/exec" "path/filepath" "strconv" ) const start = ` package main func main() { println(f0() + 1) } ` const fn = ` //go:noinline func f%d() int { return f%d() + 1 }` const fnlast = ` //go:noinline func f%d() int { return 0 } ` const count = 400 func main() { if err := test(); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func test() error { var buf bytes.Buffer buf.WriteString(start) for i := 0; i < count; i++ { fmt.Fprintf(&buf, fn, i, i + 1) } fmt.Fprintf(&buf, fnlast, count) dir, err := ioutil.TempDir("", "issue33555") if err != nil { return err } defer os.RemoveAll(dir) fn := filepath.Join(dir, "x.go") if err := ioutil.WriteFile(fn, buf.Bytes(), 0644); err != nil { return err } out, err := exec.Command("go", "run", fn).CombinedOutput() if err != nil { return err } want := strconv.Itoa(count + 1) if got := string(bytes.TrimSpace(out)); got != want { return fmt.Errorf("got %q want %q", got, want) } return nil }
Ukuran: 1.3 KB