| ! { dg-do compile } |
| ! { dg-options "-fdec-static" } |
| ! |
| ! Check for conflicts between STATIC/AUTOMATIC and other attributes. |
| ! |
| |
| function s(a, b, x, y) result(z) |
| implicit none |
| integer, automatic, intent(IN) :: a ! { dg-error "DUMMY attribute conflicts" } |
| integer, static, intent(IN) :: b ! { dg-error "DUMMY attribute conflicts" } |
| integer, intent(OUT) :: x, y |
| automatic :: x ! { dg-error "DUMMY attribute conflicts" } |
| static :: y ! { dg-error "DUMMY attribute conflicts" } |
| |
| automatic ! { dg-error "Expected entity-list in AUTOMATIC statement" } |
| automatic :: ! { dg-error "Expected entity-list in AUTOMATIC statement" } |
| static ! { dg-error "Expected entity-list in STATIC statement" } |
| static :: ! { dg-error "Expected entity-list in STATIC statement" } |
| |
| integer, automatic :: auto1, auto2 |
| integer, static :: static1, static2 |
| integer :: auto3, static3 |
| automatic :: auto3 |
| static :: static3 |
| |
| common /c1/ auto1, auto2 ! { dg-error "COMMON attribute conflicts" } |
| common /c2/ static1, static2 ! { dg-error "COMMON attribute conflicts" } |
| common /c3/ auto3, static3 ! { dg-error "COMMON attribute conflicts" } |
| |
| integer, static :: z ! { dg-error "RESULT attribute conflicts" } |
| integer, automatic :: z ! { dg-error "RESULT attribute conflicts" } |
| static :: z ! { dg-error "RESULT attribute conflicts" } |
| automatic :: z ! { dg-error "RESULT attribute conflicts" } |
| |
| integer, static, automatic :: o ! { dg-error "AUTOMATIC attribute conflicts" } |
| |
| integer :: a, b, z ! fall-back decls so we don't get "no implicit type" |
| end |