|  |  | @ -107,6 +107,13 @@ let pdesc_has_return_annot pdesc predicate = | 
			
		
	
		
		
			
				
					
					|  |  |  | let pdesc_return_annot_ends_with pdesc annot = |  |  |  | let pdesc_return_annot_ends_with pdesc annot = | 
			
		
	
		
		
			
				
					
					|  |  |  |   pdesc_has_return_annot pdesc (fun ia -> ia_ends_with ia annot) |  |  |  |   pdesc_has_return_annot pdesc (fun ia -> ia_ends_with ia annot) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | (* note: we would use Specs.proc_resolve_attributes directly instead of requiring [attrs_of_pname], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |    but doing so creates a circular dependency *) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | let pname_has_return_annot pname ~attrs_of_pname predicate = | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   match attrs_of_pname pname with | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   | Some attributes -> predicate (fst attributes.ProcAttributes.method_annotation) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   | None -> false | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | let field_has_annot fieldname (struct_typ : StructTyp.t) predicate = |  |  |  | let field_has_annot fieldname (struct_typ : StructTyp.t) predicate = | 
			
		
	
		
		
			
				
					
					|  |  |  |   let fld_has_taint_annot (fname, _, annot) = |  |  |  |   let fld_has_taint_annot (fname, _, annot) = | 
			
		
	
		
		
			
				
					
					|  |  |  |     Ident.equal_fieldname fieldname fname && predicate annot in |  |  |  |     Ident.equal_fieldname fieldname fname && predicate annot in | 
			
		
	
	
		
		
			
				
					|  |  | 
 |