850{
855 {
857 }
858
863
866 arg_num,
arg_value,
"Static Symbolic Execution",
"[options] <input-bitcode...>"
867 );
870 {
873 return 0;
874 }
875
877 {
881 return 0;
882 }
883
887
888
893 ae.
addDetector(std::make_unique<BufOverflowDetector>());
895 ae.
addDetector(std::make_unique<NullptrDerefDetector>());
897
900
901 return 0;
902}
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)
virtual void runOnModule()
void addDetector(std::unique_ptr< AEDetector > detector)
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