http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50762
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ebotcazou at gcc dot
| |gnu.org
--- Comment #12 from Uros Bizjak <ubizjak at gmail dot com> 2011-11-10 13:16:54
UTC ---
This time we hit assert in simplify_rtx.c:
case ZERO_EXTEND:
/* When zero-extending a CONST_INT, we need to know its
original mode. */
--> gcc_assert (op_mode != VOIDmode);
if (op_width == HOST_BITS_PER_WIDE_INT)
{
/* If we were really extending the mode,
we would have to distinguish between zero-extension
and sign-extension. */
gcc_assert (width == op_width);
val = arg0;
}
But ... CONST_INTs do not have mode.
A couple of lines below, CONST_INTs can be sign_extended, but not zero_extended
here... Let's ask some people that know this part of the compiler.