Daily Archives: June 1, 2016

Lint and static analysis

One static source code analysis tool I have used in the embedded environment is PC-Lint from Gimpel Software. It is a great tool for embedded development supporting a wide range of compilers. Compared to its Flexelint offering for *nix platforms, PC-Lint is priced under $400 U.S.

Together with library and environment options files, it features author options files for linting code by MISRA C/C++ guidelines (safety critical systems) for example. Tune the options files according to code review and unit test requirements to produce useful report results.

In its 9.0.0L release it is gradually moving to full support of C++11/14.

I have used the tool with a Python filter fed into asciidoc to neatly sort through lint results and present them in HTML format.

There are many other enterprise class tools in the marketplace designed for team support ( Klocwork, PVS-Studio ) as well as dynamic analysis tools ( VectorCAST ).

Examine both multi-language and C/C++ free and open source tools https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis .

Use of lint ought to be built in to the build and release process or at minimum in the code review process.