unreachable() doesn't lead to executing the code that follows it, neither in debug nor release builds. So falling through doesn't make any sense.
This fixes a compile-error on clang.
Let's move the default-block to the end to make it clearer that there's no intended fallthrough.