C and C++ Binaries


LANG.STRUCT.UA : Useless Assignment

Summary

Some assignment always assigns the value that the variable being modified already has.

Properties

Class Name Useless Assignment
Significance redundancy
Mnemonic LANG.STRUCT.UA
Categories
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:M0-1-9 There shall be no dead code.
MisraC++2008 MisraC++2008:0-1-9 There shall be no dead code.
CWE CWE:1164 Irrelevant Code
CERT-C CERT-C:MSC12-C Detect and remove code that has no effect or is never executed
JSF++ JSF++:187 All non-null statements shall potentially have a side-effect.
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="Useless Assignment"

Example

int useless_assignment(void){
    int i = rand();
    int j = i + 1;
    i = j - 1;        /* 'Useless Assignment' warning issued here */
    return i;
}

Relevant Configuration File Parameters

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