On Tue, Apr 16, 2019 at 04:10:11PM +0000, Michael Matz wrote:
> I was quickly testing also with some early-outs but didn't get conclusive 
> performance results (but really only superficial testing) so I'm not 
> proposing it, like so:
> 
> diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
> index 7045284..33f56f9 100644
> --- a/gcc/cp/typeck.c
> +++ b/gcc/cp/typeck.c
> @@ -1508,6 +1508,10 @@ same_type_ignoring_top_level_qualifiers_p (tree 
>    if (type1 == error_mark_node || type2 == error_mark_node)
>      return false;
>  
> +  if (type1 == type2)
> +    return true;
> +  if (TYPE_MAIN_VARIANT (type1) != TYPE_MAIN_VARIANT (type2))
> +    return false;

Is this second one correct though?  Doesn't comptypes return for various
cases true even if the TYPE_MAIN_VARIANT is different?

>    type1 = cp_build_qualified_type (type1, TYPE_UNQUALIFIED);
>    type2 = cp_build_qualified_type (type2, TYPE_UNQUALIFIED);

        Jakub

Reply via email to