Do not compare type attributes in gimple_canonical_types_compatible_p
Richard Biener
rguenther@suse.de
Thu May 21 16:49:00 GMT 2015
On May 21, 2015 6:06:18 PM GMT+02:00, Jan Hubicka <hubicka@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
More information about the Gcc-patches
mailing list