When I\'m reading the C++ standard, it seems that the following code is perfectly fine according to the standard.
int main() {
goto lol;
{
int x;
Isn't it still dangerous to jump over its definition and use uninitialized
x
?
But x
would be uninitialized anyway, because it was declared without an initializer! So the goto
might be skipping over assignment statements that set (sort-of-initialize) x
, but it's not surprising that goto
can skip over assignment statements; and the declaration itself doesn't actually do anything unless there's an initializer.