C-2PO: A Weakly Relational Pointer Domain: “These Are Not the Memory Cells You Are Looking For”
Pointer analysis is foundational for statically analyzing real-world programs. We present C-2PO — a weakly relational domain for C programs, which tracks must-equalities and -disequalities between pointer expressions. This domain captures address arithmetic and its confinement to single memory objects, both core concepts in C. We implement the domain in Goblint and provide a preliminary evaluation. For 95% of SV-COMP tasks, the slowdown incurred by adding C-2PO is below a factor of 3. To measure precision, we instrumented coreutil programs with assertions computed by C-2PO. For an existing non-relational pointer analysis, 80% of the assertions are out of reach.
Authors
- Michael Schwarz (ORCID: https://orcid.org/0000-0002-9828-0308)
- Julian Erhard (ORCID: https://orcid.org/0000-0002-1729-3925)
- Helmut Seidl (ORCID: https://orcid.org/0000-0002-2135-1593)
- Rebecca Ghidini
Institutions
- Technical University of Munich (DE)
- Ludwig-Maximilians-Universität München (DE)
Publication Details
- Published
- 2024-10-17
- DOI
- https://doi.org/10.1145/3689609.3689994
- Citations
- 1
- Primary Topic
- Advanced Memory and Neural Computing
- Type
- article
- Field-Weighted Citation Impact
- 0.21