diff options
Diffstat (limited to 'test cases/fortran')
-rw-r--r-- | test cases/fortran/9 cpp/fortran.f | 5 | ||||
-rw-r--r-- | test cases/fortran/9 cpp/main.cpp | 8 | ||||
-rw-r--r-- | test cases/fortran/9 cpp/meson.build | 10 |
3 files changed, 23 insertions, 0 deletions
diff --git a/test cases/fortran/9 cpp/fortran.f b/test cases/fortran/9 cpp/fortran.f new file mode 100644 index 000000000..e69466932 --- /dev/null +++ b/test cases/fortran/9 cpp/fortran.f @@ -0,0 +1,5 @@ + function fortran() bind(C) + use, intrinsic :: iso_c_binding + real(kind=c_double) :: fortran + fortran = 2.0**rand(1) + end function fortran diff --git a/test cases/fortran/9 cpp/main.cpp b/test cases/fortran/9 cpp/main.cpp new file mode 100644 index 000000000..f5828f453 --- /dev/null +++ b/test cases/fortran/9 cpp/main.cpp @@ -0,0 +1,8 @@ +#include <iostream> + +extern "C" double fortran(); + +int main(int, char**) { + std::cout << "FORTRAN gave us this number: " << fortran() << '\n'; + return 0; +} diff --git a/test cases/fortran/9 cpp/meson.build b/test cases/fortran/9 cpp/meson.build new file mode 100644 index 000000000..49497c07d --- /dev/null +++ b/test cases/fortran/9 cpp/meson.build @@ -0,0 +1,10 @@ +project('C++ and FORTRAN', 'cpp', 'fortran') + +cpp = meson.get_compiler('cpp') + +if cpp.get_id() == 'clang' + error('MESON_SKIP_TEST Clang C++ does not find -lgfortran for some reason.') +endif + +e = executable('cppfort', 'main.cpp', 'fortran.f') +test('C++ FORTRAN', e) |