ESBMC v7.3: Model Checking C++ Programs using Clang AST

08/10/2023
by   Kunjian Song, et al.
0

This paper introduces ESBMC v7.3, the latest Efficient SMT-Based Context-Bounded Model Checker version, which now incorporates a new clang-based C++ front-end. While the previous CPROVER-based front-end served well for handling C++03 programs, it encountered challenges keeping up with the evolving C++ language. As new language and library features were added in each C++ version, the limitations of the old front-end became apparent, leading to difficult-to-maintain code. Consequently, modern C++ programs were challenging to verify. To overcome this obstacle, we redeveloped the front-end, opting for a more robust approach using clang. The new front-end efficiently traverses the Abstract Syntax Tree (AST) in-memory using clang APIs and transforms each AST node into ESBMC's Intermediate Representation. Through extensive experimentation, our results demonstrate that ESBMC v7.3 with the new front-end significantly reduces parse and conversion errors, enabling successful verification of a wide range of C++ programs, thereby outperforming previous ESBMC versions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/02/2021

Model Checking C++ Programs

In the last three decades, memory safety issues in system programming la...
research
05/24/2023

A New Era in Software Security: Towards Self-Healing Software via Large Language Models and Formal Verification

In this paper we present a novel solution that combines the capabilities...
research
06/09/2022

ESBMC-Jimple: Verifying Kotlin Programs via Jimple Intermediate Representation

In this work, we describe and evaluate the first model checker for verif...
research
05/16/2023

Auto-Tuning High-Performance Programs Using Model Checking in Promela

The paper combines research approaches that traditionally have been disj...
research
02/14/2020

Sthread: In-Vivo Model Checking of Multithreaded Programs

This work strives to make formal verification of POSIX multithreaded pro...
research
12/20/2021

FuSeBMC v.4: Smart Seed Generation for Hybrid Fuzzing

FuSeBMC is a test generator for finding security vulnerabilities in C pr...

Please sign up or login with your details

Forgot password? Click here to reset