Release 2020a of the Polyspace® products complete many existing workflows and introduce some new capabilities. Polyspace Bug Finder™ now supports all CERT C rules, and Polyspace products can analyze all forms of C/C++ code that are imported into Simulink. New key features include checkers that detect potential performance problems in C++ code, flag functions from a user-curated list of deprecated functions, and check for issues in initialization code.
Complete Support for CERT C Rules
As of R2020a, Polyspace Bug Finder supports all CERT C rules (as stated on the SEI CERT C Coding Standard wiki as of October 30, 2019). You can now check for hardcoded sensitive data and common thread-safety issues in addition to previous checkers.
Custom Code Support in Simulink
You can perform checks on all forms of handwritten C/C++ code imported into Simulink directly from the Simulink editor. In R2020a, custom code support includes isolated scripts written directly in the new C Function block in addition to library functions called from C Caller blocks and Stateflow® charts.
For tutorials on analyzing custom code, see Polyspace analysis in Simulink.
R2020a introduces a new category of checkers that detect potential performance bottlenecks in C++ code. The checkers detect issues such as potentially expensive, but unnecessary, copy operations or C++ standard library functions that have more efficient alternatives.
See performance defects for details.
Checkers for Deprecated Functions
With R2020a, you can customize Polyspace Bug Finder checkers. For instance, you can create a list of forbidden functions and use the checkers to clean up legacy code that might use those functions. In C++, you can even forbid specific function overloads and leave the others alone.
Checks for Issues in Initialization Code
Polyspace Code Prover™ can check for non-initialized global variables. Prior to R2020a, the check for initialization occurred only when you read global variables. With R2020a, you can mark a section of code as initialization code and check if it initializes all global variables explicitly. You can also check for other run-time errors in the initialization code only and detect and fix them before continuing the remaining analysis.
Improvements in Polyspace Access Products
With R2020a, you can perform the following tasks with Polyspace Access products to improve your review workflow such as:
- See the review history of results and track previous changes in status or comments.
- Navigate from a section of generated code to the corresponding blocks in the Simulink model.
- Customize the criteria/thresholds used to evaluate Polyspace results against Software Quality Objectives (SQOs).
- View the analysis options associated with a specific result set.
- Export only those email notification results that fail to meet the criteria in a predefined, or user-customized, SQO.
- See a graphical view of the function call sequence leading to the current result.
- Navigate from violations of AUTOSAR specifications to a readable version of the specifications in ARXML format.
- Create Redmine tickets for Polyspace results if you use the Redmine issue tracking tool to track bugs.
Apart from these major features, R2020a offers other improvements such as:
- Microchip compiler support
- Increase in AUTOSAR C++14 support
- Example values for system inputs that lead to numerical defects
For details, see:
Ask the Expert
Puneet Lal, Polyspace Static Analysis Notes Contact Expert