2009-09-05 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Sep 2009 15:14:12 +0000 (15:14 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Sep 2009 15:14:12 +0000 (15:14 +0000)
PR middle-end/41271
* tree-ssa.c (useless_type_conversion_p): Drop qualifiers
before comparing function argument types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151453 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa.c

index 09f4805..a8c927f 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/41271
+       * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
+       before comparing function argument types.
+
 2009-09-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR target/41024
index db707fb..0ff4733 100644 (file)
@@ -1289,7 +1289,8 @@ useless_type_conversion_p (tree outer_type, tree inner_type)
       if (!TYPE_ARG_TYPES (outer_type))
        return true;
 
-      /* If the argument types are compatible the conversion is useless.  */
+      /* If the unqualified argument types are compatible the conversion
+        is useless.  */
       if (TYPE_ARG_TYPES (outer_type) == TYPE_ARG_TYPES (inner_type))
        return true;
 
@@ -1298,8 +1299,9 @@ useless_type_conversion_p (tree outer_type, tree inner_type)
           outer_parm && inner_parm;
           outer_parm = TREE_CHAIN (outer_parm),
           inner_parm = TREE_CHAIN (inner_parm))
-       if (!useless_type_conversion_p (TREE_VALUE (outer_parm),
-                                       TREE_VALUE (inner_parm)))
+       if (!useless_type_conversion_p
+              (TYPE_MAIN_VARIANT (TREE_VALUE (outer_parm)),
+               TYPE_MAIN_VARIANT (TREE_VALUE (inner_parm))))
          return false;
 
       /* If there is a mismatch in the number of arguments the functions