aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 09f4805..a8c927f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index db707fb..0ff4733 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -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