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 |
catch-class-by-value | ERR61-CPP. Catch exceptions by lvalue reference |
dangling_pointer_ 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 |
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 |
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 | volatile | DCL52-CPP. Never qualify a reference type with const or volatile |