|
Static Value-Flow Analysis
|
Go to the source code of this file.
Classes | |
| struct | SVF::cppUtil::DemangledName |
| class | SVF::cppUtil::CXXABI |
| class | SVF::cppUtil::ItaniumABI |
| class | SVF::cppUtil::MSVCABI |
Namespaces | |
| namespace | SVF |
| for isBitcode | |
| namespace | SVF::cppUtil |
Functions | |
| CXXABI * | SVF::cppUtil::getCXXABI () |
| CXXABI * | SVF::cppUtil::getCXXABI (const Module *M) |
| CXXABI * | SVF::cppUtil::getCXXABI (const Value *val) |
| struct DemangledName | SVF::cppUtil::demangle (const std::string &name) |
| Set< std::string > | SVF::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 ConstantStruct * | SVF::cppUtil::getVtblStruct (const GlobalValue *vtbl) |
| bool | SVF::cppUtil::isValVtbl (const Value *val) |
| A carefully crafted input such as FakeVTable _ZTV1A = {{nullptr, nullptr}}; can forge a vtable; detection is approximate and heuristic. | |
| 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 Function * | SVF::cppUtil::getThunkTarget (const Function *F) |
| const Argument * | SVF::cppUtil::getConstructorThisPtr (const Function *fun) |
| const Value * | SVF::cppUtil::getVCallThisPtr (const CallBase *cs) |
| const Value * | SVF::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::string > | SVF::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::string > | SVF::cppUtil::extractClsNamesFromFunc (const Function *foo) |
| extract class name from the c++ function name, e.g., constructor/destructors | |
| Set< std::string > | SVF::cppUtil::extractClsNamesFromTemplate (const std::string &oname) |
| extract class names from template functions | |
| 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 | |
| bool | SVF::cppUtil::isTemplateFunc (const Function *foo) |
| whether foo is a cpp template function | |
| bool | SVF::cppUtil::isDynCast (const Function *foo) |
| whether foo is a cpp dyncast function | |
| std::string | SVF::cppUtil::extractClsNameFromDynCast (const CallBase *callBase) |
| extract class name from cpp dyncast function | |
| const Type * | SVF::cppUtil::cppClsNameToType (const std::string &className) |