Checker | Guideline |
---|
DCL52 -CPP. Never qualify a reference type with const or volatile -analyzer-checker=cplusplus | EXP51-CPP. Do not delete an array through a pointer of the incorrect type | -cert-err34-c | ERR62-CPP. Detect errors when converting a string to a number |
-Wdangling-initializer-list | EXP54-CPP. Do not access an object outside of its lifetime |
-Wdelete-incomplete | EXP57-CPP. Do not cast or delete pointers to incomplete classes |
-Wdelete-non-virtual-dtor | OOP52-CPP. Do not delete a polymorphic object without a virtual destructor |
-Wdynamic-class-memaccess | EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries |
-Wexceptions | ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler |
-Wexceptions | ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived |
-Winvalid-noreturn | MSC53-CPP. Do not return from a function declared [[noreturn]] |
-Winvalid-offsetof | EXP59-CPP. Use offsetof() on valid types and members |
-Wmismatched-new-delete | MEM51-CPP. Properly deallocate dynamically allocated resources |
-Wreorder | OOP53-CPP. Write constructor member initializers in the canonical order |
-Wreserved-id-macro | DCL51-CPP. Do not declare or define a reserved identifier |
-Wreturn-type | MSC52-CPP. Value-returning functions must return a value from all exit paths |
-Wunevaluated-expression | EXP52-CPP. Do not rely on side effects in unevaluated operands |
-Wuninitialized | EXP53-CPP. Do not read uninitialized memory |
-Wunsequenced | EXP50-CPP. Do not depend on the order of evaluation for side effects |
-Wuser-defined-literals | DCL51-CPP. Do not declare or define a reserved identifier |
-Wvarargs | EXP58-CPP. Pass an object of the correct type to va_start |
-Wvexing-parse | DCL53-CPP. Do not write syntactically ambiguous declarations |
cert-dcl50-cpp | DCL50-CPP. Do not define a C-style variadic function |
cert-dcl59-cpp | DCL59-CPP. Do not define an unnamed namespace in a header file |
cert-err34-c | ERR62-CPP. Detect errors when converting a string to a number |
cert-err52-cpp | ERR52-CPP. Do not use setjmp() or longjmp() |
cert-err58-cpp | ERR58-CPP. Handle all exceptions thrown before main() begins executing |
cert-err60-cpp | ERR60-CPP. Exception objects must be nothrow copy constructible |
cert-err61-cpp | ERR61-CPP. Catch exceptions by lvalue reference |
cert-msc50-cpp | MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers |
Clang checks for violations of this rule and produces an error without the need to specify any special flags or options. | DCL52-CPP. Never qualify a reference type with const or volatile |
clang-analyzer-alpha.cplusplus.VirtualCall | OOP50-CPP. Do not invoke virtual functions from constructors or destructors |
clang-analyzer-alpha.security.ArrayBoundV2 | MEM50-CPP. Do not access freed memory |
clang-analyzer-core.UndefinedBinaryOperatorResult | EXP53-CPP. Do not read uninitialized memory |
clang-analyzer-cplusplus.NewDelete | MEM50-CPP. Do not access freed memory |
clang-analyzer-cplusplus.NewDeleteLeaks | MEM51-CPP. Properly deallocate dynamically allocated resources |
clang-analyzer-unix.MismatchedDeallocator | MEM51-CPP. Properly deallocate dynamically allocated resources |
misc-new-delete-overloads | DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope |