Versions Compared

Key

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

...

Tip

The table below can be re-ordered, by clicking column headers.

...

Include Page
cplusplus:Clang_Vcplusplus:
Clang_V

Checker

Guideline

-analyzer-checker=cplusplus EXP51-CPP. Do not delete an array through a pointer of the incorrect type
-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
cert-oop54-cpp OOP54-CPP. Gracefully handle self-copy assignment
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