This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[fortran,committed] Fix mismatch types


Regtesting with type-checking and -fdefault-integer-8 spotted a
trivial mismatch in trans-intrinsic.c (gfc_conv_intrinsic_ishft). I
committed the patch below as rev. 130003, under the "obvious" rule,
after regtesting with -m32 and -m64 on x86_64-linux. No new testcase,
since the testsuite already covered this.

(I missed rev. 130000! That would have been *cool*!)

FX



Index: ChangeLog
===================================================================
--- ChangeLog   (revision 130002)
+++ ChangeLog   (working copy)
@@ -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
Index: trans-intrinsic.c
===================================================================
--- trans-intrinsic.c   (revision 130002)
+++ trans-intrinsic.c   (working copy)
@@ -2533,7 +2533,7 @@ gfc_conv_intrinsic_ishft (gfc_se * se, g
   /* 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,


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]