Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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