aboutsummaryrefslogtreecommitdiff
path: root/libgo/misc/cgo/test
diff options
context:
space:
mode:
authorGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-22 17:43:43 -0300
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-22 17:43:43 -0300
commita926878ddbd5a98b272c22171ce58663fc04c3e0 (patch)
tree86af256e5d9a9c06263c00adc90e5fe348008c43 /libgo/misc/cgo/test
parent542730f087133690b47e036dfd43eb0db8a650ce (diff)
parent07cbaed8ba7d1b6e4ab3a9f44175502a4e1ecdb1 (diff)
downloadgcc-devel/autopar_devel.zip
gcc-devel/autopar_devel.tar.gz
gcc-devel/autopar_devel.tar.bz2
Merge branch 'autopar_rebase2' into autopar_develdevel/autopar_devel
Quickly commit changes in the rebase branch.
Diffstat (limited to 'libgo/misc/cgo/test')
-rw-r--r--libgo/misc/cgo/test/pkg_test.go2
-rw-r--r--libgo/misc/cgo/test/sigaltstack.go15
-rw-r--r--libgo/misc/cgo/test/test.go25
-rw-r--r--libgo/misc/cgo/test/testdata/issue27054/egl.h1
-rw-r--r--libgo/misc/cgo/test/testdata/issue27054/test27054.go6
-rw-r--r--libgo/misc/cgo/test/testx.go12
6 files changed, 53 insertions, 8 deletions
diff --git a/libgo/misc/cgo/test/pkg_test.go b/libgo/misc/cgo/test/pkg_test.go
index 08e075c..26c50ad 100644
--- a/libgo/misc/cgo/test/pkg_test.go
+++ b/libgo/misc/cgo/test/pkg_test.go
@@ -32,7 +32,7 @@ func TestCrossPackageTests(t *testing.T) {
t.Skip("Can't exec cmd/go subprocess on Android.")
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
t.Skip("Can't exec cmd/go subprocess on iOS.")
}
}
diff --git a/libgo/misc/cgo/test/sigaltstack.go b/libgo/misc/cgo/test/sigaltstack.go
index 2c9b81c..8dfa1cb 100644
--- a/libgo/misc/cgo/test/sigaltstack.go
+++ b/libgo/misc/cgo/test/sigaltstack.go
@@ -14,15 +14,22 @@ package cgotest
#include <stdlib.h>
#include <string.h>
+#ifdef _AIX
+// On AIX, SIGSTKSZ is too small to handle Go sighandler.
+#define CSIGSTKSZ 0x4000
+#else
+#define CSIGSTKSZ SIGSTKSZ
+#endif
+
static stack_t oss;
-static char signalStack[SIGSTKSZ];
+static char signalStack[CSIGSTKSZ];
static void changeSignalStack(void) {
stack_t ss;
memset(&ss, 0, sizeof ss);
ss.ss_sp = signalStack;
ss.ss_flags = 0;
- ss.ss_size = SIGSTKSZ;
+ ss.ss_size = CSIGSTKSZ;
if (sigaltstack(&ss, &oss) < 0) {
perror("sigaltstack");
abort();
@@ -55,10 +62,8 @@ import (
func testSigaltstack(t *testing.T) {
switch {
- case runtime.GOOS == "solaris", runtime.GOOS == "illumos", runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64"):
+ case runtime.GOOS == "solaris", runtime.GOOS == "illumos", runtime.GOOS == "darwin" && runtime.GOARCH == "arm64":
t.Skipf("switching signal stack not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
- case runtime.GOOS == "darwin" && runtime.GOARCH == "386":
- t.Skipf("sigaltstack fails on darwin/386")
}
C.changeSignalStack()
diff --git a/libgo/misc/cgo/test/test.go b/libgo/misc/cgo/test/test.go
index b014899..35bc3a1 100644
--- a/libgo/misc/cgo/test/test.go
+++ b/libgo/misc/cgo/test/test.go
@@ -897,6 +897,16 @@ static uint16_t issue31093F(uint16_t v) { return v; }
// issue 32579
typedef struct S32579 { unsigned char data[1]; } S32579;
+
+// issue 38649
+// Test that #define'd type aliases work.
+#define netbsd_gid unsigned int
+
+// issue 40494
+// Inconsistent handling of tagged enum and union types.
+enum Enum40494 { X_40494 };
+union Union40494 { int x; };
+void issue40494(enum Enum40494 e, union Union40494* up) {}
*/
import "C"
@@ -2192,3 +2202,18 @@ func test32579(t *testing.T) {
t.Errorf("&s[0].data[0] failed: got %d, want %d", s[0].data[0], 1)
}
}
+
+// issue 38649
+
+var issue38649 C.netbsd_gid = 42
+
+// issue 39877
+
+var issue39877 *C.void = nil
+
+// issue 40494
+// No runtime test; just make sure it compiles.
+
+func Issue40494() {
+ C.issue40494(C.enum_Enum40494(C.X_40494), (*C.union_Union40494)(nil))
+}
diff --git a/libgo/misc/cgo/test/testdata/issue27054/egl.h b/libgo/misc/cgo/test/testdata/issue27054/egl.h
index 33a759e..3079627 100644
--- a/libgo/misc/cgo/test/testdata/issue27054/egl.h
+++ b/libgo/misc/cgo/test/testdata/issue27054/egl.h
@@ -5,3 +5,4 @@
// This is the relevant part of EGL/egl.h.
typedef void *EGLDisplay;
+typedef void *EGLConfig;
diff --git a/libgo/misc/cgo/test/testdata/issue27054/test27054.go b/libgo/misc/cgo/test/testdata/issue27054/test27054.go
index 186f5bd..01bf43a 100644
--- a/libgo/misc/cgo/test/testdata/issue27054/test27054.go
+++ b/libgo/misc/cgo/test/testdata/issue27054/test27054.go
@@ -13,5 +13,9 @@ import (
)
func Test27054(t *testing.T) {
- var _ C.EGLDisplay = 0 // Note: 0, not nil. That makes sure we use uintptr for this type.
+ var (
+ // Note: 0, not nil. That makes sure we use uintptr for these types.
+ _ C.EGLDisplay = 0
+ _ C.EGLConfig = 0
+ )
}
diff --git a/libgo/misc/cgo/test/testx.go b/libgo/misc/cgo/test/testx.go
index 42979b5..7fbc5c6 100644
--- a/libgo/misc/cgo/test/testx.go
+++ b/libgo/misc/cgo/test/testx.go
@@ -124,6 +124,11 @@ typedef struct {
} Issue31891B;
void callIssue31891(void);
+
+typedef struct {
+ int i;
+} Issue38408, *PIssue38408;
+
*/
import "C"
@@ -159,7 +164,7 @@ func Add(x int) {
}
func testCthread(t *testing.T) {
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
t.Skip("the iOS exec wrapper is unable to properly handle the panic from Add")
}
sum.i = 0
@@ -552,3 +557,8 @@ func useIssue31891B(c *C.Issue31891B) {}
func test31891(t *testing.T) {
C.callIssue31891()
}
+
+// issue 38408
+// A typedef pointer can be used as the element type.
+// No runtime test; just make sure it compiles.
+var _ C.PIssue38408 = &C.Issue38408{i: 1}