Devirtualization for static analysis with low level intermediate representation

Авторы

A. Galustov, A. Borodin and A. Belevantsev

PDF

Аннотация

We propose a points-to analysis that can recovertargets for function pointer calls, virtual calls and method callsfor using in a static analysis. We use a flow-insensitive analysis,and the analysis results are intended for flow- and path-sensitiveanalysis which can improve the initial analysis precision withina single function. We implemented the proposed approach in a static analyzer for finding errors in C, C++, Go, Java and Kotlin programs. The devirtualization algorithm is fast enoughand spends less than 6% of the total analysis time. It can workfor projects like Tizen 7 with 27.5 MLoc of source code