RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2024 Volume 36, Issue 3, Pages 21–34 (Mi tisp885)

Static analysis of Go maps

D. N. Subbotinab, A. E. Borodina, V. V. Dvortsovaba

a Ivannikov Institute for System Programming of the RAS
b Lomonosov Moscow State University

Abstract: The paper describes static analysis of map in the Go language for dereferencing a null pointer when extracting a key from a map. The work has been done within the Svace static analyzer. We begin with introducing Svace intermediate representation and algorithms. Then we describe the IR changes needed for modeling Go maps and their semantics. We explain how intraprocedural analysis is performed and how the null dereference detector works. Then we proceed with a summary-based interprocedural analysis. We show evaluation results on a wide range of open source projects.

Keywords: static analysis, Svace, Go, collection analysis, symbolic execution

DOI: 10.15514/ISPRAS-2024-36(3)-2



© Steklov Math. Inst. of RAS, 2024