C and C++


LANG.CAST.NULL.INT : NULL Used as Integer

Summary

The identifier NULL is used as an integer.

Properties

Class Name NULL Used as Integer
Significance style
Mnemonic LANG.CAST.NULL.INT
Categories
AUTOSARC++14 AUTOSARC++14:M4-10-1 NULL shall not be used as an integer value.
MisraC++2008 MisraC++2008:4-10-1 NULL shall not be used as an integer value.
JSF++ JSF++:183 Every possible measure should be taken to avoid type casting.
Availability Available for C++ only (not C).
Enabling Checks for this warning class are disabled by default, and require the unnormalized C ASTs for the project. To enable them, add the following WARNING_FILTER rule and RETAIN_UNNORMALIZED_C_AST specification to the project configuration file.
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="NULL Used as Integer"
Note that retaining the unnormalized ASTs will increase the disk space used to store the project representation, and may make the analysis take longer.

Example

#include <cstddef>

void f1 ( int a );
void f2 ( int * a);
void f3 ( void ){
    f1 ( NULL );              /* 'NULL Used as Integer' warning issued here */
    f2 ( NULL );
    int i;
    i = NULL;                 /* 'NULL Used as Integer' warning issued here */
    char *p = NULL;
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.