]> Cypherpunks.ru repositories - gostls13.git/blobdiff - misc/cgo/testsanitizers/testdata/tsan8.go
misc/cgo: move easy tests to cmd/cgo/internal
[gostls13.git] / misc / cgo / testsanitizers / testdata / tsan8.go
diff --git a/misc/cgo/testsanitizers/testdata/tsan8.go b/misc/cgo/testsanitizers/testdata/tsan8.go
deleted file mode 100644 (file)
index 88d82a6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2016 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
-
-// This program failed when run under the C/C++ ThreadSanitizer.  The TSAN
-// sigaction function interceptor returned SIG_DFL instead of the Go runtime's
-// handler in registerSegvForwarder.
-
-/*
-#cgo CFLAGS: -fsanitize=thread
-#cgo LDFLAGS: -fsanitize=thread
-
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-struct sigaction prev_sa;
-
-void forwardSignal(int signo, siginfo_t *info, void *context) {
-       // One of sa_sigaction and/or sa_handler
-       if ((prev_sa.sa_flags&SA_SIGINFO) != 0) {
-               prev_sa.sa_sigaction(signo, info, context);
-               return;
-       }
-       if (prev_sa.sa_handler != SIG_IGN && prev_sa.sa_handler != SIG_DFL) {
-               prev_sa.sa_handler(signo);
-               return;
-       }
-
-       fprintf(stderr, "No Go handler to forward to!\n");
-       abort();
-}
-
-void registerSegvFowarder() {
-       struct sigaction sa;
-       memset(&sa, 0, sizeof(sa));
-       sigemptyset(&sa.sa_mask);
-       sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-       sa.sa_sigaction = forwardSignal;
-
-       if (sigaction(SIGSEGV, &sa, &prev_sa) != 0) {
-               perror("failed to register SEGV forwarder");
-               exit(EXIT_FAILURE);
-       }
-}
-*/
-import "C"
-
-func main() {
-       C.registerSegvFowarder()
-
-       defer func() {
-               recover()
-       }()
-       var nilp *int
-       *nilp = 42
-}