Versions Compared

Key

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

...

Improper use of macros may result in undefined behavior.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

PRE00-C

Medium

Unlikely

Medium

P4

L3

Automated Detection

ToolVersionCheckerDescription
Astrée
Include Page
Astrée_V
Astrée_V
macro-function-likeFully checked

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.PRE00

Fully implemented

Klocwork
Include Page
Klocwork_V
Klocwork_V
MISRA.DEFINE.FUNC
 

LDRA tool suite
Include Page
LDRA_V
LDRA_V

340 S

Enhanced enforcement

Parasoft C/C++test
Include Page
c:
Parasoft_V
c:
Parasoft_V
MISRA2004-19_7Fully implemented
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v
3453Fully implemented
RuleChecker
Include Page
RuleChecker_V
RuleChecker_V
macro-function-likeFully checked
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
S960
 

Related Vulnerabilities

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

Related Guidelines

Bibliography

[Dewhurst 2002]Gotcha #26, "#define Pseudofunctions"
[FSF 2005]Section 5.34, "An Inline Function Is as Fast as a Macro"
[Kettlewell 2003]
 

[Summit 2005]Question 10.4

...


...