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) {}
}