diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/interop_params.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/interop_params.f03 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/interop_params.f03 b/gcc/testsuite/gfortran.dg/interop_params.f03 new file mode 100644 index 000000000..ea3dadac0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/interop_params.f03 @@ -0,0 +1,24 @@ +! { dg-do compile } +module interop_params +use, intrinsic :: iso_c_binding + +type my_f90_type + integer :: i + real :: x +end type my_f90_type + +contains + subroutine test_0(my_f90_int) bind(c) ! { dg-warning "may not be C interoperable" } + use, intrinsic :: iso_c_binding + integer, value :: my_f90_int + end subroutine test_0 + + subroutine test_1(my_f90_real) bind(c) + real(c_int), value :: my_f90_real ! { dg-warning "is for type INTEGER" } + end subroutine test_1 + + subroutine test_2(my_type) bind(c) ! { dg-error "is not C interoperable" } + use, intrinsic :: iso_c_binding + type(my_f90_type) :: my_type + end subroutine test_2 +end module interop_params |