Safety-critical code verification extended in C++ static-analysis tool

February 05, 2015 // By Graham Prophet
PRQA has added functionality in its latest releases of QA·C and QA·C++, including Dataflow, Graphical and Command Line Interfaces, support for Modern C++ features and improved coverage for MISRA C++ and HIC++

Specific upgrades include; Dataflow analysis, enhanced Graphical and Command Line Interfaces, support for the latest Modern C++ language features, and an improved level of coverage for compliance with the MISRA C++ and High Integrity C++ (HIC++) coding standards.

The Dataflow engine in both QA·C++ and QA·C can now perform pointer alias modelling on class and structure pointer members. The internal representation of class/structure members has been changed to a form which can be processed more efficiently by the SMT Solver, boosting the speed, depth and accuracy of the analysis. This has also improved analysis of pointer arithmetic and allows full pointer alias modelling of the first level of indirection.

Additional enhancements to the cross-platform architecture and updated Graphical and Command Line Interfaces include better integration to IDEs (MS Visual Studio and Eclipse), improved third party component integration to expand the list of supported software languages, plus IPv6 and multi-language support.

QA·C++ is a tool for the growing number of development teams that are transitioning to Modern C++ (C++’11 and C++’14). The tool already provides coverage of key new constructs such as rvalue references, variadic templates, user defined literals, the noexcept operator, and many more. The recent addition of extern template, default arguments and extension to this, means that QA·C++ now supports more than 60% of recently added language features.

In the latest version of QA·C++ there are also improvements in the support for both MISRA C++ and HIC++ compliance modules, and the level of coverage of the statically enforceable rules has now reached 92% and 87% respectively.