Код: Выделить всё
int foo() {
goto lbl;
int a = 4;
lbl:
return 5;
}
< /code>
С GCC 12, это совсем хорошо, как C, даже не предупреждение. Однако, если я попытаюсь скомпилировать его как C ++, я получаю эту ошибку (и аналогичную для Clang): < /p>
main.cpp: In function ‘int foo()’:
main.cpp:4:1: error: jump to label ‘lbl’
4 | lbl:
| ^~~
main.cpp:2:10: note: from here
2 | goto lbl;
| ^~~
main.cpp:3:9: note: crosses initialization of ‘int a’
3 | int a = 4;
| ^
Подробнее здесь: https://stackoverflow.com/questions/797 ... -but-not-c