diff options
Diffstat (limited to 'src/cmd/cgo/internal/testfortran/testdata')
3 files changed, 36 insertions, 0 deletions
diff --git a/src/cmd/cgo/internal/testfortran/testdata/helloworld/helloworld.f90 b/src/cmd/cgo/internal/testfortran/testdata/helloworld/helloworld.f90 new file mode 100644 index 0000000..cbc34c1 --- /dev/null +++ b/src/cmd/cgo/internal/testfortran/testdata/helloworld/helloworld.f90 @@ -0,0 +1,3 @@ + program HelloWorldF90 + write(*,*) "Hello World!" + end program HelloWorldF90 diff --git a/src/cmd/cgo/internal/testfortran/testdata/testprog/answer.f90 b/src/cmd/cgo/internal/testfortran/testdata/testprog/answer.f90 new file mode 100644 index 0000000..b3717ee --- /dev/null +++ b/src/cmd/cgo/internal/testfortran/testdata/testprog/answer.f90 @@ -0,0 +1,9 @@ +! 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. + +function the_answer() result(j) bind(C) + use iso_c_binding, only: c_int + integer(c_int) :: j ! output + j = 42 +end function the_answer diff --git a/src/cmd/cgo/internal/testfortran/testdata/testprog/fortran.go b/src/cmd/cgo/internal/testfortran/testdata/testprog/fortran.go new file mode 100644 index 0000000..e98d76c --- /dev/null +++ b/src/cmd/cgo/internal/testfortran/testdata/testprog/fortran.go @@ -0,0 +1,24 @@ +// 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 + +// int the_answer(); +import "C" +import ( + "fmt" + "os" +) + +func TheAnswer() int { + return int(C.the_answer()) +} + +func main() { + if a := TheAnswer(); a != 42 { + fmt.Fprintln(os.Stderr, "Unexpected result for The Answer. Got:", a, " Want: 42") + os.Exit(1) + } + fmt.Fprintln(os.Stdout, "ok") +} |