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