844{
849 {
851 }
852
857
860 arg_num,
arg_value,
"Static Symbolic Execution",
"[options] <input-bitcode...>"
861 );
864 {
867 return 0;
868 }
869
871 {
875 return 0;
876 }
877
883 builder.updateCallGraph(callgraph);
887 ae.addDetector(std::make_unique<BufOverflowDetector>());
889
891
892 return 0;
893}
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.
void updateCallGraph(PTACallGraph *callgraph)
update ICFG for indirect calls
static LLVMModuleSet * getLLVMModuleSet()
static void releaseLLVMModuleSet()
static SVFModule * buildSVFModule(Module &mod)
static const Option< bool > BufferOverflowCheck
buffer overflow checker, Default: false
PTACallGraph * getCallGraph() const
Return call graph.
llvm::IRBuilder IRBuilder