
Pengguna terkadang bertanya bagaimana diagnosis baru muncul di penganalisis statis PVS-Studio. Kami menjawab bahwa kami mendapatkan inspirasi dari berbagai sumber: buku, standar pengkodean, kesalahan kami sendiri, surat dari pengguna kami, dan sebagainya. Hari ini kami menemukan diagnosis baru yang menarik dan memutuskan untuk menceritakan kisah tentang bagaimana hal itu terjadi.
Semuanya dimulai dengan memeriksa proyek Model CovidSim COVID-19 dan artikel tentang variabel yang tidak diinisialisasi. Proyek tersebut ternyata kecil dan ditulis menggunakan standar bahasa C ++ modern. Ini berarti bahwa itu dapat dengan sempurna menambah basis proyek uji untuk pengujian regresi inti penganalisis PVS-Studio.
, , , () . , - . , .
, , MISRA-. , , , , CovidSim.
MISRA MISRA C++ , . , goto (V2502), , . MISRA " MISRA ".
, CovidSim, MISRA . . , , . , MISRA, - :). , . MISRA , .
. , MISRA , V2507, .
if (radiusSquared > StateT[tn].maxRad2) StateT[tn].maxRad2 = radiusSquared;
{
SusceptibleToLatent(a->pcell);
if (a->listpos < Cells[a->pcell].S)
{
UpdateCell(Cells[a->pcell].susceptible, a->listpos, Cells[a->pcell].S);
a->listpos = Cells[a->pcell].S;
Cells[a->pcell].latent[0] = ai;
}
}
StateT[tn].cumI_keyworker[a->keyworker]++;
V2507 .
, . ! ?
. , ! if.
:
if (radiusSquared > StateT[tn].maxRad2)
StateT[tn].maxRad2 = radiusSquared;
{
SusceptibleToLatent(a->pcell);
....
}
, . Top10 C++ , 2021 .
? , MISRA, ! , . , . , , .
, , MISRA, . β . , , . , .
. .
, if :
- if then-;
- statement if β compound statement, , if.
, .
. , - -, . , , . C# Java PVS-Studio.
, , PVS-Studio. CovidSim, MISRA .
:
- , PVS-Studio .
- PVS-Studio Java: .
- .
, : Andrey Karpov. Example of How New Diagnostics Appear in PVS-Studio.