diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr47757-1.f90 | 40 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr47757-2.f90 | 16 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr47757-3.f90 | 12 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 7 | ||||
-rw-r--r-- | libgfortran/gfortran.map | 33 |
6 files changed, 113 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 619292cef04..a25d4964aef 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2011-02-16 Jakub Jelinek <jakub@redhat.com> + PR libfortran/47757 + * gfortran.dg/pr47757-1.f90: New test. + * gfortran.dg/pr47757-2.f90: New test. + * gfortran.dg/pr47757-3.f90: New test. + PR c++/47704 * g++.dg/cpp0x/enum8.C: New test. diff --git a/gcc/testsuite/gfortran.dg/pr47757-1.f90 b/gcc/testsuite/gfortran.dg/pr47757-1.f90 new file mode 100644 index 00000000000..1c40f987400 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr47757-1.f90 @@ -0,0 +1,40 @@ +! PR libfortran/47757 +! { dg-do run } + + integer(1) :: a1(2,2) + integer(2) :: a2(2,2) + integer(4) :: a4(2,2) + integer(8) :: a8(2,2) + logical :: mask(2,2) + logical :: mask2 + a1 = 0 + a2 = 0 + a3 = 0 + a4 = 0 + mask2 = .true. + mask = reshape([.true.,.true.,.false.,.true.],[2,2]) + print *, iany(a1, dim=1, mask=mask) + print *, iany(a2, dim=1, mask=mask) + print *, iany(a4, dim=1, mask=mask) + print *, iany(a8, dim=1, mask=mask) + print *, iall(a1, dim=1, mask=mask) + print *, iall(a2, dim=1, mask=mask) + print *, iall(a4, dim=1, mask=mask) + print *, iall(a8, dim=1, mask=mask) + print *, iparity(a1, dim=1, mask=mask) + print *, iparity(a2, dim=1, mask=mask) + print *, iparity(a4, dim=1, mask=mask) + print *, iparity(a8, dim=1, mask=mask) + print *, iany(a1, dim=1, mask=mask2) + print *, iany(a2, dim=1, mask=mask2) + print *, iany(a4, dim=1, mask=mask2) + print *, iany(a8, dim=1, mask=mask2) + print *, iall(a1, dim=1, mask=mask2) + print *, iall(a2, dim=1, mask=mask2) + print *, iall(a4, dim=1, mask=mask2) + print *, iall(a8, dim=1, mask=mask2) + print *, iparity(a1, dim=1, mask=mask2) + print *, iparity(a2, dim=1, mask=mask2) + print *, iparity(a4, dim=1, mask=mask2) + print *, iparity(a8, dim=1, mask=mask2) +end diff --git a/gcc/testsuite/gfortran.dg/pr47757-2.f90 b/gcc/testsuite/gfortran.dg/pr47757-2.f90 new file mode 100644 index 00000000000..1f8a08f0b94 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr47757-2.f90 @@ -0,0 +1,16 @@ +! PR libfortran/47757 +! { dg-do run { target fortran_large_int } } + + integer(16) :: a16(2,2) + logical :: mask(2,2) + logical :: mask2 + a16 = 0 + mask2 = .true. + mask = reshape([.true.,.true.,.false.,.true.],[2,2]) + print *, iany(a16, dim=1, mask=mask) + print *, iall(a16, dim=1, mask=mask) + print *, iparity(a16, dim=1, mask=mask) + print *, iany(a16, dim=1, mask=mask2) + print *, iall(a16, dim=1, mask=mask2) + print *, iparity(a16, dim=1, mask=mask2) +end diff --git a/gcc/testsuite/gfortran.dg/pr47757-3.f90 b/gcc/testsuite/gfortran.dg/pr47757-3.f90 new file mode 100644 index 00000000000..9bfad82571d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr47757-3.f90 @@ -0,0 +1,12 @@ +! PR libfortran/47757 +! { dg-do run { target fortran_large_int } } + + character(kind=4):: str(3,3), s(3) + str(1,:) = [4_'A', 4_'b', 4_'C'] + str(2,:) = [4_'A', 4_'b', 4_'C'] + str(3,:) = [4_'A', 4_'b', 4_'C'] + s = 4_'A' + print *, cshift(str, shift=2_16, dim=1_16) + print *, eoshift(str, shift=2_16, dim=1_16) + print *, eoshift(str, shift=2_16, boundary=s, dim=1_16) +end diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 18daa42d399..44a562a11ad 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2011-02-16 Jakub Jelinek <jakub@redhat.com> + + PR libfortran/47757 + * gfortran.map (GFORTRAN_1.4): Export + _gfortran_{m,s}i{all,any,parity}_i{1,2,4,8,16} and + _gfortran_{cshift0,eoshift{0,2}}_16_char4. + 2011-02-15 Tobias Burnus <burnus@net-b.de> PR fortran/47716 diff --git a/libgfortran/gfortran.map b/libgfortran/gfortran.map index 359f6a820b2..211db00cd10 100644 --- a/libgfortran/gfortran.map +++ b/libgfortran/gfortran.map @@ -1122,16 +1122,46 @@ GFORTRAN_1.4 { _gfortran_iall_i4; _gfortran_iall_i8; _gfortran_iall_i16; + _gfortran_miall_i1; + _gfortran_miall_i2; + _gfortran_miall_i4; + _gfortran_miall_i8; + _gfortran_miall_i16; + _gfortran_siall_i1; + _gfortran_siall_i2; + _gfortran_siall_i4; + _gfortran_siall_i8; + _gfortran_siall_i16; _gfortran_iany_i1; _gfortran_iany_i2; _gfortran_iany_i4; _gfortran_iany_i8; _gfortran_iany_i16; + _gfortran_miany_i1; + _gfortran_miany_i2; + _gfortran_miany_i4; + _gfortran_miany_i8; + _gfortran_miany_i16; + _gfortran_siany_i1; + _gfortran_siany_i2; + _gfortran_siany_i4; + _gfortran_siany_i8; + _gfortran_siany_i16; _gfortran_iparity_i1; _gfortran_iparity_i2; _gfortran_iparity_i4; _gfortran_iparity_i8; _gfortran_iparity_i16; + _gfortran_miparity_i1; + _gfortran_miparity_i2; + _gfortran_miparity_i4; + _gfortran_miparity_i8; + _gfortran_miparity_i16; + _gfortran_siparity_i1; + _gfortran_siparity_i2; + _gfortran_siparity_i4; + _gfortran_siparity_i8; + _gfortran_siparity_i16; _gfortran_norm2_r4; _gfortran_norm2_r8; _gfortran_norm2_r10; @@ -1154,6 +1184,9 @@ GFORTRAN_1.4 { _gfortran_transfer_real_write; _gfortran_transfer_real128; _gfortran_transfer_real128_write; + _gfortran_cshift0_16_char4; + _gfortran_eoshift0_16_char4; + _gfortran_eoshift2_16_char4; } GFORTRAN_1.3; F2C_1.0 { |