C and C++


LANG.TYPE.UNION : 共用体の使用

要旨

宣言で共用体が使用されています。

プロパティ

クラス名 Union Type
日本語クラス名 共用体の使用
クラス分類 スタイル (style)
ニーモニック LANG.TYPE.UNION
カテゴリー
MisraC2023 MisraC2023:19.2 The union keyword should not be used
Misra2012 Misra2012:19.2 The union keyword should not be used
Misra2004 Misra2004:18.4 Unions shall not be used
AUTOSARC++14 AUTOSARC++14:A9-5-1 Unions shall not be used.
MisraC++2008 MisraC++2008:9-5-1 Unions shall not be used.
MisraC++2023 MisraC++2023:12.3.1 The union keyword shall not be used
JSF++ JSF++:153 Unions shall not be used.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Union Type"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

union utag {int i; double d;};           /* 'Union Type' warning issued here */
  
union {int i; double d;} anonu ;         /* 'Union Type' warning issued here */

typedef union A {int i; double d;} B;    /* 'Union Type' warning issued here */

void f_arg (union {int i; double d;} y){ /* 'Union Type' warning issued here */
  return;
}

union {int i; double d;} f_ret (void);   /* 'Union Type' warning issued here */

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

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