C and C++


LANG.STRUCT.DECL.MGT : グローバル変数の異なった型での宣言

要旨

グローバル変数が複数箇所でそれぞれ異なった型で宣言されています。

プロパティ

クラス名 Global Variable Declared with Different Types
日本語クラス名 グローバル変数の異なった型での宣言
クラス分類 信頼性 (reliability)
ニーモニック LANG.STRUCT.DECL.MGT
カテゴリー
MisraC2023 MisraC2023:8.3 All declarations of an object or function shall use the same names and type qualifiers
Misra2012 Misra2012:8.3 All declarations of an object or function shall use the same names and type qualifiers
Misra2004 Misra2004:8.3 For each function parameter the type given in the declaration and definition shall be identical, and the return types shall also be identical
  Misra2004:8.4 If objects or functions are declared more than once their types shall be compatible
  Misra2004:16.4 The identifiers used in the declaration and definition of a function shall be identical
AUTOSARC++14 AUTOSARC++14:M3-2-1 All declarations of an object or function shall have compatible types.
  AUTOSARC++14:M3-9-1 The types used for an object, a function return type, or a function parameter shall be token-for-token identical in all declarations and re-declarations.
MisraC++2008 MisraC++2008:3-2-1 All declarations of an object or function shall have compatible types.
  MisraC++2008:3-9-1 The types used for an object, a function return type, or a function parameter shall be token-for-token identical in all declarations and re-declarations.
MisraC++2023 MisraC++2023:6.2.2 All declarations of a variable or function shall have the same type
CWE CWE:710 Improper Adherence to Coding Standards
TS17961 TS17961:5.13-funcdecl 5.13. Declaring the same function or object in incompatible ways
CERT-C CERT-C:DCL23-C Guarantee that mutually visible identifiers are unique
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Global Variable Declared with Different Types"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

以下の2つの宣言で、ワーニングが発生します。

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

int params[10];
/* LANG.STRUCT.DECL.MGT.b.c */

int params[]; /* 'Global Variable Declared with Different Types' warning issued here */

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

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