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;

}

Reply via email to