diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8103821dde1..0ce1bfa6c6a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Francois-Xavier Coudert + + PR fortran/34028 + * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type. + 2007-11-08 Tobias Burnus PR fortran/33917 diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 24f24429311..bd4607d55ad 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,