Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: updated parasoft

...

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V

Supported, but no explicit checker
Clang
Include Page
Clang_V
Clang_V
-WparenthesesCan detect some instances of this rule, but does not detect all
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
LANG.STRUCT.CONDASSIG
LANG.STRUCT.SE.COND
LANG.STRUCT.USEASSIGN
Assignment in conditional
Condition contains side effects
Assignment result in expression
Compass/ROSE



Could detect violations of this recommendation by identifying any assignment expression as the top-level expression in an if or while statement

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.EXP18
CC2.EXP21

Fully implemented

GCC
Include Page
GCC_V
GCC_V


Can detect violations of this recommendation when the -Wall flag is used

Klocwork
Include Page
Klocwork_V
Klocwork_V

ASSIGCOND.CALL
ASSIGCOND.GEN
MISRA.ASSIGN.COND


LDRA tool suite
Include Page
LDRA_V
LDRA_V

114 S, 132 S

Enhanced Enforcement
Parasoft C/C++test
Include Page
Parasoft_V
Parasoft_V
BD-PB-CC, PB-35, MISRA2004-16_9, MISRA2004-13_1Implemented
Polyspace Bug FinderR2016aInvalid use of = operatorAssignment in control statement
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v
3314, 3326, 3344, 3416Partially implemented
PRQA QA-C++4.2 4071, 4074 
PVS-Studio6.22V559, V633, V699
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
AssignmentInSubExpression

...