Closed mirrin00 closed 3 months ago
Надо бы проверить, что данной проверки ещё нет в oclint
Такая проверка действительно уже есть в OCLint.
jcdkiki@pc:~/code/oclint_extensions/examples$ ./test-gcc.sh ex-goto
OCLint Report
Summary: TotalFiles=1 FilesWithViolations=1 P1=0 P2=0 P3=2
/home/jcdkiki/code/oclint_extensions/examples/ex-goto/main.cpp:9:14: goto statement [basic|P3]
/home/jcdkiki/code/oclint_extensions/examples/ex-goto/main.cpp:6:2: short variable name [naming|P3] Length of variable name `x` is 1, which is shorter than the threshold of 3
[OCLint (https://oclint.org) v22.02]
ex-goto/main.cpp:
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
if (x != 2) goto failed;
cout << "Congrats! You typed 2!" << endl;
failed:
return 0;
}
Критерий называется GotoStatmentRule
.
goto
-- в общем случае плохо и используется не по назначению. Нужно кидать предупреждение при использованииgoto
Пример плохо кода:
Как должно быть: