C and C++


LANG.CAST.NULL.INT : 整数値として使用されるNULL

要旨

識別子NULLが、整数値として使用されています。

プロパティ

クラス名 NULL Used as Integer
日本語クラス名 整数値として使用されるNULL
クラス分類 スタイル (style)
ニーモニック LANG.CAST.NULL.INT
カテゴリー
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.
対応言語 C++ のみ利用可能です。 C は利用できません。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="NULL Used as Integer"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

#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;
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。