171 const Value* thisPtr2);
virtual ~CXXABI()=default
virtual DemangledName demangle(const std::string &name)=0
virtual std::string extractClassName(const std::string &name)=0
virtual bool isTypeInfo(const std::string &name)=0
virtual bool isConstructor(const std::string &name)=0
virtual bool isVtable(const std::string &name)=0
virtual bool isDestructor(const std::string &name)=0
std::string extractClassName(const std::string &name) override
bool isVtable(const std::string &name) override
bool isDestructor(const std::string &name) override
bool isConstructor(const std::string &name) override
DemangledName demangle(const std::string &name) override
bool isTypeInfo(const std::string &name) override
bool isTypeInfo(const std::string &name) override
DemangledName demangle(const std::string &name) override
bool isDestructor(const std::string &name) override
bool isVtable(const std::string &name) override
bool isConstructor(const std::string &name) override
std::string extractClassName(const std::string &name) override
std::string getFunNameOfVCallSite(const CallBase *cs)
std::string getBeforeBrackets(const std::string &name)
const Argument * getConstructorThisPtr(const Function *fun)
std::string extractClsNameFromDynCast(const CallBase *callBase)
extract class name from cpp dyncast function
s32_t getVCallIdx(const CallBase *cs)
const Value * getVCallVtblPtr(const CallBase *cs)
bool isTemplateFunc(const Function *foo)
whether foo is a cpp template function
bool classTyHasVTable(const StructType *ty)
bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)
Set< std::string > getClsNamesInBrackets(const std::string &name)
const Value * getVCallThisPtr(const CallBase *cs)
bool matchesLabel(const std::string &foo, const std::string &label)
whether foo matches the mangler label
std::string getClassNameFromType(const StructType *ty)
struct DemangledName demangle(const std::string &name)
Set< std::string > getClassNameOfThisPtr(const CallBase *cs)
bool isCPPThunkFunction(const Function *F)
bool VCallInCtorOrDtor(const CallBase *cs)
bool isClsNameSource(const Value *val)
Set< std::string > extractClsNamesFromTemplate(const std::string &oname)
extract class names from template functions
bool isVirtualCallSite(const CallBase *cs)
const Type * cppClsNameToType(const std::string &className)
const Function * getThunkTarget(const Function *F)
const ConstantStruct * getVtblStruct(const GlobalValue *vtbl)
bool isConstructor(const Function *F)
std::string getClassNameFromVtblObj(const std::string &vtblName)
Set< std::string > extractClsNamesFromFunc(const Function *foo)
extract class name from the c++ function name, e.g., constructor/destructors
bool isValVtbl(const Value *val)
A carefully crafted input such as FakeVTable _ZTV1A = {{nullptr, nullptr}}; can forge a vtable; detec...
bool isDestructor(const Function *F)
bool isDynCast(const Function *foo)
whether foo is a cpp dyncast function
llvm::ConstantStruct ConstantStruct
llvm::Value Value
LLVM Basic classes.
llvm::IRBuilder IRBuilder
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set