summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/chkbits.f90
diff options
context:
space:
mode:
authorSteven G. Kargl <kargls@comcast.net>2005-12-17 17:30:26 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2005-12-17 17:30:26 +0000
commitef98c52a44394a1f9e9d91662cace6294e0ba2db (patch)
tree34700f2c118f9dc255183f0bbb29babc379f826b /gcc/testsuite/gfortran.dg/chkbits.f90
parent573b07c7514cc57f64be4d3c3e33c27c8bbbd938 (diff)
downloadgcc-ef98c52a44394a1f9e9d91662cace6294e0ba2db.tar.gz
re PR fortran/25458 ([4.1] Kind of constants in generic intrinsics)
PR fortran/25458 * simplify.c (gfc_simplify_ibset, gfc_simplify_not): Add call to twos_complement. * gfortran.dg/chkbits.f90: New test. Co-Authored-By: Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> From-SVN: r108720
Diffstat (limited to 'gcc/testsuite/gfortran.dg/chkbits.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/chkbits.f9026
1 files changed, 26 insertions, 0 deletions
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