2009-08-07 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Aug 2009 08:54:53 +0000 (08:54 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Aug 2009 08:54:53 +0000 (08:54 +0000)
* tree-ssa.c (useless_type_conversion_p_1): Only for types
that require structural equality defer to the langhook.

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

gcc/ChangeLog
gcc/tree-ssa.c

index 96b291a..b9304a1 100644 (file)
@@ -1,3 +1,8 @@
+2009-08-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (useless_type_conversion_p_1): Only for types
+       that require structural equality defer to the langhook.
+
 2009-08-07  Martin Jambor  <mjambor@suse.cz>
 
        * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
index 0b4cc96..ddd4cfb 100644 (file)
@@ -1073,11 +1073,11 @@ useless_type_conversion_p_1 (tree outer_type, tree inner_type)
   else if (AGGREGATE_TYPE_P (inner_type)
           && TREE_CODE (inner_type) == TREE_CODE (outer_type))
     {
-      /* ???  This seems to be necessary even for aggregates that don't
-        have TYPE_STRUCTURAL_EQUALITY_P set.  */
+      if (TYPE_STRUCTURAL_EQUALITY_P (outer_type)
+         || TYPE_STRUCTURAL_EQUALITY_P (inner_type))
+       return lang_hooks.types_compatible_p (inner_type, outer_type);
 
-      /* ???  This should eventually just return false.  */
-      return lang_hooks.types_compatible_p (inner_type, outer_type);
+      return false;
     }
   
   return false;