| ! { dg-do compile } |
| ! { dg-options "-std=f2003" } |
| ! |
| ! PR fortran/48112 (module_m) |
| ! PR fortran/48279 (sidl_string_array, s_Hard) |
| ! |
| ! Contributed by mhp77@gmx.at (module_m) |
| ! and Adrian Prantl (sidl_string_array, s_Hard) |
| ! |
| |
| module module_m |
| interface test |
| function test1( ) result( test ) |
| integer :: test |
| end function test1 |
| end interface test |
| end module module_m |
| |
| ! ----- |
| |
| module sidl_string_array |
| type sidl_string_1d |
| end type sidl_string_1d |
| interface set |
| module procedure & |
| setg1_p |
| end interface |
| contains |
| subroutine setg1_p(array, index, val) |
| type(sidl_string_1d), intent(inout) :: array |
| end subroutine setg1_p |
| end module sidl_string_array |
| |
| module s_Hard |
| use sidl_string_array |
| type :: s_Hard_t |
| integer(8) :: dummy |
| end type s_Hard_t |
| interface set_d_interface |
| end interface |
| interface get_d_string |
| module procedure get_d_string_p |
| end interface |
| contains ! Derived type member access functions |
| type(sidl_string_1d) function get_d_string_p(s) |
| type(s_Hard_t), intent(in) :: s |
| end function get_d_string_p |
| subroutine set_d_objectArray_p(s, d_objectArray) |
| end subroutine set_d_objectArray_p |
| end module s_Hard |
| |
| subroutine initHard(h, ex) |
| use s_Hard |
| type(s_Hard_t), intent(inout) :: h |
| call set(get_d_string(h), 0, 'Three') ! { dg-error "There is no specific subroutine for the generic" } |
| end subroutine initHard |
| |
| ! ----- |
| |
| interface get |
| procedure get1 |
| end interface |
| |
| integer :: h |
| call set1 (get (h)) |
| |
| contains |
| |
| subroutine set1 (a) |
| integer, intent(in) :: a |
| end subroutine |
| |
| integer function get1 (s) ! { dg-error "Fortran 2008: Internal procedure .get1. in generic interface .get." } |
| integer :: s |
| end function |
| |
| end |