summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/do_corner_warn.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/do_corner_warn.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/do_corner_warn.f9022
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/do_corner_warn.f90 b/gcc/testsuite/gfortran.dg/do_corner_warn.f90
new file mode 100644
index 00000000000..07484d3ca7b
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/do_corner_warn.f90
@@ -0,0 +1,22 @@
+! { dg-options "-Wundefined-do-loop" }
+! Program to check corner cases for DO statements.
+
+program do_1
+ implicit none
+ integer i, j
+
+ ! limit=HUGE(i), step 1
+ j = 0
+ do i = HUGE(i) - 10, HUGE(i), 1 ! { dg-warning "is undefined as it overflows" }
+ j = j + 1
+ end do
+ if (j .ne. 11) call abort
+
+ ! limit=-HUGE(i)-1, step -1
+ j = 0
+ do i = -HUGE(i) + 10 - 1, -HUGE(i) - 1, -1 ! { dg-warning "is undefined as it underflows" }
+ j = j + 1
+ end do
+ if (j .ne. 11) call abort
+
+end program