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++
Binaries


LANG.STRUCT.UUVAL : Unused Value

Summary

A variable is assigned a value, but that value is never subsequently used on any execution path.

Note

Warnings for unused values arising from assignments to constants are only issued if configuration parameter REPORT_UNUSED_ASSIGNMENTS_FROM_CONSTANTS is set to Yes. Its factory setting is No, so you will need to explicitly change the setting if you want CodeSonar to issue Unused Value warnings in these cases.

Properties

Class Name Unused Value
Significance redundancy
Mnemonic LANG.STRUCT.UUVAL
Categories
MisraC2025 MisraC2025:2.2 A project shall not contain dead code
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.
Availability Available for C and C++.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Unused Value"

Example

#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;
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.

 

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