2016-04-10 15:32:26 -06:00
|
|
|
// Copyright 2012 The Go Authors. All rights reserved.
|
2012-08-29 09:42:05 -06:00
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package cgotest
|
|
|
|
|
|
|
|
/*
|
|
|
|
// Mac OS X's gcc will generate scattered relocation 2/1 for
|
|
|
|
// this function on Darwin/386, and 8l couldn't handle it.
|
|
|
|
// this example is in issue 1635
|
|
|
|
#include <stdio.h>
|
|
|
|
void scatter() {
|
|
|
|
void *p = scatter;
|
|
|
|
printf("scatter = %p\n", p);
|
|
|
|
}
|
|
|
|
|
2015-11-20 14:53:18 -07:00
|
|
|
// Adding this explicit extern declaration makes this a test for
|
|
|
|
// https://gcc.gnu.org/PR68072 aka https://golang.org/issue/13344 .
|
|
|
|
// It used to cause a cgo error when building with GCC 6.
|
|
|
|
extern int hola;
|
|
|
|
|
2012-08-29 09:42:05 -06:00
|
|
|
// this example is in issue 3253
|
|
|
|
int hola = 0;
|
|
|
|
int testHola() { return hola; }
|
|
|
|
*/
|
|
|
|
import "C"
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
func test1635(t *testing.T) {
|
|
|
|
C.scatter()
|
|
|
|
if v := C.hola; v != 0 {
|
|
|
|
t.Fatalf("C.hola is %d, should be 0", v)
|
|
|
|
}
|
|
|
|
if v := C.testHola(); v != 0 {
|
|
|
|
t.Fatalf("C.testHola() is %d, should be 0", v)
|
|
|
|
}
|
|
|
|
}
|