C++ Audits

From RAD Studio
Jump to: navigation, search

Go Up to C++ Audits Configuration dialog box

The following table lists C++ source code audits with short descriptions.

C++ Audits

Audit Description
AdjustedReturnValue -- Function Call Returns Value Different From Expected

Function call returns a value different from the expected value.


Check for null pointers passed as arguments to a function whose arguments are marked with the nonnull attribute.


Warn about assigning non - {0,1} values to Boolean variables.


Check, when casting a malloc'ed symbolic region to type T, whether the size is a multiple of the size of T.

CastToStruct -- Cast from Non-struct to struct Pointer

Check for cast from non-struct pointer to struct pointer.

FixedAddr -- Assignment of a Fixed Address to a Pointer

Check for assignment of a fixed address to a pointer.


Check for pointer arithmetic on locations other than array elements.

PointerSub -- Use of Pointer Subtraction to Determine Size

Check for pointer subtractions on two pointers pointing to different memory chunks.

SizeofPtr -- Use of sizeof() on a Pointer Type

Warn about unintended use of sizeof() on pointer expressions.


Check for dereferences of null pointers.

DivideZero - Check for Division by Zero

Check for division by zero.

NoReturnFunctions -- Functions that Do Not Return

Check for functions that do not return to the caller.


Check for uninitialized values being returned to the caller.


Check for uninitialized values used as branch conditions.


Check for uninitialized values used as array subscripts.


Check for assigning uninitialized values.


Check that addresses to stack memory do not escape the function.


Check for undefined results of non-assignment binary operators.

VLASize -- Variable-Length Array of Undefined Size

Check for declarations of Variable-Length Arrays of undefined or zero size.

ArrayBound -- Access to an Element Out of Array's Boundaries

Warn about buffer overflows (older checker).

ArrayBoundV2 -- Access to an Element Out of Array's Boundaries

Warn about buffer overflows (newer checker).

ReturnPtrRange -- Returned Pointer Points Outside the Object

Check for an out-of-bound pointer being returned to callers.


Warn on using a floating-point value as a loop counter.

DeadStores -- Expression Value is Not Used

Check for values stored to variables that are never read afterwards.

IdempotentOperations -- Warn About Idempotent Operations

Warn about idempotent operations.

UnreachableCode -- Check for Unreachable Code

Check unreachable code.

CFPV -- Comparing Floating-Point Values

Comparing floating-point values.

CVFCD -- Calling Virtual Functions from Constructors and Destructor

Calling virtual functions from constructors and destructor.

DCPC -- Define Copy Constructor

Define copy constructor.

IVNU -- Iteration Variable is Not Used in Loop Body

Iteration variable is not used in loop body.

OPM -- Overriding Private Method

Overriding private method.

RINF -- Redefining an Inherited Nonvirtual Function

Redefining an inherited nonvirtual function.

SFS -- Suspicious For Statement

Suspicious for statement.

SSSIDC -- switch Statement Should Include the Default Case

switch statement should include the default case.

NC -- Naming Conventions

Naming conventions.

OROT -- Overwrite Related Operators Together

Overwrite related operators together.

PVD -- Provide Virtual Destructor

Provide virtual destructor.

UCSC -- Use C++ Style Casts

Use C++ style casts.

PMSNT -- Place Methods with Same Name Together

Place methods with same name together.

RCD -- Restricted Class Declaration

Restricted class declaration.


Assignment operator.


Complex Initialization or Update Clause in for Loop.


Constructor Initialization List.

See Also