| ! { dg-do compile } |
| ! { dg-additional-options "-Wdo-subscript" } |
| program main |
| real, dimension(3) :: a |
| a = 42. |
| do i=-1,3 ! { dg-warning "out of bounds \\(-1 < 1\\)" } |
| select case(i) |
| case(1:3) |
| a(i) = -234 ! { dg-warning "out of bounds \\(-1 < 1\\)" } |
| end select |
| end do |
| do i=1,4,2 |
| a(i) = a(i)*2 ! No warning - end value is 3 |
| end do |
| do i=1,4 ! { dg-warning "out of bounds \\(4 > 3\\)" } |
| if (i > 3) exit |
| a(i) = 33 ! { dg-warning "out of bounds \\(4 > 3\\)" } |
| end do |
| do i=0,3 ! { dg-warning "out of bounds \\(0 < 1\\)" } |
| if (i < 1) cycle |
| a(i) = -21. ! { dg-warning "out of bounds \\(0 < 1\\)" } |
| end do |
| end program main |