Declaration mismatch
Mismatch between function or variable declarations
Description
This checker is deactivated in a default Polyspace® as You Code™ analysis . See Checkers Deactivated in Polyspace as You Code Analysis (Polyspace as You Code).
This defect occurs when a function or variable declaration does not match other instances of the function or variable.
Risk
When a mismatch occurs between two variable declarations in different compilation units, a typical linker follows an algorithm to pick one declaration for the variable. If you expect a variable declaration that is different from the one chosen by the linker, you can see unexpected results when the variable is used.
A similar issue can occur with mismatch in function declarations.
Fix
The fix depends on the type of declaration mismatch. If both declarations indeed refer to the same object, use the same declaration. If the declarations refer to different objects, change the names of the one of the variables. If you change a variable name, remember to make the change in all places that use the variable.
Sometimes, declaration mismatches can occur because the declarations are affected by previous preprocessing directives. For instance, a declaration occurs in a macro, and the macro is defined on one inclusion path but undefined in another. These declaration mismatches can be tricky to debug. Identify the divergence between the two inclusion paths and fix the conflicting macro definitions.
If you do not want to fix the issue, add comments to your result or code to avoid another review. See:
Address Polyspace Results Through Bug Fixes or Justifications if you review results in the Polyspace user interface.
Address Results in Polyspace Access Through Bug Fixes or Justifications (Polyspace Access) if you review results in a web browser.
Annotate Code and Hide Known or Acceptable Results if you review results in an IDE.
Examples
Result Information
| Group: Programming |
| Language: C | C++ |
| Default: On |
Command-Line Syntax:
DECL_MISMATCH
|
| Impact: High |
PQL Name:
std.defects.DECL_MISMATCH
|
Version History
Introduced in R2013bSee Also
Ignore
pragma pack directives (-ignore-pragma-pack) | Other | Find
defects (-checkers)
Topics
- Interpret Polyspace Bug Finder Results in Polyspace Platform User Interface
- Interpret Bug Finder Results in Polyspace Access Web Interface (Polyspace Access)
- Address Polyspace Results Through Bug Fixes or Justifications
- Address Results in Polyspace Access Through Bug Fixes or Justifications (Polyspace Access)