What’s New in Polyspace R2018b?

The 2018b release of Polyspace Bug Finder™ and Polyspace Code Prover™ offers many new features. Highlights include easier set up, improved modularization, and increased support for security standards.

Modularization from Build Systems

In R2018b, you can reuse the modularization in your build system (makefile) to create separate Polyspace analysis modules.

Suppose a build system has the following dependencies and creates four binaries: the executables foo.exe and bar.exe, and the dynamic libraries util.dll and gui.dll.

Figure 1. Diagram showing binaries and dynamic libraries.

Figure 1. Diagram showing binaries and dynamic libraries. 

Previously, you created a single Polyspace analysis configuration from the entire build system. Or, if you knew the dependencies in your build system well, you could trace specific targets in the build system. Now, you can create one Polyspace configuration per binary in your build system without knowing any details behind how the build system works. You simply provide the build command (such as make ..) and let Polyspace do the rest.

With this ability to modularize the analysis, you get the following benefits:

  • More precise analysis: You can perform a separate Polyspace analysis for each binary in your build system. The analysis does not mix files from distinct binaries.
  • Automated modularization: You reuse the modularization in your build system to create the Polyspace analysis modules.
  • Focused analysis: You can analyze specific modules instead of your entire code base.
  • Minimal knowledge of build system required: You do not need to know the details of your build system. Simply with a -module flag, a separate options file is created for each binary in your build system. You can then analyze only the code implementation of the binaries that you are interested in.

For details, see the documentation.

CERT C++ Support and Improved CERT C Support

In R2018b, you can conform to the CERT C++ standard using Polyspace Bug Finder. You can detect C++-specific issues such as:

  • Copy constructors modifying the source during a copy
  • Conversion or deletion of pointers to incomplete classes, etc.
Figure 2. Chart showing Cert C++ rules and Polyspace checks.

Figure 2. Chart showing Cert C++ rules and Polyspace checks. 

The CERT C support has also improved, so you can now detect issues such as precision loss and thread-blocking operations.

See details of CERT C and CERT C++ coverage in the documentation.

C11 and C++14 Support

In R2018b, Polyspace can interpret the majority of C11 or C++14-specific features. If you use features from these standards, you simply specify the standard before starting the analysis. The Polyspace compiler recognizes elements specific to these standards and the analysis proceeds without compilation errors.

Figure 3. Selecting the target language.

Figure 3. Selecting the target language. 

See support for language standards in the documentation.

Visualization Aids and Quick Filters for AUTOSAR Software Components

Polyspace Code Prover now includes direct support for the AUTOSAR methodology of software development.

You can now see a visual representation of your complete application layer with all software components. You can also get an overview of Polyspace Code Prover results for each software component. Drill down to the details of each component’s behavior, including:

  • Entry-point functions and their callees
  • Files containing these functions

The search capability for AUTOSAR-specific results is also improved in R2018b. You can now search within your entire application layer for very specific details. You can create quick filters for:

  • Software components that have qualified names starting with a specific string. You can use regular expressions for the pattern matching.
  • Software components with code implementations that compiled successfully.
  • Software components that have red checks in the Polyspace Code Prover results.

With the improved search and visualization, you can do a more focused review and track information easily. For instance, each software component is shown with the color of the worst verification result. If the code implementation of a software component contains red checks, the corresponding icon is red. You can use the icon colors to quickly focus on the software components that need attention.

Figure 4. Graphical view of software components.

Figure 4. Graphical view of software components.

See the documentation for details.

Other Features

Apart from these major features, R2018b offers other improvements such as:

  • Automatic detection of more types of thread-creation functions
  • Improved presentation of results for C++-specific checks
  • Ability to open header files directly from the point of inclusion
  • Support for compilers such as Renesas

For details, see: