C and C++ Binaries


LANG.STRUCT.UUVAL : 未使用の値

要旨

変数に代入された値は、その後の実行パスで使用されていません。

Note

定数への代入によって発生する未使用の値に対する警告は、プロジェクト設定ファイルにおいて REPORT_UNUSED_ASSIGNMENTS_FROM_CONSTANTSYesに設定されている場合にのみ発行されます。 デフォルトではこの設定はNoとなっている為、CodeSonar で未使用値の警告を発行する場合は、設定を変更する必要があります。

プロパティ

クラス名 Unused Value
日本語クラス名 未使用の値
クラス分類 冗長性 (redundancy)
ニーモニック LANG.STRUCT.UUVAL
カテゴリー
MisraC2023 MisraC2023:2.2 A project shall not contain dead code
Misra2012 Misra2012:2.2 A project shall not contain dead code
Misra2004 Misra2004:14.2 All non-null statements shall either (a) have at least one side-effect however executed, or (b) cause control flow to change
AUTOSARC++14 AUTOSARC++14:A0-1-1 A project shall not contain instances of non-volatile variables being given values that are not subsequently used.
  AUTOSARC++14:M0-1-9 There shall be no dead code.
MisraC++2008 MisraC++2008:0-1-6 A project shall not contain instances of non-volatile variables being given values that are never subsequently used.
  MisraC++2008:0-1-9 There shall be no dead code.
MisraC++2023 MisraC++2023:0.1.1 A value should not be unnecessarily written to a local object
CWE CWE:563 Assignment to Variable without Use
  CWE:1164 Irrelevant Code
CERT-C CERT-C:MSC13-C Detect and remove unused values
JSF++ JSF++:187 All non-null statements shall potentially have a side-effect.
DISA-3r10 DISA-3r10:V-6149 The designer will ensure the application does not contain source code that is never invoked during operation, except for software components and libraries from approved third-party products.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Unused Value"

#include <stdlib.h>

int lang_struct_uuval_constant(void){
    int x;
    x = 3;            /* 'Unused Value' warning only issued here if
                       * REPORT_UNUSED_ASSIGNMENTS_FROM_CONSTANTS=Yes,
                       * because the assignment is to a constant.
                       */
    x = 4;
    return x;
}

int lang_struct_uuval_rand(void){
    int x;
    x = rand();       /* 'Unused Value' warning issued here regardless
                       * of setting of REPORT_UNUSED_ASSIGNMENTS_FROM_CONSTANTS,
                       * because the assignment is NOT to a constant.
                       */
    x = 4;
    return x;
}

int lang_struct_uuval_multipath(void){
    int i = rand();   /* 'Unused Value' warning issued here: this value is
                       * overwritten on both branches of the IF statement.
                       */
    int j = rand();                  /* ok: this value is used when k ≥ 5 */
    int k = rand();
    if (k < 5){
        i = k;
        j = 5;
    }
    else {
      i = 6;
    }
    return i + j;
}

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

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