Intermodular analysis of C++ projects in PVS-Studio
Recently PVS-Studio has implemented a major feature—we supported intermodular analysis of C++ projects. This article covers our and other tools' implementations. You'll also find out how to try this feature and what we managed to detect using it.
Intermodular analysis of C++ projects in PVS-Studio
by Oleg Lisiy, Sergey Larin
From the article:
We can't apply the approach above to the PVS-Studio tool. Our analyzer's main difference from compilers is that it doesn't form intermediate representation that is abstracted from the language context. Therefore, to read a symbol from another module, the tool has to translate it again and represent a program as in-memory data structures (parse tree, control flow graph, etc). Data flow analysis may also require parsing the entire dependency graph by symbols in different modules. Such a task may take a long time. So, we collect information about symbols (in particular in data flow analysis) using semantic analysis. We need to somehow save this data separately beforehand. Such information is a set of facts for a particular symbol. We developed the below approach based on this idea.

Registration is now open for CppCon 2021, which starts on October 24 and will be held
A near-record number of talk submissions, with the large majority of speakers asking to deliver their talks in person, on-site in Aurora this October:
Registration is now open for CppCon 2021, which starts on October 24 and will be held
The future is coming.