compilation error when declaring a variable inside a switch statement - page 2

 

Once more. There is no bug. As designed. I've shown example above explaining what is the reason to prevent such declaration.

 

You are right (considering the variable scope being the whole switch statement). 

But why bracketing doesn't work all the time then?

Now I have at least 40 variable declaration just outside the switch statement because of the "tree optimization error" error. 

Since I got all variables outside switch statement, everything works smooth, and I keep transforming the code continuously.

So there's a high probability that:  bracketing a case in a switch statement + declaring variables inside the brackets = "tree optimization error".

I used bracketing like this:

switch (s) {
 case 1: {
   int i;
   double d;
   //code
 }
 break;
 case 2: {
   int k;
   double xx;
   //code
 }
 break;
}