| ! { dg-do compile } |
| ! PR fortran/32936 |
| ! |
| ! |
| function all_res() |
| implicit none |
| real, pointer :: gain |
| integer :: all_res |
| allocate (gain,STAT=all_res) |
| deallocate(gain) |
| call bar() |
| contains |
| subroutine bar() |
| real, pointer :: gain2 |
| allocate (gain2,STAT=all_res) |
| deallocate(gain2) |
| end subroutine bar |
| end function all_res |
| |
| function func() |
| implicit none |
| real, pointer :: gain |
| integer :: all_res2, func |
| func = 0 |
| entry all_res2 |
| allocate (gain,STAT=all_res2) |
| deallocate(gain) |
| contains |
| subroutine test |
| implicit none |
| real, pointer :: gain2 |
| allocate (gain2,STAT=all_res2) |
| deallocate(gain2) |
| end subroutine test |
| end function func |
| |
| function func2() result(res) |
| implicit none |
| real, pointer :: gain |
| integer :: res |
| allocate (gain,STAT=func2) ! { dg-error "requires an argument list" } |
| deallocate(gain) |
| res = 0 |
| end function func2 |
| |
| subroutine sub() |
| implicit none |
| interface |
| integer function func2() |
| end function |
| end interface |
| real, pointer :: gain |
| integer, parameter :: res = 2 |
| allocate (gain,STAT=func2) ! { dg-error "requires an argument list" } |
| deallocate(gain) |
| end subroutine sub |
| |
| module test |
| contains |
| function one() |
| integer :: one, two |
| integer, pointer :: ptr |
| allocate(ptr, stat=one) |
| if(one == 0) deallocate(ptr) |
| entry two |
| allocate(ptr, stat=two) |
| if(associated(ptr)) deallocate(ptr) |
| end function one |
| subroutine sub() |
| integer, pointer :: p |
| allocate(p, stat=one) ! { dg-error "requires an argument list" } |
| if(associated(p)) deallocate(p) |
| allocate(p, stat=two) ! { dg-error "requires an argument list" } |
| if(associated(p)) deallocate(p) |
| end subroutine sub |
| end module test |