aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/simplify.c
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/fortran/simplify.c
parent573b07c7514cc57f64be4d3c3e33c27c8bbbd938 (diff)
downloadgcc-ef98c52a44394a1f9e9d91662cace6294e0ba2db.zip
gcc-ef98c52a44394a1f9e9d91662cace6294e0ba2db.tar.gz
gcc-ef98c52a44394a1f9e9d91662cace6294e0ba2db.tar.bz2
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/fortran/simplify.c')
-rw-r--r--gcc/fortran/simplify.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index e6fbefc..5b47e93 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -1348,6 +1348,9 @@ gfc_simplify_ibset (gfc_expr * x, gfc_expr * y)
result = gfc_copy_expr (x);
mpz_setbit (result->value.integer, pos);
+
+ twos_complement (result->value.integer, gfc_integer_kinds[k].bit_size);
+
return range_check (result, "IBSET");
}
@@ -2514,6 +2517,8 @@ gfc_simplify_not (gfc_expr * e)
mpz_and (result->value.integer, result->value.integer,
gfc_integer_kinds[i].max_int);
+ twos_complement (result->value.integer, gfc_integer_kinds[i].bit_size);
+
return range_check (result, "NOT");
}