The 2021a release of Polyspace® products adds improvements to many existing workflows. For instance, you can:
- Run a faster analysis and view more precise results on C/C++ code that uses the AUTOSAR RTE API
- Run Polyspace Code Prover™ analysis on a project that contains a mix of C and C++ source files
- Reduce the software complexity of your code with the new customizable Guidelines checkers
Learn more about these and other features below.
Improved Support for AUTOSAR Integration and Component Based Analyses
The 2021a release of Polyspace Code Prover runs faster and shows more precise results on C/C++ code that uses the AUTOSAR RTE API. If you want to check only for AUTOSAR standard compliance (in addition to regular Polyspace Code Prover run-time checks), no special setup is required for C/C++ code that follows AUTOSAR specifications.
To make your integration analysis AUTOSAR-aware, you can:
- Choose
autosar
for the new Libraries used (-library
) option. The analysis uses smart stubs for functions from the AUTOSAR library instead of generic stubs and does not attempt to check the function implementations. Using this option enables faster analysis without losing precision and it triggers library-specific checks on function calls.
![Libraries used - autosar](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image.adapt.full.medium.png/1697615137249.png)
- Determine if the arguments to a function from the RTE API follow the AUTOSAR standard specifications. The analysis flags these violations with the new run-time check
Non-compliance with AUTOSAR specification
. For instance, if a function expects an initialized buffer, the check is red if you pass an uninitialized buffer by pointer.
In addition, if you run a component-based analysis with Polyspace for AUTOSAR, the analysis results now contain a list of recognized RTE API functions and events. To view the list, click the ReleaseNote link in the navigation on the left.
![ReaseNotes navigation](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image_copy.adapt.full.medium.png/1697615137274.png)
You can use this list to:
- Determine if the analysis emulates a given RTE API function precisely and checks the function arguments for compliance with the AUTOSAR standard and relevant design specifications
- Navigate from an RTE API function or event name to the function description in the AUTOSAR standard
Reduce Software Complexity with New Guidelines Checkers
In R2021a, Polyspace Bug Finder™ introduces a new category of checkers called Guidelines. This category contains customizable software complexity checkers that check for various quantifiable code complexity metrics such as the number of paths and cyclomatic complexity. Use these checkers to detect complex modules early in the development cycle to reduce later refactoring efforts.
![Coding Standards & Code Metrics](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image_copy_copy_847123013.adapt.full.medium.png/1697615137318.png)
Analyze Projects Containing a Mix of C and C++ Source Files
In R2021a, Polyspace Code Prover supports the analysis of projects that contain a mix of C and C++ source files. When you specify C-CPP for the Source code language (-lang) option, Polyspace compiles the C files of your project in C, and C++ files in C++. After the compilation, Polyspace verifies such mixed projects as C++ projects. You no longer have to separate C files from a C++ project to successfully compile the project.
![Analyze Projects Containing a Mix of C and C++ Source Files](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image_copy_copy_8471.adapt.full.medium.png/1697615137352.png)
Improved Integration with Simulink
With R2021a, you can analyze code generated in an earlier release of Simulink® by using a later release of Polyspace. Use the function pslinkrunCrossRelease
to enable this cross-release workflow. Your Polyspace version must be later than your Simulink version, and your Simulink must be R2020b or later.
See also:
Polyspace Access Web Interface Improvements
In R2021a, Polyspace Access web interface introduces new features to improve installation and review workflows.
Polyspace Access Review
- Define and share custom filters:
Create custom families of filters to tailor the scope of your review to results that are relevant to only your project or organization. You can then share the customized filters with other Polyspace Access users.
![Define and share custom filters](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image_copy_copy.adapt.full.medium.png/1697615137386.png)
For more information, see: Create Custom Filter Groups in Polyspace Access Web Interface.
- View previous findings fixed in the current run:
When you compare two project runs, you can filter for and view the source code and result details for findings from the baseline run that are fixed in the current run. Use this filter to review the details of previous findings from the baseline run that are no longer in the current run.
![Compare Analysis Results to Previous Runs](https://se.mathworks.com/products/polyspace/static-analysis-notes/whats-new-polyspace-r2021a/_jcr_content/mainParsys/band_copy_copy/mainParsys/column_0/1/image_copy_copy_copy.adapt.full.medium.png/1697615137422.png)
Polyspace Access Installation
- Configure pagination when using LDAP server:
Typically, LDAP servers limit the number of entries that they return in a result set. If the number of entries exceeds that limit, the result set is truncated. Enable LDAP pagination to retrieve all entries from the LDAP server when you query a large set of users.
- Simplified license management:
If you upload analysis results to the Polyspace Access database, it does not trigger a Polyspace Access license checkout. If you upload the results as part of an automation script, you no longer consume a license when the script runs.
Other Features
Apart from these major features, R2021a offers other improvements such as:
- Support for Visual Studio 2019 and GCC version 8.x compilers
- Support for additional AUTOSAR C++ 14, CERT C++ rules, and MISRA C++ rules
- Fewer steps to integrate Polyspace with current or earlier releases of MATLAB® and Simulink
- Ability to start Polyspace analysis of generated code without explicitly generating the code first
- Improved logging for Polyspace Access services in the Admin user interface
For details, see the following release notes: