2017-02-20 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / testsuite / gfortran.dg / bound_simplification_4.f90
blobfc399251159f6b3e3bad6a85b4d2c55cde0e94b3
1 ! { dg-do run }
2 ! { dg-additional-options "-fcoarray=single -fdump-tree-original" }
4 ! Check that {L,U}{,CO}BOUND intrinsics are properly simplified.
6 type :: t
7 integer :: c
8 end type t
10 type(t) :: d(3:8) = t(7)
11 type(t) :: e[5:9,-1:*]
13 if (lbound(d, 1) /= 3) call abort
14 if (lbound(d(3:5), 1) /= 1) call abort
15 if (lbound(d%c, 1) /= 1) call abort
16 if (ubound(d, 1) /= 8) call abort
17 if (ubound(d(3:5), 1) /= 3) call abort
18 if (ubound(d%c, 1) /= 6) call abort
20 if (lcobound(e, 1) /= 5) call abort
21 if (lcobound(e%c, 1) /= 5) call abort
22 if (lcobound(e, 2) /= -1) call abort
23 if (lcobound(e%c, 2) /= -1) call abort
24 if (ucobound(e, 1) /= 9) call abort
25 if (ucobound(e%c, 1) /= 9) call abort
26 ! no simplification for ucobound(e{,%c}, dim=2)
27 end
28 ! { dg-final { scan-tree-dump-not "bound" "original" } }
29 ! { dg-final { scan-tree-dump-not "abort" "original" } }