ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
clang_cpp_convert_vft.cpp File Reference
#include <util/base/compiler_defs.h>
#include <clang/Basic/Version.inc>
#include <clang/AST/Attr.h>
#include <clang/AST/CXXInheritance.h>
#include <clang/AST/DeclCXX.h>
#include <clang/AST/DeclFriend.h>
#include <clang/AST/DeclTemplate.h>
#include <clang/AST/Expr.h>
#include <clang/AST/ExprCXX.h>
#include <clang/AST/QualTypeNames.h>
#include <clang/AST/Type.h>
#include <clang/Index/USRGeneration.h>
#include <clang/Frontend/ASTUnit.h>
#include <clang/AST/ParentMapContext.h>
#include <clang/AST/RecordLayout.h>
#include <llvm/Support/raw_os_ostream.h>
#include <clang-c-frontend/typecast.h>
#include <clang-cpp-frontend/clang_cpp_convert.h>
#include <util/arith/arith_tools.h>
#include <util/lang/c_types.h>
#include <util/expr/expr_util.h>
#include <util/expr/string_constant.h>
#include <util/message/message.h>
#include <util/irep/std_code.h>
#include <util/irep/std_expr.h>
#include <functional>
#include <optional>
Include dependency graph for clang_cpp_convert_vft.cpp:

Functions

static bool is_pure_virtual (const clang::CXXMethodDecl &md)
static const clang::CXXMethodDecl * get_ultimate_overridden_method (const clang::CXXMethodDecl *method)
 Returns the ultimate overridden method for a given CXXMethodDecl.
static bool is_unambiguous_base (const clang::CXXRecordDecl &derived, const clang::CXXRecordDecl &base)
 Whether base is a base class of derived reached by a single path.
static bool is_dynamic_cast_target (const clang::CXXRecordDecl &D, const clang::CXXRecordDecl &S, const clang::CXXRecordDecl &T)
 Whether a dynamic_cast from S to T can succeed on an object of dynamic type D, a class at-or-below S.

Function Documentation

◆ get_ultimate_overridden_method()

const clang::CXXMethodDecl * get_ultimate_overridden_method ( const clang::CXXMethodDecl * method)
static

Returns the ultimate overridden method for a given CXXMethodDecl.

This function traverses the overridden methods of the provided CXXMethodDecl and returns the unique ultimate overridden method.

Parameters
methodThe CXXMethodDecl to find the ultimate overridden method for.
Returns
The unique ultimate overridden CXXMethodDecl.

◆ is_dynamic_cast_target()

bool is_dynamic_cast_target ( const clang::CXXRecordDecl & D,
const clang::CXXRecordDecl & S,
const clang::CXXRecordDecl & T )
static

Whether a dynamic_cast from S to T can succeed on an object of dynamic type D, a class at-or-below S.

◆ is_pure_virtual()

bool is_pure_virtual ( const clang::CXXMethodDecl & md)
static

◆ is_unambiguous_base()

bool is_unambiguous_base ( const clang::CXXRecordDecl & derived,
const clang::CXXRecordDecl & base )
static

Whether base is a base class of derived reached by a single path.