EN JP CN

UNUSED.FUNC.GEN

UNUSED.FUNC.GEN

未使用関数

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

脆弱性とリスク

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

脆弱コード例 1

1  static void used() {}
2  static void unused() {}
3  int main() {
4    used();
5    return 0;
6  }

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

修正コード例 1

1  static void used() {}
2  int main() {
3    used();
4    return 0;
5  }

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

脆弱コード例 2

1  static void foo(int x) {}
2  static void foo(int x, int y) {}
3  int main() {
4    foo(0,0);
5    return 0;
6  }

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

修正コード例 2

1  static void used(int x, int y) {}
2  int main() {
3    used(0,0);
4    return 0;
5  }

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

関連チェッカー