summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/do_check_5.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/do_check_5.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/do_check_5.f9034
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/do_check_5.f90 b/gcc/testsuite/gfortran.dg/do_check_5.f90
new file mode 100644
index 000000000..3df7b14f0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/do_check_5.f90
@@ -0,0 +1,34 @@
+! { dg-do compile }
+!
+! PR/fortran 38432
+! DO-loop compile-time checks
+!
+implicit none
+integer :: i
+real :: r
+do i = 1, 0 ! { dg-warning "executed zero times" }
+end do
+
+do i = 1, -1, 1 ! { dg-warning "executed zero times" }
+end do
+
+do i = 1, 2, -1 ! { dg-warning "executed zero times" }
+end do
+
+do i = 1, 2, 0 ! { dg-error "cannot be zero" }
+end do
+
+do r = 1, 0 ! { dg-warning "must be integer|executed zero times" }
+end do
+
+do r = 1, -1, 1 ! { dg-warning "must be integer|executed zero times" }
+end do
+
+do r = 1, 2, -1 ! { dg-warning "must be integer|executed zero times" }
+end do
+
+do r = 1, 2, 0
+end do
+! { dg-warning "must be integer" "loop var" { target *-*-* } 30 }
+! { dg-error "cannot be zero" "loop step" { target *-*-* } 30 }
+end