https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103257
Aldy Hernandez <aldyh at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amacleod at redhat dot com --- Comment #1 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Looks like something either VRP or the threader could get. By vrp2 we have: =========== BB 2 ============ Imports: c.0_1 Exports: c.0_1 f.6_9 _10 f.6_9 : c.0_1(I) _10 : c.0_1(I) f.6_9 <bb 2> [local count: 1073741824]: c.0_1 = c; b.2_2 = b; _11 = b.2_2 != 0; iftmp.3_3 = (unsigned int) _11; f.6_9 = (unsigned short) c.0_1; _10 = b.2_2 < iftmp.3_3 ? f.6_9 : 0; if (_10 != 0) goto <bb 3>; [33.00%] else goto <bb 4>; [67.00%] iftmp.3_3 : unsigned int [0, 1] 2->3 (T) _10 : unsigned short [1, +INF] 2->4 (F) _10 : unsigned short [0, 0] =========== BB 3 ============ <bb 3> [local count: 354334800]: foo ();