1! { dg-do compile } 2! { dg-options "-Wall" } 3! PR/fortran 38432 4! DO-loop compile-time checks 5! 6implicit none 7integer :: i 8real :: r 9do i = 1, 0 ! { dg-warning "executed zero times" } 10end do 11 12do i = 1, -1, 1 ! { dg-warning "executed zero times" } 13end do 14 15do i = 1, 2, -1 ! { dg-warning "executed zero times" } 16end do 17 18do i = 1, 2, 0 ! { dg-error "cannot be zero" } 19end do 20 21do r = 1, 0 ! { dg-warning "must be integer|executed zero times" } 22end do 23 24do r = 1, -1, 1 ! { dg-warning "must be integer|executed zero times" } 25end do 26 27do r = 1, 2, -1 ! { dg-warning "must be integer|executed zero times" } 28end do 29 30do r = 1, 2, 0 31end do 32! { dg-warning "must be integer" "loop var" { target *-*-* } 30 } 33! { dg-error "cannot be zero" "loop step" { target *-*-* } 30 } 34end 35