C and C++


IO.FILEDEREF : ファイルポインタ参照

要旨

ファイルポインタ型の値を参照しようとしています。

プロパティ

クラス名 FILE* Dereference
日本語クラス名 ファイルポインタ参照
クラス分類 スタイル (style)
ニーモニック IO.FILEDEREF
カテゴリー
MisraC2023 MisraC2023:22.5 A pointer to a FILE object shall not be dereferenced
Misra2012 Misra2012:22.5 A pointer to a FILE object shall not be dereferenced
TS17961 TS17961:5.12-filecpy 5.12. Copying a FILE object
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="FILE* Dereference"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

#include <stdio.h>

typedef FILE * filestar;
typedef struct { FILE * fld; } mystruct;
FILE *fpfn(void);

void deref_filestar(FILE* plainparam,
                    filestar tdparam,
                    mystruct sparam)
{
    *plainparam;      /* 'FILE* Dereference' warning issued here */
    *tdparam;         /* 'FILE* Dereference' warning issued here */
    *(sparam.fld);    /* 'FILE* Dereference' warning issued here */
    *(fpfn());        /* 'FILE* Dereference' warning issued here */
}

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

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