| ! { dg-do compile } |
| ! PR fortran/103411 - ICE in gfc_conv_array_initializer |
| ! Based on testcase by G. Steinmetz |
| ! Test simplifications for checks of shape argument to reshape intrinsic |
| |
| program p |
| integer :: i |
| integer, parameter :: a(2) = [2,2] |
| integer, parameter :: u(5) = [1,2,2,42,2] |
| integer, parameter :: v(1,3) = 2 |
| integer, parameter :: d(2,2) = reshape([1,2,3,4,5], a) |
| integer, parameter :: c(2,2) = reshape([1,2,3,4], a) |
| integer, parameter :: b(2,2) = & |
| reshape([1,2,3], a) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3], a) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3,4], a) |
| print *, reshape([1,2,3,4,5], a) |
| print *, b, c, d |
| print *, reshape([1,2,3], [(u(i),i=1,2)]) |
| print *, reshape([1,2,3], [(u(i),i=2,3)]) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3], & |
| [(u(i)*(-1)**i,i=2,3)]) ! { dg-error "has negative element" } |
| print *, reshape([1,2,3,4], u(5:3:-2)) |
| print *, reshape([1,2,3], u(5:3:-2)) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3,4], u([5,3])) |
| print *, reshape([1,2,3] , u([5,3])) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3,4], v(1,2:)) |
| print *, reshape([1,2,3], v(1,2:)) ! { dg-error "not enough elements" } |
| print *, reshape([1,2,3,4], v(1,[2,1])) |
| print *, reshape([1,2,3] , v(1,[2,1])) ! { dg-error "not enough elements" } |
| end |