https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64878
--- Comment #5 from Sebastian Pop <spop at gcc dot gnu.org> --- Created attachment 34665 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34665&action=edit fix The problem is that we jump thread twice across the loop latch: first, from case '{': a = 0; b = 15; f = f10 (); x->c2++; break; through the loop latch to: case 0: if (c == ' ') x->c2++; else if (c == '/') { a = 4; j = x->c2++; } else a = b; and second, from "a = b;" again across the loop latch to case 15. Attached patch fixes the wrong code and passes make check.