https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107767
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- > this code should not be treated as if-else-if-else-if. Why? It's an equivalent representation as all ifs have a return statement. One another equivalent representation is: switch (dst_port) { case 15: case 23: case 47: case 45: case 42: case 1: case 2: case 3: return 1; default: return 0; }