This patch fixes false positives for vardecls that are technically unreachable but they are needed.
switch (x) {
int a; // <- This is unreachable but needed
case 1:
a = ...For this code there will be Wunused-variable:
if (1+2==45) {
int x;
}For this code there is 'unreachable code' warning on the 'if (1)':
if (1+2==45) {
int x;
if (1) {}
}