Model Checking C++ Programs
Not on the map. Why?
Abstract (arXiv)
In the last three decades, memory safety issues in system programming languages such as C or C++ have been one of the significant sources of security vulnerabilities. However, there exist only a few attempts with limited success to cope with the complexity of C++ program verification. Here we describe and evaluate a novel verification approach based on bounded model checking (BMC) and satisfiability modulo theories (SMT) to verify C++ programs formally. Our verification approach analyzes bounded C++ programs by encoding into SMT various sophisticated features that the C++ programming language offers, such as templates, inheritance, polymorphism, exception handling, and the Standard C++ Libraries. We formalize these features within our formal verification framework using a decidable fragment of first-order logic and then show how state-of-the-art SMT solvers can efficiently handle that. We implemented our verification approach on top of ESBMC. We compare ESBMC to LLBMC and DIVINE, which are state-of-the-art verifiers to check C++ programs directly from the LLVM bitcode. Experimental results show that ESBMC can handle a wide range of C++ programs, presenting a higher number of correct verification results. At the same time, it reduces the verification time if compared to LLBMC and DIVINE tools. Additionally, ESBMC has been applied to a commercial C++ application in the telecommunication domain and successfully detected arithmetic overflow errors, potentially leading to security vulnerabilities.
Key facts. Cited by 3 papers in the map (data through 7 Oct 2026). First posted on arXiv 2 Jul 2021.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 0; 2025: 2.
3 papers.
- 2023A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal Verificationcited by 42
- 2025UnitTenX: Generating Tests for Legacy Packages with AI Agents Powered by Formal Verificationcited by 1
- 2025The 4/δ Bound: Designing Predictable LLM-Verifier Systems for Formal Method Guaranteecited by 1
- 2025The 4/δ Bound: Designing Predictable LLM-Verifier Systems for Formal Method Guarantee30 Nov 2025
- 2025UnitTenX: Generating Tests for Legacy Packages with AI Agents Powered by Formal Verification6 Oct 2025
- 2023A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal Verification24 May 2023