Skip to end of metadata
Go to start of metadata

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: 17.04i

Checker

Guideline

array-index-range ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
array-size-global ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer
bitfield-type INT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression
bitop-type INT13-C. Use bitwise operators only on unsigned operands
compound-ifelse EXP19-C. Use braces for the body of an if, for, or while statement
compound-loop EXP19-C. Use braces for the body of an if, for, or while statement
empty-parameter-list DCL20-C. Explicitly specify void when a function accepts no arguments
enum-implicit-value INT09-C. Ensure enumeration constants map to unique values
error-information-unused-computed EXP12-C. Do not ignore values returned by functions
evaluation-order EXP30-C. Do not depend on the order of evaluation for side effects
evaluation-order EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place
file-dereference FIO38-C. Do not copy a FILE object
float-comparison FLP02-C. Avoid using floating-point numbers when precise computation is needed
float-division-by-zero FLP03-C. Detect and handle floating-point errors
for-loop-float FLP30-C. Do not use floating-point variables as loop counters
function-pointer-integer-cast INT36-C. Converting a pointer to integer or integer to pointer
function-pointer-integer-cast-implicit INT36-C. Converting a pointer to integer or integer to pointer
function-prototype DCL07-C. Include the appropriate type information in function declarators
function-return-type DCL31-C. Declare identifiers before using them
future-library-use DCL37-C. Do not declare or define a reserved identifier
future-library-use DCL41-C. Do not declare variables inside a switch statement before the first case label
global-object-scope DCL15-C. Declare file-scope objects or functions that do not need external linkage as static
global-object-scope DCL19-C. Minimize the scope of variables and functions
implicit-function-declaration DCL31-C. Declare identifiers before using them
implicit-function-declaration DCL07-C. Include the appropriate type information in function declarators
int-division-by-zero INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
int-modulo-by-zero INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors
integer-overflow INT30-C. Ensure that unsigned integer operations do not wrap
integer-overflow INT32-C. Ensure that operations on signed integers do not result in overflow
integer-overflow INT08-C. Verify that all integer values are in range
invalid-free MEM34-C. Only free memory allocated dynamically
language-override DCL37-C. Do not declare or define a reserved identifier
language-override DCL41-C. Do not declare variables inside a switch statement before the first case label
language-override-c99 DCL37-C. Do not declare or define a reserved identifier
language-override-c99 DCL41-C. Do not declare variables inside a switch statement before the first case label
local-object-scope DCL19-C. Minimize the scope of variables and functions
logop-side-effect EXP02-C. Be aware of the short-circuit behavior of the logical AND and OR operators
long-suffix DCL16-C. Use "L," not "l," to indicate a long value
macro-argument-hash PRE32-C. Do not use preprocessor directives in invocations of function-like macros
macro-function-like PRE00-C. Prefer inline or static functions to function-like macros
macro-parameter-parentheses PRE01-C. Use parentheses within macros around parameter names
missing-else MSC01-C. Strive for logical completeness
mline-comment MSC04-C. Use comments consistently and in a readable fashion
multiple-include PRE06-C. Enclose header files in an inclusion guard
null-dereferencing EXP34-C. Do not dereference null pointers
null-dereferencing ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
octal-constant DCL18-C. Do not begin integer constants with 0 when specifying a decimal value
parameter-missing-const DCL00-C. Const-qualify immutable objects
parameter-missing-const DCL13-C. Declare function parameters that are pointers to values not changed by the function as const
pointer-integral-cast INT36-C. Converting a pointer to integer or integer to pointer
pointer-integral-cast-implicit INT36-C. Converting a pointer to integer or integer to pointer
pointer-subtraction ARR36-C. Do not subtract or compare two pointers that do not refer to the same array
pointered-deallocation DCL30-C. Declare objects with appropriate storage durations
pointered-deallocation ARR30-C. Do not form or use out-of-bounds pointers or array subscripts
reserved-declaration DCL37-C. Do not declare or define a reserved identifier
reserved-declaration DCL41-C. Do not declare variables inside a switch statement before the first case label
reserved-declaration-c99 DCL37-C. Do not declare or define a reserved identifier
reserved-declaration-c99 DCL41-C. Do not declare variables inside a switch statement before the first case label
reserved-identifier DCL37-C. Do not declare or define a reserved identifier
reserved-identifier DCL41-C. Do not declare variables inside a switch statement before the first case label
return-implicit MSC37-C. Ensure that control never reaches the end of a non-void function
sizeof EXP44-C. Do not rely on side effects in operands to sizeof, _Alignof, or _Generic
sline-comment MSC04-C. Use comments consistently and in a readable fashion
sline-splicing MSC04-C. Use comments consistently and in a readable fashion
statement-sideeffect MSC12-C. Detect and remove code that has no effect or is never executed
static-declaration DCL36-C. Do not declare an identifier with conflicting linkage classifications
stdlib-macro-ato MSC24-C. Do not use deprecated or obsolescent functions
stdlib-macro-atoll MSC24-C. Do not use deprecated or obsolescent functions
stdlib-use-ato MSC24-C. Do not use deprecated or obsolescent functions
stdlib-use-atoll MSC24-C. Do not use deprecated or obsolescent functions
Supported, but no explicit checker DCL38-C. Use the correct syntax when declaring a flexible array member
Supported, but no explicit checker EXP32-C. Do not access a volatile object through a nonvolatile reference
Supported, but no explicit checker EXP36-C. Do not cast pointers into more strictly aligned pointer types
Supported, but no explicit checker EXP37-C. Call functions with the correct number and type of arguments
Supported, but no explicit checker EXP43-C. Avoid undefined behavior when using restrict-qualified pointers
Supported, but no explicit checker EXP45-C. Do not perform assignments in selection statements
Supported, but no explicit checker EXP46-C. Do not use a bitwise operator with a Boolean-like operand
Supported, but no explicit checker INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data
Supported, but no explicit checker INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand
Supported, but no explicit checker FLP34-C. Ensure that floating-point conversions are within range of the new type
Supported, but no explicit checker FLP36-C. Preserve precision when converting integral values to floating-point type
Supported, but no explicit checker ARR37-C. Do not add or subtract an integer to a pointer to a non-array object
Supported, but no explicit checker ARR38-C. Guarantee that library functions do not form invalid pointers
Supported, but no explicit checker STR30-C. Do not attempt to modify string literals
Supported, but no explicit checker STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator
Supported, but no explicit checker STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string
Supported, but no explicit checker STR37-C. Arguments to character-handling functions must be representable as an unsigned char
Supported, but no explicit checker MEM30-C. Do not access freed memory
Supported, but no explicit checker MEM31-C. Free dynamically allocated memory when no longer needed
Supported, but no explicit checker MEM33-C. Allocate and copy structures containing a flexible array member dynamically
Supported, but no explicit checker MEM35-C. Allocate sufficient memory for an object
Supported, but no explicit checker MEM36-C. Do not modify the alignment of objects by calling realloc()
Supported, but no explicit checker FIO37-C. Do not assume that fgets() or fgetws() returns a nonempty string when successful
Supported, but no explicit checker FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call
Supported, but no explicit checker FIO42-C. Close files when they are no longer needed
Supported, but no explicit checker ENV33-C. Do not call system()
Supported, but no explicit checker SIG30-C. Call only asynchronous-safe functions within signal handlers
Supported, but no explicit checker SIG31-C. Do not access shared objects in signal handlers
Supported, but no explicit checker SIG34-C. Do not call signal() from within interruptible signal handlers
Supported, but no explicit checker ERR30-C. Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failure
Supported, but no explicit checker ERR33-C. Detect and handle standard library errors
Supported, but no explicit checker CON30-C. Clean up thread-specific storage
Supported, but no explicit checker CON31-C. Do not destroy a mutex while it is locked
Supported, but no explicit checker CON32-C. Prevent data races when accessing bit-fields from multiple threads
Supported, but no explicit checker CON33-C. Avoid race conditions when using library functions
Supported, but no explicit checker CON35-C. Avoid deadlock by locking in a predefined order
Supported, but no explicit checker CON37-C. Do not call signal() in a multithreaded program
Supported, but no explicit checker CON39-C. Do not join or detach a thread that was previously joined or detached
Supported, but no explicit checker MSC30-C. Do not use the rand() function for generating pseudorandom numbers
Supported, but no explicit checker MSC32-C. Properly seed pseudorandom number generators
Supported, but no explicit checker MSC33-C. Do not pass invalid data to the asctime() function
Supported, but no explicit checker MSC38-C. Do not treat a predefined identifier as an object if it might only be implemented as a macro
Supported, but no explicit checker MSC40-C. Do not violate constraints
Supported, but no explicit checker CON01-C. Acquire and release synchronization primitives in the same module, at the same level of abstraction
Supported, but no explicit checker CON06-C. Ensure that every mutex outlives the data it protects
Supported, but no explicit checker DCL01-C. Do not reuse variable names in subscopes
Supported, but no explicit checker DCL10-C. Maintain the contract between the writer and caller of variadic functions
Supported, but no explicit checker DCL23-C. Guarantee that mutually visible identifiers are unique
Supported, but no explicit checker EXP03-C. Do not assume the size of a structure is the sum of the sizes of its members
Supported, but no explicit checker EXP08-C. Ensure pointer arithmetic is used correctly
Supported, but no explicit checker EXP11-C. Do not make assumptions regarding the layout of structures with bit-fields
Supported, but no explicit checker EXP20-C. Perform explicit tests to determine success, true and false, and equality
Supported, but no explicit checker FLP04-C. Check floating-point inputs for exceptional values
Supported, but no explicit checker FLP06-C. Convert integers to floating point for floating-point operations
Supported, but no explicit checker INT07-C. Use only explicitly signed or unsigned char type for numeric values
Supported, but no explicit checker INT18-C. Evaluate integer expressions in a larger size before comparing or assigning to that size
Supported, but no explicit checker MEM01-C. Store a new value in pointers immediately after free()
Supported, but no explicit checker MEM04-C. Beware of zero-length allocations
Supported, but no explicit checker MEM07-C. Ensure that the arguments to calloc(), when multiplied, do not wrap
Supported, but no explicit checker MSC13-C. Detect and remove unused values
Supported, but no explicit checker MSC15-C. Do not depend on undefined behavior
Supported, but no explicit checker MSC21-C. Use robust loop termination conditions
Supported, but no explicit checker MSC23-C. Beware of vendor-specific library and language differences
Supported, but no explicit checker PRE09-C. Do not replace secure functions with deprecated or obsolescent functions
Supported, but no explicit checker STR00-C. Represent characters using an appropriate type
Supported, but no explicit checker STR04-C. Use plain char for characters in the basic character set
Supported, but no explicit checker STR09-C. Don't assume numeric values for expressions with type plain character
Supported, but no explicit checker STR11-C. Do not specify the bound of a character array initialized with a string literal
switch-clause-break MSC17-C. Finish every set of statements associated with a case label with a break statement
switch-default MSC01-C. Strive for logical completeness
switch-label MSC20-C. Do not use a switch statement to transfer control into a complex block
switch-skipped-code DCL41-C. Do not declare variables inside a switch statement before the first case label
trigraph PRE07-C. Avoid using repeated question marks
type-compatibility DCL40-C. Do not create incompatible declarations of the same function or object
type-specifier DCL31-C. Declare identifiers before using them
uninitialized-local-read EXP33-C. Do not read uninitialized memory
uninitialized-variable-use EXP33-C. Do not read uninitialized memory
unreachable-code MSC12-C. Detect and remove code that has no effect or is never executed