re PR fortran/22527 (fortran produces mismatch types in comparision with integer...
authorRoger Sayle <roger@eyesopen.com>
Sat, 10 Dec 2005 01:14:38 +0000 (01:14 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sat, 10 Dec 2005 01:14:38 +0000 (01:14 +0000)
PR fortran/22527
* f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
integer type when building an inequality.

From-SVN: r108341

gcc/fortran/ChangeLog
gcc/fortran/f95-lang.c

index 0f9cd13045166b43b872ca451f55d050f65061e5..58cf367f1c8c8967c14b20e0e684242f763400d5 100644 (file)
@@ -1,3 +1,9 @@
+2005-12-09  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/22527
+       * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
+       integer type when building an inequality.
+
 2005-12-09  Richard Guenther  <rguenther@suse.de>
 
        * f95-lang.c (build_builtin_fntypes): Use correct
index 1ddad87e71993c126dd1998386210a2b4fdfe22f..a5d116156468092e173f3959f28d6c8c575ef574 100644 (file)
@@ -257,7 +257,8 @@ gfc_truthvalue_conversion (tree expr)
       if (TREE_CODE (expr) == INTEGER_CST)
        return integer_zerop (expr) ? boolean_false_node : boolean_true_node;
       else
-        return build2 (NE_EXPR, boolean_type_node, expr, integer_zero_node);
+        return build2 (NE_EXPR, boolean_type_node, expr,
+                      build_int_cst (TREE_TYPE (expr), 0));
 
     default:
       internal_error ("Unexpected type in truthvalue_conversion");