File: reshape_9.f90

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (31 lines) | stat: -rw-r--r-- 1,428 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
! { dg-do compile }
! PR fortran/103411 - ICE in gfc_conv_array_initializer
! Based on testcase by G. Steinmetz
! Test simplifications for checks of shape argument to reshape intrinsic

program p
  integer :: i
  integer, parameter :: a(2) = [2,2]
  integer, parameter :: u(5) = [1,2,2,42,2]
  integer, parameter :: v(1,3) = 2
  integer, parameter :: d(2,2) = reshape([1,2,3,4,5], a)
  integer, parameter :: c(2,2) = reshape([1,2,3,4], a)
  integer, parameter :: b(2,2) = &
           reshape([1,2,3], a) ! { dg-error "not enough elements" }
  print *, reshape([1,2,3], a) ! { dg-error "not enough elements" }
  print *, reshape([1,2,3,4], a)
  print *, reshape([1,2,3,4,5], a)
  print *, b, c, d
  print *, reshape([1,2,3], [(u(i),i=1,2)])
  print *, reshape([1,2,3], [(u(i),i=2,3)]) ! { dg-error "not enough elements" }
  print *, reshape([1,2,3],              &
                   [(u(i)*(-1)**i,i=2,3)]) ! { dg-error "has negative element" }
  print *, reshape([1,2,3,4], u(5:3:-2))
  print *, reshape([1,2,3],   u(5:3:-2))  ! { dg-error "not enough elements" }
  print *, reshape([1,2,3,4], u([5,3]))
  print *, reshape([1,2,3]  , u([5,3]))   ! { dg-error "not enough elements" }
  print *, reshape([1,2,3,4], v(1,2:))
  print *, reshape([1,2,3],   v(1,2:))    ! { dg-error "not enough elements" }
  print *, reshape([1,2,3,4], v(1,[2,1]))
  print *, reshape([1,2,3] ,  v(1,[2,1])) ! { dg-error "not enough elements" }
end