Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Edited by sciSpider v2.4 (sch jbop) (X_X)@==(Q_Q)@

...

This recommendation is related to MSC07-C. Detect and remove dead code.

...

Noncompliant Code Example (Assignment)

In this example, the comparison of a to b has no effect.

...

This is likely a case of the programmer mistakenly using the equals operator == instead of the assignment operator =.

Compliant Solution (Assignment)

The assignment of b to a is now properly performed.

Code Block
bgColor#ccccff
int a;
int b;
/* ... */
a = b;

...

Noncompliant Code Example (Dereference)

In this example, p is incremented and then dereferenced. However, *p has no effect.

Code Block
bgColor#FFCCCC
int *p;
/* ... */
*p++;

Compliant Solution (Dereference)

Correcting this example depends on the intent of the programmer. For instance, if dereferencing p was a mistake, then p should not be dereferenced.

...

Code Block
bgColor#ccccff
int *p;
/* ... */
(*p)++;

Compliant Solution (Memory Mapped Devices)

Another possibility is that p is being used to reference a memory-mapped device. In this case, the variable p should be declared as volatile.

Code Block
bgColor#ccccff
volatile int *p;
/* ... */
(void) *p++;

Risk Assessment

The presence of code that has no effect can indicate logic errors that may result in unexpected behavior and vulnerabilities.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

MSC12-A C

low

unlikely

medium

P2

L3

Automated Detection

The LDRA tool suite V 7.6.0 is able to can detect violations of this recommendation.

...

The Coverity Prevent NO_EFFECT checker finds statements or expressions that do not accomplish anything, or statements that perform an unintended action.

Related Vulnerabilities

Search for vulnerabilities resulting from the violation of this rule on the CERT website.

References

Wiki Markup
\[[Coverity 07|AA. C References#Coverity 07]\]
\[[ISO/IEC PDTR 24772|AA. C References#ISO/IEC PDTR 24772]\] "BRS Leveraging human experience," "BVQ Unspecified Functionality," "KOA Likely incorrect expressions," and "XYQ Dead and Deactivated Code"
\[[MISRA 04|AA. C References#MISRA 04]\] Rule 14.1 and Rule 14.2

...

      13. Miscellaneous (MSC)       MSC13-A. Detect and remove unused values Image Added