On May 21, 2015 6:06:18 PM GMT+02:00, Jan Hubicka <hubi...@ucw.cz> wrote:
>Hi,
>this patch removes call to comp_type_attributes (wich happens for
>METHOD_TYPE and FUNCTION_TYPE only). This does not make sense, because
>type attributes may change in variants and pointers should be
>considered
>compatible.
>
>We did not get any trouble from this only because we do not really use
>canonical types of functions for anything.
>
>Bootstrapped/regtested x86_64-linux, OK?
OK.

Richard.


>Honza
>
>       * tree.c (gimple_canonical_types_compatible_p) Do not compare
>       type attributes.
>       (verify_type): Drop METHOD_TYPE FIXME; update FUNCTION_TYPE FIXME.
>Index: tree.c
>===================================================================
>--- tree.c     (revision 223490)
>+++ tree.c     (working copy)
>@@ -12837,9 +12837,6 @@ gimple_canonical_types_compatible_p (con
>                                               trust_type_canonical))
>       return false;
> 
>-      if (!comp_type_attributes (t1, t2))
>-      return false;
>-
>       if (TYPE_ARG_TYPES (t1) == TYPE_ARG_TYPES (t2))
>       return true;
>       else
>@@ -12939,10 +12936,9 @@ verify_type (const_tree t)
>/* Method and function types can not be used to address memory and thus
>TYPE_CANONICAL really matters only for determining useless conversions.
> 
>-     FIXME: C++ FE does not agree with
>gimple_canonical_types_compatible_p
>-     here.  gimple_canonical_types_compatible_p calls
>comp_type_attributes
>-     while for C++ FE the attributes does not make difference.  */
>-  else if (TREE_CODE (t) == FUNCTION_TYPE || TREE_CODE (t) ==
>METHOD_TYPE)
>+     FIXME: C++ FE produce declarations of builtin functions that are
>not
>+     compatible with main variants.  */
>+  else if (TREE_CODE (t) == FUNCTION_TYPE)
>     ;
>   else if (t != ct
>          /* FIXME: gimple_canonical_types_compatible_p can not compare types


Reply via email to