// RUN: %clang_cc1 -analyze -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; }