C and C++


LANG.STRUCT.INIT.PIAGG : 一部未初期化のある集成体型

要旨

集成体型の一部が初期化されていません。

プロパティ

クラス名 Partially Uninitialized Aggregate
日本語クラス名 一部未初期化のある集成体型
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.INIT.PIAGG
カテゴリー
MisraC++2023 MisraC++2023:11.6.1 All variables should be initialized
CWE CWE:1419 Incorrect Initialization of Resource
JSF++ JSF++:144 Braces shall be used to indicate and match the structure in the non-zero initialization of arrays and structures.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Partially Uninitialized Aggregate"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

typedef struct { int x, y; }  point;
typedef struct { point beg; point end; } line ;

point p_under = {1};       /* 'Partially Uninitialized Aggregate' warning issued here */ 
point p_ok = {1,2};                                         /* fully initialized */ 

line l_wayunder = {1};     /* 'Partially Uninitialized Aggregate' warning issued here */ 
line l_under = {{1,2},{3}};/* 'Partially Uninitialized Aggregate warning' issued here */ 
line l_ok = {{1,2},{3,4}};                                  /* fully initialized */

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

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