Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Many functions return useful values whether or not the function has side effects. In most cases, this value is used to signify whether the function successfully completed its task or if some error occurred. (See ERR02-C. Avoid in-band error indicators.) Other times, the value is the result of some computation and is an integral part of the function's API.

...

EXP12-EX1: If the return value is inconsequential or if any errors can be safely ignored, such as for functions called because of their side effects, the function should be explicitly cast to void to signify programmer intent. For an example of this exception, see "Compliant Solution (Remove Existing Destination File)" under the section "Portable Behavior" in FIO10-C. Take care when using the rename() function.

EXP12-EX2: If a function cannot fail or if the return value cannot signify an error condition, the return value may be ignored. Such functions should be added to a whitelist when automatic checkers are used.

...

Tool

Version

Checker

Description

Coverity Prevent

Include Page
Coverity_V
Coverity_V

CHECKED_RETURN

Finds inconsistencies in how function call return values are handled. Coverity Prevent cannot discover all violations of this recommendation, so further verification is necessary.

Splint

Include Page
Splint_V
Splint_V

 

 

Compass/ROSE

 

 

 

Klocwork

Include Page
Klocwork_V
Klocwork_V

SV.RVT.RETVAL_NOTTESTED

 

LDRA tool suite

Include Page
LDRA_V
LDRA_V

382 S

Fully implemented.

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

ignrtrn

Fully implemented.

...

ISO/IEC 9899:2011 Section 6.8.3, "Expression and null statements"

ISO/IEC TR 24772 "CSJ Passing parameters and return values"

...