C and C++


LANG.TYPE.IVD : Inappropriate Volatile Declaration

要旨

A variable, parameter, function return type, or member function is declared as volatile.

プロパティ

クラス名 Inappropriate Volatile Declaration
日本語クラス名 Inappropriate Volatile Declaration
クラス分類 スタイル (style)
ニーモニック LANG.TYPE.IVD
カテゴリー
AUTOSARC++14 AUTOSARC++14:A2-11-1 Volatile keyword shall not be used.
MisraC++2023 MisraC++2023:10.1.2 Volatile qualification shall be used appropriately
CERT-C CERT-C:CON02-C Do not use volatile as a synchronization primitive
JSF++ JSF++:205 The volatile keyword shall not be used unless directly interfacing with hardware.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Inappropriate Volatile Declaration"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

typedef int volatile vint;

void lang_type_ivd(volatile int i, /* 'Inappropriate Volatile Declaration' warning issued here */
                   vint vi) {      /* 'Inappropriate Volatile Declaration' warning issued here */
    volatile int x;                /* 'Inappropriate Volatile Declaration' warning issued here */
    int * volatile vpi;            /* 'Inappropriate Volatile Declaration' warning issued here */
    volatile int *pvi;                     /* ok: pvi is a nonvolatile pointer to volatile int */
}

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

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