C and C++


LANG.STRUCT.CONDASSIG : Assignment in Conditional

Summary

A condition contains an assignment.

Properties

Class Name Assignment in Conditional
Significance style
Mnemonic LANG.STRUCT.CONDASSIG
Categories
CWE CWE:481 Assigning instead of Comparing
TS17961 TS17961:5.4-boolasgn 5.4. No assignment in conditional expressions
CERT-C CERT-C:EXP45-C Do not perform assignments in selection statements
JSF++ JSF++:160 An assignment expression shall be used only as the expression in an expression statement.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Assignment in Conditional"

Example

void lang_struct_condassig(void)
{    
    int c;
    int tried[100];
    memset(tried, 0, 100 *sizeof(int));
    while (c = rand()%100 != 56) /* 'Assignment in Conditional' warning issued here */
        tried[c] = 1;
        /* ... */
}

Relevant Configuration File Parameters

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