| ! { dg-do compile } |
| ! |
| ! PR fortran/89492 - Endless compilation of an invalid TRANSFER after r269177 |
| ! Test error recovery for invalid uses of TRANSFER |
| ! Test proper simplification for MOLD with size 0 |
| ! |
| ! Derived from original testcase by Dominique d'Humieres |
| |
| program bug4a |
| implicit none |
| type bug4 |
| ! Intentionally left empty |
| end type bug4 |
| integer, parameter :: k = size(transfer('',[''])) ! k = 0 |
| integer, parameter :: i = len (transfer('',[''])) ! i = 0 |
| integer, parameter :: l = len (transfer('', '' )) ! l = 0 |
| integer, parameter :: m(k) = k |
| integer, parameter :: j(i) = i |
| integer, parameter :: n(l) = l |
| print *, k,i,l,m,j,n |
| print *, transfer(1,['']) ! { dg-error "shall not have storage size 0" } |
| print *, transfer(1, '' ) ! No error |
| print *, size(transfer(1,[''])) ! { dg-error "shall not have storage size 0" } |
| print *, len (transfer(1, '' )) ! No error |
| print *, size(transfer([1],[bug4()])) ! { dg-error "shall not have storage size 0" } |
| print *, transfer(transfer([1],[bug4()]),[1]) ! { dg-error "shall not have storage size 0" } |
| end program bug4a |