[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