C and C++


LANG.STRUCT.DECL.EAWS : サイズが明示されていない外部結合配列

要旨

外部結合を持つ配列が extern で宣言されましたが、そのサイズが明示されていません。

プロパティ

クラス名 Extern Array Without Size
日本語クラス名 サイズが明示されていない外部結合配列
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.DECL.EAWS
カテゴリー
MisraC2023 MisraC2023:8.11 When an array with external linkage is declared, its size should be explicitly specified
Misra2012 Misra2012:8.11 When an array with external linkage is declared, its size should be explicitly specified
Misra2004 Misra2004:8.12 When an array is declared with external linkage, its size shall be stated explicitly or defined implicitly by initialisation
AUTOSARC++14 AUTOSARC++14:A3-1-4 When an array with external linkage is declared, its size shall be stated explicitly.
  AUTOSARC++14:A18-1-1 C-style arrays shall not be used.
MisraC++2008 MisraC++2008:3-1-3 When an array is declared, its size shall either be stated explicitly or defined implicitly by initialization.
MisraC++2023 MisraC++2023:6.0.2 When an array with external linkage is declared, its size should be explicitly specified
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Extern Array Without Size"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

extern int extarrno[];            /* 'Extern Array Without Size' warning issued here */ 

extern int extarryes[4];                                          /* ok: size specified */

extern int extarrdef[] = {1,2,3};                                 /* ok: defining declaration */

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

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