aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-11-08 15:33:23 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-11-08 15:33:23 +0000
commit8dc9f613eac2c3449d1b1d6269c811802cfe4b9c (patch)
tree2876c8a0d09f63842a70463ba3f316e13228e400
parentabf86978b36f9c71aa5a66a9b8539c8ba9cffab9 (diff)
downloadgcc-8dc9f613eac2c3449d1b1d6269c811802cfe4b9c.zip
gcc-8dc9f613eac2c3449d1b1d6269c811802cfe4b9c.tar.gz
gcc-8dc9f613eac2c3449d1b1d6269c811802cfe4b9c.tar.bz2
re PR fortran/34028 (Type mismatch with optimization of ISHFT)
PR fortran/34028 * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type. From-SVN: r130003
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/trans-intrinsic.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 8103821..0ce1bfa 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/34028
+ * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type.
+
2007-11-08 Tobias Burnus <burnus@net-b.de>
PR fortran/33917
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 24f2442..bd4607d 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -2533,7 +2533,7 @@ gfc_conv_intrinsic_ishft (gfc_se * se, gfc_expr * expr)
/* The Fortran standard allows shift widths <= BIT_SIZE(I), whereas
gcc requires a shift width < BIT_SIZE(I), so we have to catch this
special case. */
- num_bits = build_int_cst (TREE_TYPE (args[0]), TYPE_PRECISION (type));
+ num_bits = build_int_cst (TREE_TYPE (args[1]), TYPE_PRECISION (type));
cond = fold_build2 (GE_EXPR, boolean_type_node, width, num_bits);
se->expr = fold_build3 (COND_EXPR, type, cond,