diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 b/gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 new file mode 100644 index 000000000..d559e9112 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 @@ -0,0 +1,20 @@ +! { dg-do run } +! { dg-require-effective-target fortran_large_int } +! Take the pack intrinsic through its paces, with all types that are +! normally accessible. +program main + implicit none + integer,parameter :: k = selected_int_kind (range (0_8) + 1) + integer :: i + integer(kind=k), dimension(3,3) :: ik + integer(kind=k), dimension(9) :: vik + integer(kind=k), dimension(9) :: rik + + vik = (/(i+10,i=1,9)/) + ik = reshape((/1_k, -1_k, 2_k, -2_k, 3_k, -3_k, 4_k, -4_k, 5_k/), shape(ik)) + rik = pack(ik,ik>0,vik) + if (any(rik /= (/1_k, 2_k, 3_k, 4_k, 5_k, 16_k, 17_k, 18_k, 19_k/))) & + & call abort + + +end program main |