Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions c/setjmp/generated_native_darwin_arm64_llgo_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//go:build llgo && darwin && arm64 && !ios

package setjmp_test

import (
"github.com/goplus/lib/c"
"github.com/goplus/lib/c/setjmp"
"testing"
)

func TestGeneratedSetjmpWritesCallerBuffer(t *testing.T) {
var buffer [48]c.Int
if result := setjmp.NativeSetjmp(&buffer[0]); result != 0 {
t.Fatalf("initial setjmp = %d", result)
}
changed := false
for _, word := range buffer {
changed = changed || word != 0
}
if !changed {
t.Fatal("setjmp did not write the caller-owned buffer")
}
}
24 changes: 24 additions & 0 deletions c/setjmp/generated_native_linux_llgo_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//go:build llgo && linux && (amd64 || arm64) && !android

package setjmp_test

import (
"github.com/goplus/lib/c/setjmp"
"testing"
"unsafe"
)

func TestGeneratedSetjmpWritesCallerBuffer(t *testing.T) {
var buffer setjmp.X__JmpBufTag
if result := buffer.NativeSetjmp(); result != 0 {
t.Fatalf("initial setjmp = %d", result)
}
bytes := unsafe.Slice((*byte)(unsafe.Pointer(&buffer)), unsafe.Sizeof(buffer))
changed := false
for _, b := range bytes {
changed = changed || b != 0
}
if !changed {
t.Fatal("setjmp did not write the caller-owned buffer")
}
}
32 changes: 32 additions & 0 deletions c/setjmp/libc_darwin_arm64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 65 additions & 0 deletions c/setjmp/libc_linux_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

68 changes: 68 additions & 0 deletions c/setjmp/libc_linux_arm64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions c/setjmp/llcppg.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
T __jmp_buf X__JmpBuf
T __jmp_buf_tag X__JmpBufTag
T jmp_buf JmpBuf
T sigjmp_buf SigjmpBuf
Loading