On Tuesday, 6 November 2018 at 01:55:04 UTC, Jonathan M Davis wrote:
And I found a bit strange that in such code, since "x" is never used, why it isn't skipped.

It's skipped right over. The goto jumps out of the scope, and the line with

int x;

is never run. In fact, if you compile with -w or -wi, the compiler will give you a warning about unreachable code.

That is exactly my point.

Since "x" it's skipped and never used, it shouldn't just be a warning (unreachable code) instead of an error?

I'm trying to understand why/when such code could give any problem.

On the other hand if the code were:

{
   goto Q:
   int x;

   Q:
   x = 10; // <- Now you are accessing an uninitialized variable.
}

Then I think an error would be ok.

MatheusBN.

Reply via email to