diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/c_assoc_2.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/c_assoc_2.f03 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/c_assoc_2.f03 b/gcc/testsuite/gfortran.dg/c_assoc_2.f03 new file mode 100644 index 000000000..4b3b7963a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/c_assoc_2.f03 @@ -0,0 +1,36 @@ +! { dg-do compile } +module c_assoc_2 + use, intrinsic :: iso_c_binding, only: c_ptr, c_associated + +contains + subroutine sub0(my_c_ptr) bind(c) + type(c_ptr), value :: my_c_ptr + type(c_ptr), pointer :: my_c_ptr_2 + integer :: my_integer + + if(.not. c_associated(my_c_ptr)) then + call abort() + end if + + if(.not. c_associated(my_c_ptr, my_c_ptr)) then + call abort() + end if + + if(.not. c_associated(my_c_ptr, my_c_ptr, my_c_ptr)) then ! { dg-error "More actual than formal arguments" } + call abort() + end if + + if(.not. c_associated()) then ! { dg-error "Missing argument" } + call abort() + end if ! { dg-error "Expecting END SUBROUTINE" } + + if(.not. c_associated(my_c_ptr_2)) then + call abort() + end if + + if(.not. c_associated(my_integer)) then ! { dg-error "Type mismatch" } + call abort() + end if + end subroutine sub0 + +end module c_assoc_2 |