Jakub, your recent change PR tree-optimization/46309 * fold-const.c (make_range, merge_ranges): Remove prototypes. (make_range_step): New function. (make_range): Use it. * tree.h (make_range_step): New prototypes. * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H). * tree-ssa-reassoc.c: Include diagnostic-core.h. (struct range_entry): New type. (init_range_entry, range_entry_cmp, update_range_test, optimize_range_tests): New functions. (reassociate_bb): Call optimize_range_tests. * gcc.dg/pr46309.c: New test. breaks my LTO kernel builds. I get a lot of internal compiler error: in init_range_entry, at tree-ssa-reassoc.c:1698 in different files. With the patch reverted things are fine
It also breaks LTO build of Firefox with the same ICE.
Created attachment 25402 [details] gcc47-pr50587.patch Does this patch fix it? I've reproduce it only on invalid code: extern int c[64]; int foo (int a) { int x = a > 1; int y = &c[60] < (int *) 0x12345678UL; return x | y; }
(In reply to comment #2) > Created attachment 25402 [details] > gcc47-pr50587.patch > > Does this patch fix it? Yes it fixes both the LTO kernel and Firefox builds. Thanks.
Author: jakub Date: Mon Oct 3 09:06:38 2011 New Revision: 179447 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179447 Log: PR tree-optimization/50587 * tree-ssa-reassoc.c (init_range_entry): Stop iterating when arg0 is not a SSA_NAME. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-ssa-reassoc.c
Fixed.