C and C++


LANG.TYPE.VMAT : Pointer to Variably-modified Array Type

要旨

An object or parameter is declared as a pointer to variably-modified array type.

This class is a strict subset of Declaration of Variable Length Array.

プロパティ

クラス名 Pointer to Variably-modified Array Type
日本語クラス名 Pointer to Variably-modified Array Type
クラス分類 スタイル (style)
ニーモニック LANG.TYPE.VMAT
カテゴリー
MisraC2023 MisraC2023:18.8 Variable-length array types shall not be used
  MisraC2023:18.10 Pointers to variably-modified array types shall not be used
Misra2012 Misra2012:18.8 Variable-length array types shall not be used
  Misra2012:18.10 Pointers to variably-modified array types shall not be used
AUTOSARC++14 AUTOSARC++14:A18-1-1 C-style arrays shall not be used.
CERT-C CERT-C:MSC23-C Beware of vendor-specific library and language differences
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Pointer to Variably-modified Array Type"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

void lang_type_vmat (unsigned int n,                   /* 'Declaration of Variable Length Array' warning issued here
                                                        * (when enabled)
                                                        * - 3 instances: one for each declaration marked with "VLA" comment.
                                                        */
                     int (* pvla) [n], /* 'Pointer to Variably-modified Array Type' warning issued here
                                        * - pointer to variably-modified array */                   /* VLA */
                     int *vlapi[n],                   /* ok: variably-modified array of pointers */ /* VLA */
                     int vlai[n],                     /* ok: not pointer-to-array type */           /* VLA */
                     int (* pfla) [5]){               /* ok: not a variably-modified array */
  /* ... */
}

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

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