[PR 79905] ICE with vector_type

Segher Boessenkool segher@kernel.crashing.org
Thu Apr 6 20:18:00 GMT 2017


Hi!

On Thu, Apr 06, 2017 at 02:34:03PM -0400, Nathan Sidwell wrote:
> Segher, this fixes a C++ ICE where TYPE_CANONICALs didn't match, but the 
> types were the same (and non-structural comparison).  The underlying 
> cause is that types with different TYPE_NAME are considered different 
> canonical types.  add_builtin_type smacked TYPE_NAME of the canonical 
> type, therefore guaranteeing that any subsequent vector types would be 
> thought of as different.

> Index: config/rs6000/rs6000.c
> ===================================================================
> --- config/rs6000/rs6000.c	(revision 246647)
> +++ config/rs6000/rs6000.c	(working copy)
> @@ -17257,6 +17257,22 @@ rs6000_expand_builtin (tree exp, rtx tar
>    gcc_unreachable ();
>  }
>  
> +/* Create a builtin vector type with a name.  Taking care not to give
> +   the canonical type a name.  */
> +
> +static tree
> +rs6000_vt (const char *name, tree elt_type, unsigned num_elts)

I don't like this cryptic name very much.  Maybe you could just use a
longer name and indent differently (break at the "=" for example), or
do a macro around where it is used a lot?

But, okay for trunk whatever you decide on this.  Thanks!


Segher



More information about the Gcc-patches mailing list