JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
C and C++


LANG.STRUCT.SCOPE.FILE : ファイルスコープの可能性

要旨

ファイルスコープでのみ使用されている変数が、グローバルスコープで定義されています。

設定ファイルパラメータ SCOPE_CHECK_SUGGESTS_LOCAL_STATICNo に設定されている場合、ローカルスコープとなる可能性の変数も含みます。 (そうでない場合は(ローカルスコープの可能性) としてレポートされます)。

プロパティ

クラス名 Scope Could Be File Static
日本語クラス名 ファイルスコープの可能性
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.SCOPE.FILE
カテゴリー
MisraC2025 MisraC2025:1.5 Obsolescent language features shall not be used
  MisraC2025:8.7 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit
  MisraC2025:8.8 The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage
MisraC2023 MisraC2023:1.5 Obsolescent language features shall not be used
  MisraC2023:8.7 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit
  MisraC2023:8.8 The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage
Misra2012 Misra2012:1.5 Obsolescent language features shall not be used
  Misra2012:8.7 Functions and objects should not be defined with external linkage if they are referenced in only one translation unit
  Misra2012:8.8 The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage
Misra2004 Misra2004:8.10 All declarations and definitions of objects or functions at file scope shall have internal linkage unless external linkage is required
  Misra2004:8.11 The static storage class specifier shall be used in definitions and declarations of objects and functions that have internal linkage
CWE CWE:1126 Declaration of Variable with Unnecessarily Wide Scope
CERT-C CERT-C:DCL15-C Declare file-scope objects or functions that do not need external linkage as static
  CERT-C:DCL19-C Minimize the scope of variables and functions
JSF++ JSF++:136 Declarations should be at the smallest feasible scope.
  JSF++:137 All declarations at file scope should be static where possible.
POW10 POW10:6 Declare data objects at the smallest possible level of scope.
JPL JPL:13 Declare data objects at smallest possible level of scope.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Scope Could Be File Static"

以下は、myfile.c が変数 myint を参照している唯一のファイルの例です。

int myint = 5;  /* 'Scope Could Be File Static' warning issued here */

void modify_int(int i){
    myint += i;
}

int get_myint(void){
    return myint;
}

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

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

 

To report problems with this documentation, please visit https://support.codesecure.com/.