diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/chkbits.f90 | 26 |
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a45284b7ecb..b7e00b9046a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2005-12-17 Steven G. Kargl <kargls@comcast.net> + * PR fortran/25458 + * gfortran.dg/chkbits.f90: New test. + +2005-12-17 Steven G. Kargl <kargls@comcast.net> + *gfortran.dg/enum_5.f: Revert to previous version. 2005-12-17 Steven G. Kargl <kargls@comcast.net> diff --git a/gcc/testsuite/gfortran.dg/chkbits.f90 b/gcc/testsuite/gfortran.dg/chkbits.f90 new file mode 100644 index 00000000000..19ab5c722c6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/chkbits.f90 @@ -0,0 +1,26 @@ +! { dg-do run } +! NOT() was not return the two's complement value as reported by +! PR fortran/25458. In checking other bit manipulation intrinsics, +! IBSET was found to be in error. +program chkbits + + implicit none + + integer(kind=1) i1 + integer(kind=2) i2 + integer(kind=4) i4 + integer(kind=8) i8 + + i1 = ibset(2147483647,bit_size(i4)-1) + i2 = ibset(2147483647,bit_size(i4)-1) + i4 = ibset(2147483647,bit_size(i4)-1) + i8 = ibset(2147483647,bit_size(i4)-1) + if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort + + i1 = not(0) + i2 = not(0) + i4 = not(0) + i8 = not(0) + if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort + +end program chkbits |