@ -122,13 +122,11 @@ let rec format_string_type_names
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  printf_args_name  =  " CHECKERS_PRINTF_ARGS " let  printf_args_name  =  " CHECKERS_PRINTF_ARGS "  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  callback_printf_args let  check_printf_args_ok  
			
				
				
			
		
	
		
		
			
				
					
					    ( all_procs  :  Procname . t  list ) 
    ( node :  Cfg . Node . t ) 
 
			
				
				
			
		
	
		
		
			
				
					
					    ( get_proc_desc :  Procname . t  ->  Cfg . Procdesc . t  option ) 
    ( instr :  Sil . instr ) 
 
			
				
				
			
		
	
		
		
			
				
					
					    ( idenv :  Idenv . t ) 
 
			
		
	
		
		
			
				
					
					    ( tenv :  Sil . tenv ) 
 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					    ( proc_name :  Procname . t ) 
    ( proc_name :  Procname . t ) 
 
			
		
	
		
		
			
				
					
					    ( proc_desc   :  Cfg . Procdesc . t )   :  unit  = 
    ( proc_desc :  Cfg . Procdesc . t ) :  unit  = 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  (*  Check if format string lines up with arguments  *) 
  (*  Check if format string lines up with arguments  *) 
 
			
		
	
		
		
			
				
					
					  let  rec  check_type_names  instr_loc  n_arg  instr_proc_name  fmt_type_names  arg_type_names  = 
  let  rec  check_type_names  instr_loc  n_arg  instr_proc_name  fmt_type_names  arg_type_names  = 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -184,9 +182,6 @@ let callback_printf_args
 
			
		
	
		
		
			
				
					
					    |  Sil . Const  c  ->  PatternMatch . java_get_const_type_name  c 
    |  Sil . Const  c  ->  PatternMatch . java_get_const_type_name  c 
 
			
		
	
		
		
			
				
					
					    |  _  ->  raise  ( Failure  " Could not resolve fixed type name " )  in 
    |  _  ->  raise  ( Failure  " Could not resolve fixed type name " )  in 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  let  do_instr 
 
			
		
	
		
		
			
				
					
					      ( node :  Cfg . Node . t ) 
 
			
		
	
		
		
			
				
					
					      ( instr :  Sil . instr ) :  unit  = 
 
			
		
	
		
		
			
				
					
					  match  instr  with 
  match  instr  with 
 
			
		
	
		
		
			
				
					
					  |  Sil . Call  ( _ ,  Sil . Const  ( Sil . Cfun  pn ) ,  args ,  cl ,  _ )  ->  ( 
  |  Sil . Call  ( _ ,  Sil . Const  ( Sil . Cfun  pn ) ,  args ,  cl ,  _ )  ->  ( 
 
			
		
	
		
		
			
				
					
					      match  printf_like_function  pn  with 
      match  printf_like_function  pn  with 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -222,6 +217,14 @@ let callback_printf_args
 
			
		
	
		
		
			
				
					
					              ( Procname . to_string  proc_name ) 
              ( Procname . to_string  proc_name ) 
 
			
		
	
		
		
			
				
					
					              ( Printexc . to_string  e ) ) 
              ( Printexc . to_string  e ) ) 
 
			
		
	
		
		
			
				
					
					      |  None  ->  () ) 
      |  None  ->  () ) 
 
			
		
	
		
		
			
				
					
					    |  _  ->  ()  in 
  |  _  ->  () 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  callback_printf_args  
			
		
	
		
		
			
				
					
					    ( all_procs  :  Procname . t  list ) 
 
			
		
	
		
		
			
				
					
					    ( get_proc_desc :  Procname . t  ->  Cfg . Procdesc . t  option ) 
 
			
		
	
		
		
			
				
					
					    ( idenv :  Idenv . t ) 
 
			
		
	
		
		
			
				
					
					    ( tenv :  Sil . tenv ) 
 
			
		
	
		
		
			
				
					
					    ( proc_name :  Procname . t ) 
 
			
		
	
		
		
			
				
					
					    ( proc_desc  :  Cfg . Procdesc . t )  :  unit  = 
 
			
		
	
		
		
			
				
					
					  Cfg . Procdesc . iter_instrs  ( fun  n  i  ->  check_printf_args_ok  n  i  proc_name  proc_desc )  proc_desc 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  Cfg . Procdesc . iter_instrs  do_instr  proc_desc