GitHub
CERT Secure Coding

Clang

This page was automatically generated and should not be edited.

The information on this page was provided by outside contributors and has not been verified by SEI CERT.

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

Tool Version: 3.9

CheckerGuideline
-analyzer-checker=cplusplusEXP51-CPP. Do not delete an array through a pointer of the incorrect type
-Wdangling-initializer-listEXP54-CPP. Do not access an object outside of its lifetime
-Wdelete-incompleteEXP57-CPP. Do not cast or delete pointers to incomplete classes
-Wdelete-non-virtual-dtorOOP52-CPP. Do not delete a polymorphic object without a virtual destructor
-Wdynamic-class-memaccessEXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
-WexceptionsERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
-WexceptionsERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
-Winvalid-noreturnMSC53-CPP. Do not return from a function declared [[noreturn]]
-Winvalid-offsetofEXP59-CPP. Use offsetof() on valid types and members
-Wmismatched-new-deleteMEM51-CPP. Properly deallocate dynamically allocated resources
-WreorderOOP53-CPP. Write constructor member initializers in the canonical order
-Wreserved-id-macroDCL51-CPP. Do not declare or define a reserved identifier
-Wreturn-typeMSC52-CPP. Value-returning functions must return a value from all exit paths
-Wunevaluated-expressionEXP52-CPP. Do not rely on side effects in unevaluated operands
-WuninitializedEXP53-CPP. Do not read uninitialized memory
-WunsequencedEXP50-CPP. Do not depend on the order of evaluation for side effects
-Wuser-defined-literalsDCL51-CPP. Do not declare or define a reserved identifier
-WvarargsEXP58-CPP. Pass an object of the correct type to va_start
-Wvexing-parseDCL53-CPP. Do not write syntactically ambiguous declarations
cert-dcl50-cppDCL50-CPP. Do not define a C-style variadic function
cert-dcl59-cppDCL59-CPP. Do not define an unnamed namespace in a header file
cert-err34-cERR62-CPP. Detect errors when converting a string to a number
cert-err52-cppERR52-CPP. Do not use setjmp() or longjmp()
cert-err58-cppERR58-CPP. Handle all exceptions thrown before main() begins executing
cert-err60-cppERR60-CPP. Exception objects must be nothrow copy constructible
cert-err61-cppERR61-CPP. Catch exceptions by lvalue reference
cert-msc50-cppMSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
cert-oop54-cppOOP54-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.VirtualCallOOP50-CPP. Do not invoke virtual functions from constructors or destructors
clang-analyzer-alpha.security.ArrayBoundV2MEM50-CPP. Do not access freed memory
clang-analyzer-core.UndefinedBinaryOperatorResultEXP53-CPP. Do not read uninitialized memory
clang-analyzer-cplusplus.NewDeleteMEM50-CPP. Do not access freed memory
clang-analyzer-cplusplus.NewDeleteLeaksMEM51-CPP. Properly deallocate dynamically allocated resources
clang-analyzer-unix.MismatchedDeallocatorMEM51-CPP. Properly deallocate dynamically allocated resources
misc-new-delete-overloadsDCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope