http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54038

--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-20 
11:33:38 UTC ---
I doubt that it is a good idea to put TYPE_CANONICAL in type variant lists.
At most they should be the main variant itself, but in this case you can
end up merging two type variant chains.  That is, the following should
hold true:

  TYPE_MAIN_VARIANT (TYPE_CANONICAL (x)) == TYPE_CANONICAL (x)

so if TYPE_CANONICAL made any sense when it was introduced (in addition
to TYPE_MAIN_VARIANT) making TYPE_CANONICALs part of the variant chain
certainly shows that it didn't make sense.  In conclusion it cannot be
correct to require that TYPE_CANONICAL (t) appears in the variant
chain of TYPE_MAIN_VARIANT (t) (it can be, of course still be equal
to TYPE_MAIN_VARIANT).

Reply via email to