⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.91
Server IP:
217.21.90.168
Server:
Linux in-mum-web840.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
golang
/
1.17.2
/
test
/
fixedbugs
/
View File Name :
bug449.go
// runoutput // Copyright 2012 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. // Issue 3866 // runtime.equal failed to take padding between arguments and // return values into account, so in certain cases gc-generated // code will read a random bool from the stack as the result of // the comparison. // This program generates a lot of equality tests and hopes to // catch this. // NOTE: this program assumes comparing instance of T and T's // underlying []byte will make gc emit calls to runtime.equal, // and if gc optimizes this case, then the test will no longer // be correct (in the sense that it no longer tests runtime.equal). package main import ( "bytes" "fmt" "strconv" "strings" ) const ntest = 1024 func main() { var decls, calls bytes.Buffer for i := 1; i <= ntest; i++ { s := strconv.Itoa(i) decls.WriteString(strings.Replace(decl, "$", s, -1)) calls.WriteString(strings.Replace("call(test$)\n\t", "$", s, -1)) } program = strings.Replace(program, "$DECLS", decls.String(), 1) program = strings.Replace(program, "$CALLS", calls.String(), 1) fmt.Print(program) } var program = `package main var count int func call(f func() bool) { if f() { count++ } } $DECLS func main() { $CALLS if count != 0 { println("failed", count, "case(s)") } } ` const decl = ` type T$ [$]uint8 func test$() bool { v := T${1} return v == [$]uint8{2} || v != [$]uint8{1} }`