diff options
author | Steven G. Kargl <kargls@comcast.net> | 2005-12-17 17:30:26 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2005-12-17 17:30:26 +0000 |
commit | ef98c52a44394a1f9e9d91662cace6294e0ba2db (patch) | |
tree | 34700f2c118f9dc255183f0bbb29babc379f826b /gcc/fortran/simplify.c | |
parent | 573b07c7514cc57f64be4d3c3e33c27c8bbbd938 (diff) | |
download | gcc-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.c | 5 |
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"); } |