diff options
Diffstat (limited to 'misc/cgo/fortran/testdata')
-rw-r--r-- | misc/cgo/fortran/testdata/testprog/answer.f90 | 9 | ||||
-rw-r--r-- | misc/cgo/fortran/testdata/testprog/fortran.go | 21 |
2 files changed, 30 insertions, 0 deletions
diff --git a/misc/cgo/fortran/testdata/testprog/answer.f90 b/misc/cgo/fortran/testdata/testprog/answer.f90 new file mode 100644 index 0000000..b3717ee --- /dev/null +++ b/misc/cgo/fortran/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/misc/cgo/fortran/testdata/testprog/fortran.go b/misc/cgo/fortran/testdata/testprog/fortran.go new file mode 100644 index 0000000..d8004ce --- /dev/null +++ b/misc/cgo/fortran/testdata/testprog/fortran.go @@ -0,0 +1,21 @@ +// 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 "os" + +func TheAnswer() int { + return int(C.the_answer()) +} + +func main() { + if a := TheAnswer(); a != 42 { + println("Unexpected result for The Answer. Got:", a, " Want: 42") + os.Exit(1) + } + println("ok") +} |