Return of CFA: call-site sensitivity can be superior to object sensitivity even for object-oriented programs
Minseok Jeon, Hakjoo Oh
Abstract
In this paper, we challenge the commonly-accepted wisdom in static analysis that object sensitivity is superior to call-site sensitivity for object-oriented programs. In static analysis of object-oriented programs, object sensitivity has been established as the dominant flavor of context sensitivity thanks to its outstanding precision. On the other hand, call-site sensitivity has been regarded as unsuitable and its use in practice has been constantly discouraged for object-oriented programs. In this paper, however, we claim that call-site sensitivity is generally a superior context abstraction because it is practically possible to transform object sensitivity into more precise call-site sensitivity. Our key insight is that the previously known superiority of object sensitivity holds only in the traditional k -limited setting, where the analysis is enforced to keep the most recent k context elements. However, it no longer holds in a recently-proposed, more general setting with context tunneling. With context tunneling, where the analysis is free to choose an arbitrary k -length subsequence of context strings, we show that call-site sensitivity can simulate object sensitivity almost completely, but not vice versa. To support the claim, we present a technique, called Obj2CFA, for transforming arbitrary context-tunneled object sensitivity into more precise, context-tunneled call-site-sensitivity. We implemented Obj2CFA in Doop and used it to derive a new call-site-sensitive analysis from a state-of-the-art object-sensitive pointer analysis. Experimental results confirm that the resulting call-site sensitivity outperforms object sensitivity in precision and scalability for real-world Java programs. Remarkably, our results show that even 1-call-site sensitivity can be more precise than the conventional 3-object-sensitive analysis.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 3c4c197b-24af-483e-9df2-4c7402579031Cited by top-tier papers14
- Context Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise Pointer AnalysisWenjie Ma, Shengyuan Yang, Tian Tan, Xiaoxing Ma et al.PLDI 2023 · 29 citations
- Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of ClassicsTian Tan, Yue LiISSTA 2023 · 26 citations
- Learning Abstraction Selection for Bayesian Program AnalysisYifan Zhang, Yuanfeng Shi, Xin ZhangOOPSLA 2024 · 8 citations
- Generic sensitivity: customizing context-sensitive pointer analysis for genericsHaofeng Li, Jie Lu, Haining Meng, Liqing Cao et al.FSE 2022 · 6 citations
- Understanding Industry Perspectives of Static Application Security Testing (SAST) EvaluationYuan Li, Peisen Yao, Kan Yu, Chengpeng Wang et al.FSE 2025 · 1 citation
Builds on2
Related papers
- Towards a Theoretically-Backed and Practical Framework for Selective Object-Sensitive Pointer AnalysisChaoyue Zhang, Longlong Lu, Yifei Lu, Minxue Pan et al.OOPSLA 2025
- SHARP: fast incremental context-sensitive pointer analysis for JavaBozhen Liu, Jeff HuangOOPSLA 2022 · 21 citations
- Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static AnalysisJiangchao Liu, Jierui Liu, Peng Di, Diyu Wu et al.ISSTA 2023 · 3 citations
- A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer AnalysisDongjie He, Yujiang Gui, Wei Li, Yonggang Tao et al.OOPSLA 2023 · 9 citations
- Context Debloating for Object-Sensitive Pointer AnalysisDongjie He, Jingbo Lu, Jingling XueASE 2021 · 10 citations
