| C { dg-do run } |
| C Test the fix for PR35698, in which the negative size dimension would |
| C throw out the subsequent bounds. |
| C |
| C Contributed by Dick Hendrickson <dick.hendrickson@gmail.com> |
| C |
| program try_lf0030 |
| call LF0030(10) |
| end |
| |
| SUBROUTINE LF0030(nf10) |
| INTEGER ILA1(7) |
| INTEGER ILA2(7) |
| LOGICAL LLA(:,:,:,:,:,:,:) |
| INTEGER ICA(7) |
| ALLOCATABLE LLA |
| |
| |
| ALLOCATE (LLA(2:3, 4, 0:5, |
| $ NF10:1, -2:7, -3:8, |
| $ -4:9)) |
| |
| ILA1 = LBOUND(LLA) |
| ILA2 = UBOUND(LLA) |
| C CORRECT FOR THE ZERO DIMENSIONED TERM TO ALLOW AN EASIER VERIFY |
| ILA1(4) = ILA1(4) - 2 ! 1 - 2 = -1 |
| ILA2(4) = ILA2(4) + 6 ! 0 + 6 = 6 |
| |
| DO J1 = 1,7 |
| IVAL = 3-J1 |
| IF (ILA1(J1) .NE. IVAL) STOP 1 |
| 100 ENDDO |
| |
| DO J1 = 1,7 |
| IVAL = 2+J1 |
| IF (ILA2(J1) .NE. IVAL) STOP 2 |
| 101 ENDDO |
| |
| END SUBROUTINE |
| |