Make shift argument to eoshift0 and eoshift2 be of type index_type
commita97ae55991e4849f162a61bbf980009d549107e7
authorJanne Blomqvist <jb@gcc.gnu.org>
Wed, 22 Nov 2017 20:42:39 +0000 (22 22:42 +0200)
committerJanne Blomqvist <jb@gcc.gnu.org>
Wed, 22 Nov 2017 20:42:39 +0000 (22 22:42 +0200)
tree63c0592974232e6ab2c30f747bf0f95b29215ae2
parentce95abc41e998c8d1e1b2112a634d5a6cdd9ede0
Make shift argument to eoshift0 and eoshift2 be of type index_type

Test case that requires 4 GB RAM that exercises eoshift0:

program main
  implicit none
  integer(1) :: line(2_8**31+10)
  line = 42
  line = eoshift(line, 2_8**31+7)
  print *, line(1:4)
  print *, line((ubound(line, 1, kind=8)-4):ubound(line, 1, kind=8))
end program main

Before patch:
❯ ./a.out
    0    0    0    0
    42   42   42   42   42

With patch:
❯ ./a.out
   42   42   42    0
   0    0    0    0    0

Regtested on x86_64-pc-linux-gnu.

libgfortran/ChangeLog:

2017-11-22  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsics/eoshift0.c (eoshift0): Make shift an index_type.
        * intrinsics/eoshift2.c (eoshift2): Make shift an index_type.

From-SVN: r255077
libgfortran/ChangeLog
libgfortran/intrinsics/eoshift0.c
libgfortran/intrinsics/eoshift2.c