[Bug c++/54038] [4.7/4.8 Regression] finalize_type_size enters infinite loop becasue TYPE_NEXT_VARIANT (variant) == variant
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 20 11:33:00 GMT 2012
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).
More information about the Gcc-bugs
mailing list