| ! { dg-do compile } |
| ! { dg-options "-fcoarray=lib" } |
| ! PR fortran/99351 - ICE in gfc_finish_var_decl, at fortran/trans-decl.c:695 |
| |
| module m |
| character(3), parameter :: c = 'abc' |
| integer, parameter :: s = 42 |
| integer, target :: i |
| character(:), allocatable :: a |
| target :: a |
| contains |
| subroutine s1 |
| allocate (character(42) :: a) |
| sync all (stat=i) |
| sync all (stat=f()) |
| sync all (errmsg=a) |
| sync all (errmsg=p()) |
| sync all (stat=a%len) ! { dg-error "variable definition context" } |
| sync all (stat=s) ! { dg-error "variable definition context" } |
| sync all (errmsg=c) ! { dg-error "variable definition context" } |
| end |
| subroutine s2 |
| sync images (*, stat=i) |
| sync images (*, errmsg=a) |
| sync images (*, stat=a%len) ! { dg-error "variable definition context" } |
| sync images (*, stat=s) ! { dg-error "variable definition context" } |
| sync images (*, errmsg=c) ! { dg-error "variable definition context" } |
| end |
| subroutine s3 |
| sync memory (stat=i,errmsg=p()) |
| sync memory (stat=f(),errmsg=a) |
| sync memory (stat=a%len) ! { dg-error "variable definition context" } |
| sync memory (stat=s) ! { dg-error "variable definition context" } |
| sync memory (errmsg=c) ! { dg-error "variable definition context" } |
| end |
| integer function f() |
| pointer :: f |
| f => i |
| end function f |
| function p() |
| character(:), pointer :: p |
| p => a |
| end function p |
| end |