OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [array_constructor_11.f90] - Blame information for rev 827

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
! Like array_constructor_6.f90, but check iterators with non-default stride,
2
! including combinations which lead to zero-length vectors.
3
! { dg-do run }
4
program main
5
  implicit none
6
  call build (77)
7
contains
8
  subroutine build (order)
9
    integer :: order, i, j
10
 
11
    call test (1, 11, 3, (/ (i, i = 1, 11, 3) /))
12
    call test (3, 20, 2, (/ (i, i = 3, 20, 2) /))
13
    call test (4, 0, 11, (/ (i, i = 4, 0, 11) /))
14
 
15
    call test (110, 10, -3,  (/ (i, i = 110, 10, -3) /))
16
    call test (200, 20, -12, (/ (i, i = 200, 20, -12) /))
17
    call test (29, 30, -6,   (/ (i, i = 29, 30, -6) /))
18
 
19
    call test (1, order, 3,  (/ (i, i = 1, order, 3) /))
20
    call test (order, 1, -3, (/ (i, i = order, 1, -3) /))
21
 
22
    ! Triggers compile-time iterator calculations in trans-array.c
23
    call test (1, 1000, 2,   (/ (i, i = 1, 1000, 2),   (i, i = order, 0, 1) /))
24
    call test (1, 0, 3,      (/ (i, i = 1, 0, 3),      (i, i = order, 0, 1) /))
25
    call test (1, 2000, -5,  (/ (i, i = 1, 2000, -5),  (i, i = order, 0, 1) /))
26
    call test (3000, 99, 4,  (/ (i, i = 3000, 99, 4),  (i, i = order, 0, 1) /))
27
    call test (400, 77, -39, (/ (i, i = 400, 77, -39), (i, i = order, 0, 1) /))
28
 
29
    do j = -10, 10
30
      call test (order + j, order, 5,  (/ (i, i = order + j, order, 5) /))
31
      call test (order + j, order, -5, (/ (i, i = order + j, order, -5) /))
32
    end do
33
 
34
  end subroutine build
35
 
36
  subroutine test (from, to, step, values)
37
    integer, dimension (:) :: values
38
    integer :: from, to, step, last, i
39
 
40
    last = 0
41
    do i = from, to, step
42
      last = last + 1
43
      if (values (last) .ne. i) call abort
44
    end do
45
    if (size (values, dim = 1) .ne. last) call abort
46
  end subroutine test
47
end program main

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.