CodePeer 3 is the most advanced static analysis tool available for Ada – now qualified under DO-178B and EN50128 with support for IEEE 754 floating point semantics and enhanced support for project files.It can detect several of the “Top 25 Most Dangerous Software Errors” in the Common Weakness Enumeration: CWE-120 (Classic Buffer Overflow), CWE-131 (Incorrect Calculation of Buffer Size), and CWE-190 (Integer Overflow or Wraparound).

CodePeer detects errors before they grow into expensive problems. Serving as an efficient and accurate code reviewer, CodePeer identifies constructs that are likely to lead to run-time errors such as buffer overflows. And it flags legal but suspect code, typical of logic errors. Going well beyond the capabilities of typical static analysis tools, CodePeer also produces a detailed analysis of each subprogram, including pre- and post-conditions. Such an analysis makes it easier to find potential bugs and vulnerabilities early: if the implicit specification deduced by CodePeer does not match the component’s requirements, a reviewer is alerted immediately to a likely logic error. During system development, CodePeer can help prevent errors from being introduced, and it can also be used as part of a systematic code review process to dramatically increase the efficiency of human review. Furthermore, CodePeer can be used retrospectively on existing code, to detect and remove latent bugs.

  • More precise diagnostic messages and fewer “false positives”
  • An independent Ada front end, making it even more efficient and flexible.
  • Better integration with AdaCore’s two IDEs: GNAT Programming Studio (GPS) and GNATbench (the GNAT Pro Ada plug-in for Eclipse and Wind River Systems Workbench).
  • Support for floating point overflow on unconstrained types.
  • The ability to supply target configuration files
  • Improved support for existing codebases in Ada 83
  • Improved message review capabilities are now available through pragma Annotate, and the tool provides new warnings when a formal parameter could be declared with a more restrictive mode.

For more information about CodePeer 3 please contact