@@ -289,6 +289,7 @@ def analyze(
289289 extract : bool = False ,
290290 verbose : bool = False ,
291291 collectdiagnostics : bool = False ,
292+ failonfunctionfailure : bool = False ,
292293 ignore_stable : bool = False ,
293294 save_asm : bool = False ,
294295 construct_all_functions : bool = False ,
@@ -307,6 +308,7 @@ def analyze(
307308 verbose = verbose ,
308309 construct_all_functions = construct_all_functions ,
309310 collectdiagnostics = collectdiagnostics ,
311+ failonfunctionfailure = failonfunctionfailure ,
310312 preamble_cutoff = preamble_cutoff )
311313 return result
312314
@@ -446,6 +448,7 @@ def _analyze_until_stable(
446448 verbose : bool = False ,
447449 construct_all_functions : bool = False ,
448450 collectdiagnostics : bool = False ,
451+ failonfunctionfailure : bool = False ,
449452 preamble_cutoff : int = 12 ) -> int :
450453 cwd = os .getcwd ()
451454 os .chdir (self .path ) # temporary change in directory
@@ -500,6 +503,8 @@ def _analyze_until_stable(
500503 cmd .extend (["-lineq_block_cutoff" , str (self .lineq_block_cutoff )])
501504 if self .include_arm_extension_registers :
502505 cmd .append ("-arm_extension_registers" )
506+ if failonfunctionfailure :
507+ cmd .append ("-fail_on_function_failure" )
503508
504509 cmd .extend (["-analyze" , self .filename ])
505510 jarcmd = ["jar" , "cf" , functionsjarfile , "-C" , analysisdir , "functions" ]
0 commit comments