http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54742
--- Comment #8 from Joey Ye <joey.ye at arm dot com> 2013-03-08 03:56:38 UTC ---
// A none loop case shows how minor changes impacts current jump thread
behavior
int foo(int state, int check)
{
switch (state) {
case 0:
state = 1;
zoo_0();
break;
case 1:
default:
state = 0;
zoo_1();
break;
}
if (!check) return 0;
//check++; // Uncomment it results will disable jump thread
//check=foo(); // Uncomment it results will disable jump thread
switch (state) {
case 0:
bar_0();
break;
case 1:
default:
bar_1();
break;
}
return check;
}