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