C and C++


LANG.TYPE.RESTRICT : restrict修飾子の使用

要旨

関数の仮引数が restrict 修飾されています。

C90は restrict キーワードを含んでいないことに注意してください。 また、C++ も同様に含んでいません。

プロパティ

クラス名 Restrict Qualifier Used
日本語クラス名 restrict修飾子の使用
クラス分類 スタイル (style)
ニーモニック LANG.TYPE.RESTRICT
カテゴリー
MisraC2023 MisraC2023:8.14 The restrict type qualifier shall not be used
Misra2012 Misra2012:8.14 The restrict type qualifier shall not be used
TS17961 TS17961:5.32-restrict 5.32. Passing pointers into the same object as arguments to different restrict-qualified parameters
CERT-C CERT-C:EXP43-C Avoid undefined behavior when using restrict-qualified pointers
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Restrict Qualifier Used"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

typedef struct point {int *x; int *y;} mypoint;

void LANG_TYPE_RESTRICT(mypoint * restrict p){ /* 'Restrict Qualifier Used' warning issued here */               
  /* ... */
}

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

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