UNUSED.FUNC.GEN

未使用関数

関数が定義されているが、使用されていません。

脆弱性とリスク

定義されているが、使用されていない関数は若干の影響を及ぼす可能性があります。類似した名前を持つ誤った関数が呼び出されるなど、開発において混乱を招く可能性があります。まれに、使用されない関数が最終的な実行可能ファイルに挿入され、その他の脆弱性をもたらす可能性もあります。このチェッカーはほとんどの場合、使用されない静的関数に関連しています。定義上、静的関数は翻訳単位以外から呼び出すことはできません (関数がヘッダーファイル内に存在し、複数の翻訳単位に含まれる場合を除く)。

脆弱コード例 1

コピー
  static void used() {}
  static void unused() {}
  int main() {
    used();
    return 0;
  }

上記のコード抜粋で、関数 "unused()" は静的として定義されていますが、現在の翻訳単位内で使用されないため、削除してください。Klocwork は 2 行目で UNUSED.FUNC.GEN を生成し、デベロッパーにアラートを発します。

修正コード例 1

コピー
  static void used() {}
  int main() {
    used();
    return 0;
  }

問題を修正するには、関数 “unused()” をファイルから削除してください。

脆弱コード例 2

コピー
  static void foo(int x) {}
  static void foo(int x, int y) {}
  int main() {
    foo(0,0);
    return 0;
  }

類似した状況で、多重定義された関数のコンテキストの場合、Klocwork は、1 行目に UNUSED.FUNC.GEN を生成します。

修正コード例 2

コピー
  static void used(int x, int y) {}
  int main() {
    used(0,0);
    return 0;
  }

foo の使用されないバージョン、"foo(int)" は単に削除してください。

関連チェッカー