Versions Compared

Key

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

...

Failing to understand the short-circuit behavior of the logical OR or AND operator may cause unintended program behavior.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

EXP02-C

Low

Unlikely

Medium

P2

L3

Automated Detection

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V
CERT.EXP.2
logop-side-effectFully checked
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC-EXP02Fully implemented
Compass/ROSE

 

 



Could detect possible violations of this recommendation by reporting expressions with side effects, including function calls, that appear on the right-hand side of an && or || operator

Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C3415
Klocwork
Include Page
Klocwork_V
Klocwork_V
MISRA.LOGIC.SIDEEFF
 

LDRA tool suite
Include Page
LDRA_V
LDRA_V

35 D
1 Q
133 S
406 S
408 S

Fully implemented

Parasoft C/C++test
9.5MISRA2004-12_4aFully implementedPRQA QA-C Include PagePRQA QA-C_vPRQA QA-C_v3415
Include Page
Parasoft_V
Parasoft_V
CERT_C-EXP02-a

The right-hand operand of a logical && or || operator shall not contain side effects

PC-lint Plus

Include Page
PC-lint Plus_V
PC-lint Plus_V

9007

Fully supported

Fully implemented

RuleChecker
Include Page
RuleChecker_V
RuleChecker_V
CERT.EXP.2
logop-side-effectFully checked
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
SideEffectInRightHandSideOfLogical
 

Related Vulnerabilities

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

Related Guidelines

...


...

Image Modified Image Modified Image Modified