Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/array_section_1.f90 @ 128:fe568345ddd5
fix CbC-example
author | mir3636 |
---|---|
date | Wed, 11 Apr 2018 19:32:28 +0900 |
parents | 04ced10e8804 |
children | 84e7813d76e9 |
line wrap: on
line source
! { dg-do run } ! { dg-options "-fbounds-check" } ! Tests the fix for PR30003, in which the 'end' of an array section ! would not be evaluated at all if it was on the lhs of an assignment ! or would be evaluated many times if bound checking were on. ! ! Contributed by Erik Edelmann <eedelmann@gcc.gnu.org> ! implicit none integer :: a(5), b(3), cnt b = [ 1, 2, 3 ] ! Check the lhs references cnt = 0 a(bar(1):3) = b if (cnt /= 1) call abort () cnt = 0 a(1:bar(3)) = b if (cnt /= 1) call abort () cnt = 0 a(1:3:bar(1)) = b if (cnt /= 1) call abort () ! Check the rhs references cnt = 0 a(1:3) = b(bar(1):3) if (cnt /= 1) call abort () cnt = 0 a(1:3) = b(1:bar(3)) if (cnt /= 1) call abort () cnt = 0 a(1:3) = b(1:3:bar(1)) if (cnt /= 1) call abort () contains integer function bar(n) integer, intent(in) :: n cnt = cnt + 1 bar = n end function bar end