Versions Compared

Key

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

...

Checker

Guideline

assert_failure STR51-CPP. Do not attempt to create a std::string from a null pointer
assert_failure STR53-CPP. Range check element access
bad-function (AUTOSAR.26.5.1A) MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
cast-integer-to-enum INT50-CPP. Do not cast to an out-of-range enumeration value
catch-class-by-value ERR61-CPP. Catch exceptions by lvalue reference
dangling_pointer_use EXP54-CPP. Do not access an object outside of its lifetime
dangling_pointer_use MEM50-CPP. Do not access freed memory
dangling_pointer_use MEM51-CPP. Properly deallocate dynamically allocated resources
dangling_pointer_use MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
dangling_pointer_use OOP54-CPP. Gracefully handle self-copy assignment
default-construction MSC51-CPP. Ensure your random number generator is properly seeded
default-new-overaligned-type MEM57-CPP. Avoid using default operator new for over-aligned types
definition-duplicate DCL60-CPP. Obey the one-definition rule
delete-with-incomplete-type EXP57-CPP. Do not cast or delete pointers to incomplete classes
delete-without-noexcept DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
destructor-without-noexcept DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
early-catch-all ERR51-CPP. Handle all exceptions
exception-caught-by-earlier-handler ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
exception-handler-member-access ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
external-file-spreading DCL60-CPP. Obey the one-definition rule
function-ellipsis DCL50-CPP. Do not define a C-style variadic function
include-setjmp ERR52-CPP. Do not use setjmp() or longjmp()
include-time OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
initializer-list-order OOP53-CPP. Write constructor member initializers in the canonical order
invalid-noreturn MSC53-CPP. Do not return from a function declared [[noreturn]]
invalid_dynamic_memory_allocation MEM51-CPP. Properly deallocate dynamically allocated resources
invalid_function_pointer OOP50-CPP. Do not invoke virtual functions from constructors or destructors
invalid_function_pointer OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
invalid_pointer_comparison CTR54-CPP. Do not subtract iterators that do not refer to the same container
invalid_pointer_dereference EXP61-CPP. A lambda object must not outlive any of its reference captured objects
invalid_pointer_dereference EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
invalid_pointer_dereference CTR52-CPP. Guarantee that library functions do not overflow
invalid_pointer_subtraction CTR54-CPP. Do not subtract iterators that do not refer to the same container
main-function-catch-all ERR51-CPP. Handle all exceptions
new-delete-pairwise DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
non-virtual-public-destructor-in-non-final-class OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
overflow_upon_dereference CTR50-CPP. Guarantee that container indices and iterators are within the valid range
overflow_upon_dereference CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
overflow_upon_dereference CTR53-CPP. Use valid iterator ranges
overflow_upon_dereference OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
pointer-qualifier-cast-const EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
pointer-qualifier-cast-volatile EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
potentially-throwing-static-initialization ERR58-CPP. Handle all exceptions thrown before main() begins executing
read_write_data_race CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
reserved-identifier DCL51-CPP. Do not declare or define a reserved identifier
return-implicit MSC52-CPP. Value-returning functions must return a value from all exit paths
return-reference-local EXP54-CPP. Do not access an object outside of its lifetime
sizeof EXP52-CPP. Do not rely on side effects in unevaluated operands
stdlib-use ERR50-CPP. Do not abruptly terminate the program
stdlib-use OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
stdlib-use-ato OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
stdlib-use-getenv OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
stdlib-use-string-unbounded OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
stdlib-use-system OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
stream-input-char-array STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
type-compatibility DCL60-CPP. Obey the one-definition rule
type-file-spreading DCL60-CPP. Obey the one-definition rule
undefined-extern DCL60-CPP. Obey the one-definition rule
undefined-extern-pure-virtual DCL60-CPP. Obey the one-definition rule
unhandled-throw-noexcept ERR55-CPP. Honor exception specifications
uninitialized-read EXP53-CPP. Do not read uninitialized memory
uninitialized_variable_use EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
unnamed-namespace-header DCL59-CPP. Do not define an unnamed namespace in a header file
virtual-call-in-constructor OOP50-CPP. Do not invoke virtual functions from constructors or destructors
write_write_data_race CON52-CPP. Prevent data races when accessing bit-fields from multiple threads