https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40748

--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> ---
We also miss the even simpler case that should be optimized to "return n;"

int foo(int n){
    switch(n){
        case 0:
            return 0;
        case 1:
            return 1;
        case 2:
            return 2;
        case 3:
            return 3;
        default:
            __builtin_unreachable();
    }
}

llvm performs the expected optimization in both cases.

Reply via email to