https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96214
--- Comment #4 from Jonny Grant <jg at jguk dot org> --- I realised there could be many else {} that can't be executed, added one more to the example. int main(void) { const int i = 1; if(1 == i) { return 1; } else if(1 != i) { return 2; } else if(2 != i) { return 2; } else { return 3; } }