/
/
opt
/
golang
/
1.22.0
/
src
/
cmd
/
cgo
/
internal
/
testplugin
/
testdata
/
issue53989
/
p
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.137
PHP 8.3.16
Dir:
/opt/golang/1.22.0/src/cmd/cgo/internal/testplugin/testdata/issue53989/p
Edit:
/opt/golang/1.22.0/src/cmd/cgo/internal/testplugin/testdata/issue53989/p/p.go
// Copyright 2022 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 p import ( "fmt" "runtime" ) var y int //go:noinline func Square(x int) { var pc0, pc1 [1]uintptr runtime.Callers(1, pc0[:]) // get PC at entry // a switch using jump table switch x { case 1: y = 1 case 2: y = 4 case 3: y = 9 case 4: y = 16 case 5: y = 25 case 6: y = 36 case 7: y = 49 case 8: y = 64 default: panic("too large") } // check PC is in the same function runtime.Callers(1, pc1[:]) if pc1[0] < pc0[0] || pc1[0] > pc0[0]+1000000 { fmt.Printf("jump across DSO boundary. pc0=%x, pc1=%x\n", pc0[0], pc1[0]) panic("FAIL") } if y != x*x { fmt.Printf("x=%d y=%d!=%d\n", x, y, x*x) panic("FAIL") } }
Ukuran: 826 B