47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core -analyzer-store=region -verify %s
 | 
						|
// expected-no-diagnostics
 | 
						|
 | 
						|
// Test function pointer casts.
 | 
						|
typedef void* (*MyFuncTest1)(void);
 | 
						|
 | 
						|
MyFuncTest1 test1_aux(void);
 | 
						|
void test1(void) {
 | 
						|
  void *x;
 | 
						|
  void* (*p)(void);
 | 
						|
  p = ((void*) test1_aux());
 | 
						|
  if (p != ((void*) 0)) x = (*p)();
 | 
						|
}
 | 
						|
 | 
						|
// Test casts from void* to function pointers.
 | 
						|
void* test2(void *p) {
 | 
						|
  MyFuncTest1 fp = (MyFuncTest1) p;
 | 
						|
  return (*fp)();
 | 
						|
}
 | 
						|
 | 
						|
// <radar://10087620>
 | 
						|
// A cast from int onjective C property reference to int.
 | 
						|
typedef signed char BOOL;
 | 
						|
@protocol NSObject  - (BOOL)isEqual:(id)object; @end
 | 
						|
@interface NSObject <NSObject> {} - (id)init; @end
 | 
						|
typedef enum {
 | 
						|
  EEOne,
 | 
						|
  EETwo
 | 
						|
} RDR10087620Enum;
 | 
						|
@interface RDR10087620 : NSObject {
 | 
						|
  RDR10087620Enum   elem;
 | 
						|
}
 | 
						|
@property (readwrite, nonatomic) RDR10087620Enum elem;
 | 
						|
@end
 | 
						|
 | 
						|
static void
 | 
						|
adium_media_ready_cb(RDR10087620 *InObj)
 | 
						|
{
 | 
						|
  InObj.elem |= EEOne;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// PR16690
 | 
						|
_Bool testLocAsIntegerToBool() {
 | 
						|
  return (long long)&testLocAsIntegerToBool;
 | 
						|
}
 |