Versions Compared

Key

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

...

Allowing too many objects to have external linkage can use up descriptive identifiers, leading to more complicated identifiers, violations of abstraction models, and possible name conflicts with libraries. If the compilation unit implements a data abstraction, it may also expose invocations of private functions from outside the abstraction.

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

DCL15-C

Low

Unlikely

Low

P3

L3

Automated Detection

Tool

Version

Checker

Description

Astrée
Include Page
Astrée_V
Astrée_V
global-object-scopeFully checked
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
LANG.STRUCT.SCOPE.FILEScope could be file static

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CC2.DCL15

Fully implemented

LDRA tool suite
Include Page
LDRA_V
LDRA_V

27 D
61 D
553 S

Fully implemented

Parasoft C/C++test
Include Page
c:
Parasoft_V
c:
Parasoft_V
MISRA-023Fully implemented
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

1504
1531

Fully implemented
RuleChecker
Include Page
RuleChecker_V
RuleChecker_V
global-object-scopeFully checked
Splint
Include Page
Splint_V
Splint_V
 

 



Related Vulnerabilities

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

Related Guidelines

Bibliography

ISO/IEC 9899:2011Subclause 6.2.2, "Linkages of Identifiers"

...


...