https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97360
--- Comment #30 from Andrew Macleod <amacleod at redhat dot com> --- On 10/19/20 6:40 PM, bergner at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97360 > > --- Comment #28 from Peter Bergner <bergner at gcc dot gnu.org> --- > (In reply to Andrew Macleod from comment #25) >> Wonder if it was suppose to be something like: >> >> >> /* Vector pair and vector quad support. */ >> if (TARGET_EXTRA_BUILTINS) >> { >> - tree oi_uns_type = make_unsigned_type (256); >> - vector_pair_type_node = build_distinct_type_copy (oi_uns_type); >> + vector_pair_type_node = make_unsigned_type (256); >> SET_TYPE_MODE (vector_pair_type_node, POImode); >> layout_type (vector_pair_type_node); >> lang_hooks.types.register_builtin_type (vector_pair_type_node, >> "__vector_pair"); >> >> - tree xi_uns_type = make_unsigned_type (512); >> - vector_quad_type_node = build_distinct_type_copy (xi_uns_type); >> + vector_quad_type_node = make_unsigned_type (512); >> SET_TYPE_MODE (vector_quad_type_node, PXImode); >> layout_type (vector_quad_type_node); >> lang_hooks.types.register_builtin_type (vector_quad_type_node, > So this passed bootstrap and regtesting with no regressions. > > Is this really the correct fix? Don't we want a distinct type compared to the > unsigned type returned from make_unsigned_type()? > I actually dont know, Richi might have to comment on that.. Nothing was referring to the original unsigned_type that was created? Its just orphaned? tree make_unsigned_type (int precision) { tree type = make_node (INTEGER_TYPE); TYPE_PRECISION (type) = precision; fixup_unsigned_type (type); return type; } All it does is create a new node, then fixup goes and creates the MIN and MAX fields and sets a few other little things. The only reason we saw the old unsigned type is we were picking it up from the MAX and MIN fields,... which were set to the original type. it sure *seems* like that is a resonable fix. Its not like that first node is creating a system wide node? our type system is a bit, umm, flakey, but it seems reasonable to me. :-) And its in the spirit of what his patch was doing... What could possibly go wrong? :-) :-) Andrew