| ! { dg-do compile } |
| ! { dg-options "-std=gnu" } |
| ! PR fortran/34133 |
| ! |
| ! The compiler should accept internal procedures with BIND(c) attribute |
| ! for STD GNU / Fortran 2008. |
| ! |
| subroutine foo() bind(c) |
| contains |
| subroutine bar() bind (c) |
| end subroutine bar |
| end subroutine foo |
| |
| subroutine foo2() bind(c) |
| use iso_c_binding |
| contains |
| integer(c_int) function barbar() bind (c) |
| barbar = 1 |
| end function barbar |
| end subroutine foo2 |
| |
| function one() bind(c) |
| use iso_c_binding |
| integer(c_int) :: one |
| one = 1 |
| contains |
| integer(c_int) function two() bind (c) |
| two = 1 |
| end function two |
| end function one |
| |
| function one2() bind(c) |
| use iso_c_binding |
| integer(c_int) :: one2 |
| one2 = 1 |
| contains |
| subroutine three() bind (c) |
| end subroutine three |
| end function one2 |
| |
| program main |
| use iso_c_binding |
| implicit none |
| contains |
| subroutine test() bind(c) |
| end subroutine test |
| integer(c_int) function test2() bind (c) |
| test2 = 1 |
| end function test2 |
| end program main |