------- Comment #3 from rguenth at gcc dot gnu dot org 2010-01-01 22:42 ------- The array indexing is done with D.25175_104, but
D.25173_102 = (uint16) cutawaySlot_256; D.25174_103 = D.25173_102 + 10; D.25175_104 = (int) D.25174_103; ... if (D.25174_103 > 9) goto <bb 26>; else goto <bb 30>; the actual check is done on D.25174_103. We do not add asserts for D.25175_104 on the edge to BB30. D.25174 is unsigned short. So we end up with D.25173_102: [0, 1] D.25174_103: [10, 11] D.25175_104: [10, 11] and warn for the access that is dominated by BB30. So the issue is that we warn for dead code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42577