Static Value-Flow Analysis
Classes | Namespaces | Functions | Variables
CppUtil.h File Reference
#include "SVFIR/SVFValue.h"
#include "SVF-LLVM/BasicTypes.h"

Go to the source code of this file.

Classes

struct  SVF::cppUtil::DemangledName
 

Namespaces

 SVF
 for isBitcode
 
 SVF::cppUtil
 
 SVF::cppUtil::ctir
 

Functions

struct DemangledName SVF::cppUtil::demangle (const std::string &name)
 
Set< std::stringSVF::cppUtil::getClsNamesInBrackets (const std::string &name)
 
std::string SVF::cppUtil::getBeforeBrackets (const std::string &name)
 
std::string SVF::cppUtil::getClassNameFromVtblObj (const std::string &vtblName)
 
const ConstantStructSVF::cppUtil::getVtblStruct (const GlobalValue *vtbl)
 
bool SVF::cppUtil::isValVtbl (const Value *val)
 
bool SVF::cppUtil::isVirtualCallSite (const CallBase *cs)
 
bool SVF::cppUtil::isConstructor (const Function *F)
 
bool SVF::cppUtil::isDestructor (const Function *F)
 
bool SVF::cppUtil::isCPPThunkFunction (const Function *F)
 
const FunctionSVF::cppUtil::getThunkTarget (const Function *F)
 
const ArgumentSVF::cppUtil::getConstructorThisPtr (const Function *fun)
 
const ValueSVF::cppUtil::getVCallThisPtr (const CallBase *cs)
 
const ValueSVF::cppUtil::getVCallVtblPtr (const CallBase *cs)
 
s32_t SVF::cppUtil::getVCallIdx (const CallBase *cs)
 
bool SVF::cppUtil::classTyHasVTable (const StructType *ty)
 
std::string SVF::cppUtil::getClassNameFromType (const StructType *ty)
 
Set< std::stringSVF::cppUtil::getClassNameOfThisPtr (const CallBase *cs)
 
std::string SVF::cppUtil::getFunNameOfVCallSite (const CallBase *cs)
 
bool SVF::cppUtil::VCallInCtorOrDtor (const CallBase *cs)
 
bool SVF::cppUtil::isSameThisPtrInConstructor (const Argument *thisPtr1, const Value *thisPtr2)
 
Set< std::stringSVF::cppUtil::extractClsNamesFromFunc (const Function *foo)
 extract class name from the c++ function name, e.g., constructor/destructors More...
 
Set< std::stringSVF::cppUtil::extractClsNamesFromTemplate (const std::string &oname)
 extract class names from template functions More...
 
bool SVF::cppUtil::isClsNameSource (const Value *val)
 
bool SVF::cppUtil::matchesLabel (const std::string &foo, const std::string &label)
 whether foo matches the mangler label More...
 
bool SVF::cppUtil::isTemplateFunc (const Function *foo)
 whether foo is a cpp template function More...
 
bool SVF::cppUtil::isDynCast (const Function *foo)
 whether foo is a cpp dyncast function More...
 
std::string SVF::cppUtil::extractClsNameFromDynCast (const CallBase *callBase)
 extract class name from cpp dyncast function More...
 
const TypeSVF::cppUtil::cppClsNameToType (const std::string &className)
 

Variables

const std::string SVF::cppUtil::ctir::derefMDName = "ctir"
 
const std::string SVF::cppUtil::ctir::vtMDName = "ctir.vt"
 
const std::string SVF::cppUtil::ctir::vtInitMDName = "ctir.vt.init"
 
const uint32_t SVF::cppUtil::ctir::moduleFlagValue = 1
 Value we expect a ctir-annotated module to have. More...