|  |  |  | @ -19,24 +19,13 @@ open CFrontend_utils | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | module L = Logging | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let objc_class_str = "ObjC-Class" | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let objc_class_annotation = | 
			
		
	
		
			
				
					|  |  |  |  |   [({ Sil.class_name = objc_class_str; Sil.parameters =[]}, true)] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let is_objc_class_annotation a = | 
			
		
	
		
			
				
					|  |  |  |  |   match a with | 
			
		
	
		
			
				
					|  |  |  |  |   | [({ Sil.class_name = n; Sil.parameters =[]}, true)] when n = objc_class_str -> true | 
			
		
	
		
			
				
					|  |  |  |  |   | _ -> false | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let is_pointer_to_objc_class tenv typ = | 
			
		
	
		
			
				
					|  |  |  |  |   match typ with | 
			
		
	
		
			
				
					|  |  |  |  |   | Sil.Tptr (Sil.Tvar (Typename.TN_csu (Csu.Class, cname)), _) -> | 
			
		
	
		
			
				
					|  |  |  |  |       (match Sil.tenv_lookup tenv (Typename.TN_csu (Csu.Class, cname)) with | 
			
		
	
		
			
				
					|  |  |  |  |        | Some Sil.Tstruct(_, _, Csu.Class, _, _, _, a) when is_objc_class_annotation a -> true | 
			
		
	
		
			
				
					|  |  |  |  |        | Some typ when Sil.is_objc_class typ -> true | 
			
		
	
		
			
				
					|  |  |  |  |        | _ -> false) | 
			
		
	
		
			
				
					|  |  |  |  |   | Sil.Tptr (Sil.Tstruct(_, _, Csu.Class, _, _, _, a), _) when | 
			
		
	
		
			
				
					|  |  |  |  |       is_objc_class_annotation a -> true | 
			
		
	
		
			
				
					|  |  |  |  |   | Sil.Tptr (typ, _) when Sil.is_objc_class typ -> true | 
			
		
	
		
			
				
					|  |  |  |  |   | _ -> false | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let get_super_interface_decl otdi_super = | 
			
		
	
	
		
			
				
					|  |  |  | @ -139,7 +128,7 @@ let add_class_to_tenv type_ptr_to_sil_type tenv curr_class decl_info class_name | 
			
		
	
		
			
				
					|  |  |  |  |       Printing.log_out "-----> field: '%s'\n" (Ident.fieldname_to_string fn)) fields; | 
			
		
	
		
			
				
					|  |  |  |  |   let interface_type_info = | 
			
		
	
		
			
				
					|  |  |  |  |     Sil.Tstruct(fields, [], Csu.Class, Some (Mangled.from_string class_name), | 
			
		
	
		
			
				
					|  |  |  |  |                 superclasses, methods, objc_class_annotation) in | 
			
		
	
		
			
				
					|  |  |  |  |                 superclasses, methods, Sil.objc_class_annotation) in | 
			
		
	
		
			
				
					|  |  |  |  |   Sil.tenv_add tenv interface_name interface_type_info; | 
			
		
	
		
			
				
					|  |  |  |  |   Printing.log_out | 
			
		
	
		
			
				
					|  |  |  |  |     "  >>>Verifying that Typename '%s' is in tenv\n" (Typename.to_string interface_name); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |