I really thought we had these figured out...

$ cat shift-variations.f90
program main
  integer(kind=1) :: d1
  integer(kind=2) :: d2
  integer(kind=4) :: d4
  integer(kind=8) :: d8
  integer(kind=1), dimension(2) :: s1
  integer(kind=2), dimension(2) :: s2
  integer(kind=4), dimension(2) :: s4
  integer(kind=8), dimension(2) :: s8
  real, dimension(2,2) :: r
  data r /1.0, 2.0, 3.0, 4.0/
  s1 = (/1, 1/)
  s2 = (/1, 1/)
  s4 = (/1, 1/)
  s8 = (/1, 1/)
  d1 = 1
  d2 = 1
  d4 = 1
  d8 = 1
  print *,eoshift(r,shift=s1,dim=d1)
  print *,eoshift(r,shift=s2,dim=d2)
  print *,eoshift(r,shift=s4,dim=d4)
  print *,eoshift(r,shift=s8,dim=d8)
  print *,cshift(r,shift=s1,dim=d1)
  print *,cshift(r,shift=s2,dim=d2)
  print *,cshift(r,shift=s4,dim=d4)
  print *,cshift(r,shift=s8,dim=d8)
end program main
$ gfortran shift-variations.f90
$ ./a.out
   0.0000000      3.98764005E-34  1.26116862E-44   0.0000000    
 -2.73992191E-05 -2.85282731E-05   0.0000000      4.08616923E-38
   2.0000000       0.0000000       4.0000000       0.0000000    
   2.0000000       0.0000000       4.0000000       0.0000000    
Fortran runtime error: Argument 'DIM' is out of range in call to 'CSHIFT'
$ gfortran -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../../gcc/trunk/configure --prefix=/home/ig25
--enable-languages=c,fortran
Thread model: posix
gcc version 4.3.0 20071216 (experimental) (GCC)


-- 
           Summary: cshift, eoshift, kind=1 and kind=2 arguments...
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tkoenig at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34540

Reply via email to