155714SkrisC { dg-do run }
255714SkrisC Test the fix for PR35698, in which the negative size dimension would
355714SkrisC throw out the subsequent bounds.
455714SkrisC
555714SkrisC Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
655714SkrisC
755714Skris      program try_lf0030
8296465Sdelphij      call LF0030(10)
955714Skris      end
1055714Skris
1155714Skris      SUBROUTINE LF0030(nf10)
1255714Skris      INTEGER ILA1(7)
1355714Skris      INTEGER ILA2(7)
1455714Skris      LOGICAL LLA(:,:,:,:,:,:,:)
15296465Sdelphij      INTEGER ICA(7)
1655714Skris      ALLOCATABLE LLA
1755714Skris
1855714Skris
1955714Skris      ALLOCATE (LLA(2:3, 4, 0:5,
2055714Skris     $          NF10:1, -2:7, -3:8,
2155714Skris     $          -4:9))
22296465Sdelphij
2355714Skris      ILA1 = LBOUND(LLA)
2455714Skris      ILA2 = UBOUND(LLA)
2555714SkrisC     CORRECT FOR THE ZERO DIMENSIONED TERM TO ALLOW AN EASIER VERIFY
2655714Skris      ILA1(4) = ILA1(4) - 2    !   1 - 2 = -1
2755714Skris      ILA2(4) = ILA2(4) + 6    !   0 + 6 = 6
2855714Skris
2955714Skris      DO J1 = 1,7
3055714Skris      IVAL = 3-J1
3155714Skris      IF (ILA1(J1) .NE. IVAL) call abort ()
3255714Skris  100 ENDDO
3355714Skris
3455714Skris      DO J1 = 1,7
3555714Skris      IVAL = 2+J1
3655714Skris      IF (ILA2(J1) .NE. IVAL) call abort ()
37296465Sdelphij  101 ENDDO
3855714Skris
3955714Skris      END SUBROUTINE
40296465Sdelphij