849{
854 {
856 }
857
862
865 arg_num,
arg_value,
"Static Symbolic Execution",
"[options] <input-bitcode...>"
866 );
869 {
872 return 0;
873 }
874
876 {
880 return 0;
881 }
882
886
887
892 ae.addDetector(std::make_unique<BufOverflowDetector>());
894 ae.addDetector(std::make_unique<NullptrDerefDetector>());
896
899
900 return 0;
901}
static Option< bool > SYMABS("symabs", "symbolic abstraction test", false)
static Option< bool > AETEST("aetest", "abstract execution basic function test", false)
static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)
AbstractInterpretation is same as Abstract Execution.
static AbstractInterpretation & getAEInstance()
static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)
Create an singleton instance directly instead of invoking llvm pass manager.
static void releaseAndersenWaveDiff()
static LLVMModuleSet * getLLVMModuleSet()
static void releaseLLVMModuleSet()
static void buildSVFModule(Module &mod)
static const Option< bool > NullDerefCheck
nullptr dereference checker, Default: false
static const Option< bool > BufferOverflowCheck
buffer overflow checker, Default: false
CallGraph * getCallGraph() const
Return call graph.
llvm::IRBuilder IRBuilder