optimization/6822: GCC 3.1.1 - Internal compiler error in extract_insn, at recog.c:2132

Glen Nakamura glen@imodulo.com
Wed May 29 09:31:00 GMT 2002


On Wed, May 29, 2002 at 06:11:10PM +0200, Eric Botcazou wrote:
> --- gcc/config/i386/i386.c.orig Wed May 29 17:14:21 2002
> +++ gcc/config/i386/i386.c Wed May 29 17:28:45 2002
> @@ -7963,6 +7963,8 @@
>        && (!TARGET_64BIT
>     || GET_MODE (ix86_compare_op0) != DImode
>     || (unsigned int) INTVAL (ix86_compare_op1) != 0x7fffffff)
> +      && (GET_MODE (ix86_compare_op0) != QImode
> +   || (unsigned int) INTVAL (ix86_compare_op1) != 0x7f)
>        && GET_CODE (operands[2]) == CONST_INT
>        && GET_CODE (operands[3]) == CONST_INT)
>      {

Does this also fix the short case?  e.g. 0x7fff

unsigned short
foo ()
{
    return 0x8000;
}

int
main ()
{
    unsigned short q = foo ();
    return (q < 0x8000) ? 64 : 0;
}

BTW, Thanks for looking into this!

- Glen Nakamura



More information about the Gcc-bugs mailing list