(convert_for_assignment): Fix handling of pmfs.
authorJason Merrill <jason@gcc.gnu.org>
Tue, 21 Apr 1998 18:05:17 +0000 (14:05 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 21 Apr 1998 18:05:17 +0000 (14:05 -0400)
From-SVN: r19360

gcc/cp/typeck.c

index 36acd58..f891b1e 100644 (file)
@@ -6844,9 +6844,11 @@ convert_for_assignment (type, rhs, errtype, fndecl, parmnum)
           && TYPE_PTRMEMFUNC_P (type))
     {
       tree ttl = TYPE_PTRMEMFUNC_FN_TYPE (type);
-      tree ttr = (TREE_CODE (rhstype) == POINTER_TYPE ? rhstype
-                 : TYPE_PTRMEMFUNC_FN_TYPE (rhstype));
-      int ctt = comp_target_types (ttl, ttr, 1);
+      tree ttr = (TYPE_PTRMEMFUNC_P (rhstype)
+                 ? TYPE_PTRMEMFUNC_FN_TYPE (rhstype)
+                 : rhstype);
+      int ctt = (TREE_CODE (rhstype) == INTEGER_TYPE ? 1
+                : comp_target_types (ttl, ttr, 1));
 
       if (ctt < 0)
        cp_pedwarn ("converting `%T' to `%T' is a contravariance violation",