Checker | Guideline |
---|
BD-PB-NOTINIT | EXP53-CPP. Do not read uninitialized memory |
BD-PB-NP | OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members |
BD-PB-OVERFWR | STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator |
BD-PB-OVERF{RD, WR, FMT, NZT} | CTR52-CPP. Guarantee that library functions do not overflow |
BD-PB-OVERF{RD, WR, FMT, NZT} | STR53-CPP. Range check element access |
BD-RES-FREE | EXP54-CPP. Do not access an object outside of its lifetime |
BD-RES-FREE | MEM50-CPP. Do not access freed memory |
BD-RES-LEAKS | FIO51-CPP. Close files when they are no longer needed |
BD-RES-LEAKS | ERR56-CPP. Guarantee exception safety |
BD-RES-LEAKS | ERR57-CPP. Do not leak resources when handling exceptions |
BD-TRS-DLOCK | CON53-CPP. Avoid deadlock by locking in a predefined order |
CODSTA-74 | DCL59-CPP. Do not define an unnamed namespace in a header file |
EXCEPT-13 | ERR51-CPP. Handle all exceptions |
EXCEPT-14 | ERR55-CPP. Honor exception specifications |
EXCEPT-16 | ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler |
EXCEPT-17 | ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived |
EXCEPT-18 | ERR58-CPP. Handle all exceptions thrown before main() begins executing |
INIT-10 | OOP53-CPP. Write constructor member initializers in the canonical order |
JSF-020 | ERR52-CPP. Do not use setjmp() or longjmp() |
JSF-114 | MSC52-CPP. Value-returning functions must return a value from all exit paths |
JSF-117_a | OOP51-CPP. Do not slice derived objects |
JSF-166 | EXP52-CPP. Do not rely on side effects in unevaluated operands |
JSF-166_{b,c} | EXP52-CPP. Do not rely on side effects in unevaluated operands |
JSF-204.1{a,b,c,d,g} | EXP50-CPP. Do not depend on the order of evaluation for side effects |
MEM-06 | MEM51-CPP. Properly deallocate dynamically allocated resources |
MEM-12 | MEM51-CPP. Properly deallocate dynamically allocated resources |
MEM-28 | MEM51-CPP. Properly deallocate dynamically allocated resources |
MEM-29 | MEM51-CPP. Properly deallocate dynamically allocated resources |
MISRA2004-16_1 | DCL50-CPP. Do not define a C-style variadic function |
MISRA2008-15_3_1 | ERR58-CPP. Handle all exceptions thrown before main() begins executing |
MISRA2008-15_5_2 | ERR55-CPP. Honor exception specifications |
MISRA2008-17_0_1_{a, b} | DCL51-CPP. Do not declare or define a reserved identifier |
MISRA2012-RULE-21_4_{a,b} | ERR52-CPP. Do not use setjmp() or longjmp() |
MISRA2012-RULE-21_5_b | MSC54-CPP. A signal handler must be a plain old function |
MRM-14 | MEM55-CPP. Honor replacement dynamic storage management requirements |
MRM-15 | MEM55-CPP. Honor replacement dynamic storage management requirements |
MRM-26 | DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope |
MRM-27 | DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope |
MRM-34 | MEM52-CPP. Detect and handle memory allocation errors |
OOP-02 | OOP51-CPP. Do not slice derived objects |
OOP-16 | OOP50-CPP. Do not invoke virtual functions from constructors or destructors |
OOP-22 | OOP52-CPP. Do not delete a polymorphic object without a virtual destructor |
OOP-34 | OOP54-CPP. Gracefully handle self-copy assignment |
PB-10 | EXP51-CPP. Do not delete an array through a pointer of the incorrect type |
PB-10 | CTR56-CPP. Do not use pointer arithmetic on polymorphic objects |
PB-54 | EXP57-CPP. Do not cast or delete pointers to incomplete classes |
PB-55 | EXP57-CPP. Do not cast or delete pointers to incomplete classes |
Runtime detection | EXP51-CPP. Do not delete an array through a pointer of the incorrect type |
Runtime detection | EXP53-CPP. Do not read uninitialized memory |
Runtime detection | EXP54-CPP. Do not access an object outside of its lifetime |
Runtime detection | EXP57-CPP. Do not cast or delete pointers to incomplete classes |
Runtime detection | MEM50-CPP. Do not access freed memory |
Runtime detection | MEM51-CPP. Properly deallocate dynamically allocated resources |
Runtime detection | MEM52-CPP. Detect and handle memory allocation errors |
Runtime detection | FIO51-CPP. Close files when they are no longer needed |
Runtime detection | OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members |
SECURITY-02 | MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers |
SECURITY-12 | STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator |
STL-02 | CTR56-CPP. Do not use pointer arithmetic on polymorphic objects |
STL-36 | CTR50-CPP. Guarantee that container indices and iterators are within the valid range |
STL-36 | CTR53-CPP. Use valid iterator ranges |