This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/17036] [3.5 Regression] ICE: (A >> N) & 1 ? (1 << N) : 0 where A of type unsigned int


------- Additional Comments From bommar33 at msu dot edu  2004-08-15 18:57 -------
> This patch should fixit but I don't have time to do a full bootstrap and
> regression test on the patch.
> 
> -------------------------------------------------------------------
> Index: fold-const.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/fold-const.c,v
> retrieving revision 1.435
> diff -c -p -r1.435 fold-const.c
> *** fold-const.c        12 Aug 2004 04:01:04 -0000      1.435
> --- fold-const.c        15 Aug 2004 17:53:10 -0000
> *************** fold (tree expr)
> *** 8874,8879 ****
> --- 8874,8880 ----
>            tree tem = TREE_OPERAND (arg0, 0);
>            STRIP_NOPS (tem);
>            if (TREE_CODE (tem) == RSHIFT_EXPR
> +             && TREE_CODE (TREE_OPERAND (tem, 1)) == INTEGER_CST
>                  && (unsigned HOST_WIDE_INT) tree_log2 (arg1) ==
>                   TREE_INT_CST_LOW (TREE_OPERAND (tem, 1)))
>              return fold (build2 (BIT_AND_EXPR, type,
> -------------------------------------------------------------------
> 

When patched against the 20040801 tree that I had initially generated the error
on, it successfully recompiled and properly generated the code.  Thanks to both
of you for the quick response time :)

-- 


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]