| ! { dg-do compile } |
| ! |
| ! This tests the fix for PR36361: If a function was declared in an INTERFACE |
| ! statement, no attributes may be declared outside of the INTERFACE body. |
| ! |
| ! Contributed by Janus Weil <janus@gcc.gnu.org> |
| |
| module m1 |
| interface |
| real function f1() |
| end function |
| end interface |
| dimension :: f1(4) ! { dg-error "outside its INTERFACE body" } |
| end module |
| |
| |
| module m2 |
| dimension :: f2(4) |
| interface |
| real function f2() ! { dg-error "outside its INTERFACE body" } |
| !end function |
| end interface |
| end module |
| |
| |
| ! valid |
| module m3 |
| interface |
| real function f3() |
| dimension :: f3(4) |
| end function |
| end interface |
| end module |
| |
| |
| module m4 |
| interface |
| function f4() ! { dg-error "cannot have a deferred shape" } |
| real :: f4(:) |
| end function |
| end interface |
| allocatable :: f4 ! { dg-error "outside of INTERFACE body" } |
| end module |
| |
| |
| module m5 |
| allocatable :: f5(:) |
| interface |
| function f5() ! { dg-error "outside its INTERFACE body" } |
| !real f5(:) |
| !end function |
| end interface |
| end module |
| |
| |
| !valid |
| module m6 |
| interface |
| function f6() |
| real f6(:) |
| allocatable :: f6 |
| end function |
| end interface |
| end module |