MISRA C:2012 Rule 8.8
The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage
Description
Rule Definition
The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage.
Rationale
If you do not use the static
specifier consistently in all declarations of
objects with internal linkage, you might declare the same object with external and internal
linkage.
In this situation, the linkage follows the earlier specification that is visible (C99 Standard, Section 6.2.2). For instance, if the earlier specification indicates internal linkage, the object has internal linkage even though the latter specification indicates external linkage. If you notice the latter specification alone, you might expect otherwise.
Polyspace Implementation
The rule checker detects situations where:
The same object is declared multiple times with different storage specifiers.
The same function is declared and defined with different storage specifiers.
Troubleshooting
If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Declarations and Definitions |
Category: Required |
AGC Category: Required |
Version History
Introduced in R2014b