|
Static Value-Flow Analysis
|
#include "SVF-LLVM/CppUtil.h"#include "SVF-LLVM/BasicTypes.h"#include "SVF-LLVM/LLVMUtil.h"#include "Util/Casting.h"#include "Util/SVFUtil.h"#include "SVF-LLVM/LLVMModule.h"#include "SVF-LLVM/ObjTypeInference.h"#include <cxxabi.h>Go to the source code of this file.
Functions | |
| static bool | isOperOverload (const std::string &name) |
| static std::string | getBeforeParenthesis (const std::string &name) |
| static void | handleThunkFunction (cppUtil::DemangledName &dname) |
| static bool | isDerivedFromThisPtr (const Argument *thisPtr, const Value *V) |
| void | stripBracketsAndNamespace (cppUtil::DemangledName &dname) |
| std::vector< std::string > | findInnermostBrackets (const std::string &input) |
| std::string | stripWhitespaces (const std::string &str) |
| std::vector< std::string > | splitAndStrip (const std::string &input, char delimiter) |
| std::vector< std::string > findInnermostBrackets | ( | const std::string & | input | ) |
find the innermost brackets, e.g., return "int const, A" for "__gnu_cxx::__aligned_membuf<std::pair<int const, A> >::_M_ptr() const"
| input |
Definition at line 805 of file CppUtil.cpp.
|
static |
Definition at line 107 of file CppUtil.cpp.
|
static |
Definition at line 146 of file CppUtil.cpp.
Check if V is derived from thisPtr Handles O0 pattern: this1 = load ptr, ptr this.addr
Definition at line 425 of file CppUtil.cpp.
|
static |
Definition at line 84 of file CppUtil.cpp.
| std::vector< std::string > splitAndStrip | ( | const std::string & | input, |
| char | delimiter | ||
| ) |
Definition at line 870 of file CppUtil.cpp.
| void stripBracketsAndNamespace | ( | cppUtil::DemangledName & | dname | ) |
strip off brackets and namespace from classname e.g., for ‘namespace::A<...::...>::f’, we get ‘A’ by stripping off namespace and <>
Definition at line 543 of file CppUtil.cpp.
| std::string stripWhitespaces | ( | const std::string & | str | ) |
strip off the whitespaces from the beginning and ending of str
| str |
Definition at line 856 of file CppUtil.cpp.
| const std::string clsName = "class." |
Definition at line 55 of file CppUtil.cpp.
| const std::string dyncast = "__dynamic_cast" |
Definition at line 81 of file CppUtil.cpp.
| const std::string NVThunkFunLabel = "non-virtual thunk to " |
Definition at line 46 of file CppUtil.cpp.
| const std::string structName = "struct." |
Definition at line 56 of file CppUtil.cpp.
| const std::string vfunPreLabel = "_Z" |
Definition at line 53 of file CppUtil.cpp.
| const std::string vtableType = "(...)**" |
Definition at line 57 of file CppUtil.cpp.
| const std::string vtblLabelAfterDemangle = "vtable for " |
Definition at line 43 of file CppUtil.cpp.
| const std::string vtblLabelBeforeDemangle = "_ZTV" |
Definition at line 50 of file CppUtil.cpp.
| const std::string VThunkFuncLabel = "virtual thunk to " |
Definition at line 47 of file CppUtil.cpp.
| const std::string zn1Label = "_ZN1" |
Definition at line 60 of file CppUtil.cpp.
| const std::string znk9Label = "_ZNK9" |
Definition at line 77 of file CppUtil.cpp.
| const std::string znkLabel = "_ZNK" |
Definition at line 76 of file CppUtil.cpp.
| const std::string znkst20Label = "_ZNKSt20_" |
Definition at line 71 of file CppUtil.cpp.
| const std::string znkst23Label = "_ZNKSt23_" |
Definition at line 73 of file CppUtil.cpp.
| const std::string znkst5Label = "_ZNKSt15_" |
Definition at line 70 of file CppUtil.cpp.
| const std::string znkstLabel = "_ZNKSt" |
Definition at line 69 of file CppUtil.cpp.
| const std::string znst12Label = "_ZNSt12" |
Definition at line 63 of file CppUtil.cpp.
| const std::string znst14Label = "_ZNSt14" |
Definition at line 66 of file CppUtil.cpp.
| const std::string znst5Label = "_ZNSt5" |
Definition at line 62 of file CppUtil.cpp.
| const std::string znst6Label = "_ZNSt6" |
Definition at line 64 of file CppUtil.cpp.
| const std::string znst7Label = "_ZNSt7" |
Definition at line 65 of file CppUtil.cpp.
| const std::string znstLabel = "_ZNSt" |
Definition at line 61 of file CppUtil.cpp.
| const std::string znwm = "_Znwm" |
Definition at line 59 of file CppUtil.cpp.
| const std::string ztilabel = "_ZTI" |
Definition at line 79 of file CppUtil.cpp.
| const std::string ztiprefix = "typeinfo for " |
Definition at line 80 of file CppUtil.cpp.