Commit b234fdb5 authored by Ian Lance Taylor's avatar Ian Lance Taylor

misc/cgo/test: tweak to pass with GCC 10

The test for issue 8945 was marked to only run on gccgo, but there was
no reason for that. It broke for gccgo using GCC 10, because GCC 10
defaults to -fno-common. Make the test run on gc, and split it into
test.go and testx.go to make it work with GCC 10.

The test for issue 9026 used two identical structs which GCC 10 turns
into the same type. The point of the test is not that the structs are
identical, but that they are handled in a particular order. So make
them different.

Updates #8945
Updates #9026

Change-Id: I000fb02f88f346cfbbe5dbefedd944a2c64e8d8e
Reviewed-on: https://go-review.googlesource.com/c/go/+/211217
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarThan McIntosh <thanm@google.com>
parent 21713f41
// Copyright 2014 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.
// +build gccgo
package cgotest
//typedef void (*PFunc)();
//PFunc success_cb;
import "C"
//export Test
func Test() {
_ = C.success_cb
}
...@@ -562,6 +562,11 @@ void issue8811Execute() { ...@@ -562,6 +562,11 @@ void issue8811Execute() {
issue8811Init(); issue8811Init();
} }
// issue 8945
typedef void (*PFunc8945)();
PFunc8945 func8945;
// issue 9557 // issue 9557
struct issue9557_t { struct issue9557_t {
......
...@@ -4,9 +4,9 @@ package issue9026 ...@@ -4,9 +4,9 @@ package issue9026
// per-package counter used to create fresh identifiers. // per-package counter used to create fresh identifiers.
/* /*
typedef struct {} git_merge_file_input; typedef struct { int i; } git_merge_file_input;
typedef struct {} git_merge_file_options; typedef struct { int j; } git_merge_file_options;
void git_merge_file( void git_merge_file(
git_merge_file_input *in, git_merge_file_input *in,
......
...@@ -102,6 +102,11 @@ static void issue7978c(uint32_t *sync) { ...@@ -102,6 +102,11 @@ static void issue7978c(uint32_t *sync) {
// #include'd twice. No runtime test; just make sure it compiles. // #include'd twice. No runtime test; just make sure it compiles.
#include "issue8331.h" #include "issue8331.h"
// issue 8945
typedef void (*PFunc8945)();
extern PFunc8945 func8945; // definition is in test.go
// issue 20910 // issue 20910
void callMulti(void); void callMulti(void);
...@@ -514,6 +519,13 @@ func test7978(t *testing.T) { ...@@ -514,6 +519,13 @@ func test7978(t *testing.T) {
var issue8331Var C.issue8331 var issue8331Var C.issue8331
// issue 8945
//export Test8945
func Test8945() {
_ = C.func8945
}
// issue 20910 // issue 20910
//export multi //export multi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment