C and C++


LANG.STRUCT.DECL.MG : グローバル変数の複数宣言

要旨

1つのグローバル変数が複数の箇所で宣言されています。

プロパティ

クラス名 Multiple Declarations of a Global
日本語クラス名 グローバル変数の複数宣言
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.DECL.MG
カテゴリー
MisraC2023 MisraC2023:8.5 An external object or function shall be declared once in one and only one file
Misra2012 Misra2012:8.5 An external object or function shall be declared once in one and only one file
Misra2004 Misra2004:8.8 An external object or function shall be declared in one and only one file
AUTOSARC++14 AUTOSARC++14:M3-2-3 A type, object or function that is used in multiple translation units shall be declared in one and only one file.
MisraC++2008 MisraC++2008:3-2-3 A type, object or function that is used in multiple translation units shall be declared in one and only one file.
CWE CWE:710 Improper Adherence to Coding Standards
JSF++ JSF++:40 Every implementation file shall include the header files that uniquely define the inline functions, types, and templates used.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Multiple Declarations of a Global"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

/* LANG.STRUCT.DECL.MG.a.c */

extern int Pid;
/* LANG.STRUCT.DECL.MG.b.c */

extern int Pid; /* 'Multiple Declarations of a Global' warning issued here */

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

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