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



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |jakub at gcc dot gnu.org

          Component|c                           |middle-end



--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-03 
14:47:37 UTC ---

The C FE is innocent, it has TYPE_SIZE_UNIT <nop_expr sizetype <something>>.

The problem is in the gimplifier, gimplify_one_sizepos, because sizetype is

types_compatible_p with the ENUMERAL_TYPE (with -m32), replaces the sizetype

typed TYPE_SIZE_UNIT with the enumeral one.  So, either we'd need to special

case this in gimplify_one_sizepos or so and if it turns an INTEGER_TYPE expr

into something with different type TREE_CODE, do something (what exactly?  If

we turn it into a NOP_EXPR of the VAR_DECL, it will not satisfy

is_gimple_sizepos and we'll try to regimplify it again and again, or shall we

adjust is_gimple_sizepos too to allow that special case of a NOP_EXPR of

is_gimple_sizepos if the types are compatible?).  Or adjust whatever code is

assuming that TYPE_SIZE_UNIT must be INTEGER_TYPE.

Reply via email to