Versions Compared

Key

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

Wiki Markup
An identifier declared in different scopes or multiple times within the same scope can be made to refer to the same object or function by _linkage_.  An identifier can be classified as _externally linked_, _internally linked_, or _not linked_.  These three kinds of linkage have the following characteristics \[[Kirch-Prinz 022002|AA. Bibliography#Kirch-Prinz 02]\]:

...

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

DCL36-C

medium

probable

medium

P8

L2

Automated Detection

The LDRA tool suite Version 7.6.0 can detect violations of this rule.

Splint Version 3.1.1 can detect violations of this rule.

GCC Compiler Version 4.4.0 can detect violations of this rule.

...

Tool

Version

Checker

Description

Section

LDRA tool suite

Include Page
c:LDRA_V
c:LDRA_V

 

 

Section

Splint

Include Page
c:Splint_V
c:Splint_V

 

 

Section

GCC

Include Page
c:GCC_V
c:GCC_V

 

 

Section

Klocwork

Include Page
c:Klocwork_V
c:Klocwork_V
Section

IF_DEF_IN_HEADER_DECL

...

IF_MULTI_DECL

...

 

Related Vulnerabilities

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

Other Languages

Related Guidelines

This rule appears in the C++ Secure Coding Standard as : DCL36-CPP. Do not declare an identifier with conflicting linkage classifications.

Bibliography

Wiki Markup
\[[Banahan 032003|AA. Bibliography#Banahan 03]\] [Section 8.2, "Declarations, Definitions and Accessibility"|http://publications.gbdirect.co.uk/c_book/chapter8/declarations_and_definitions.html]
\[[ISO/IEC 9899:1999|AA. Bibliography#ISO/IEC 9899-1999]\] Section 6.2.2, "Linkages of identifiers"
\[[Kirch-Prinz 022002|AA. Bibliography#Kirch-Prinz 02]\]
\[[MISRA 042004|AA. Bibliography#MISRA 04]\] Rule 8.1

...