| // RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core -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)(); | |
| } | |
| // 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(void) { | |
| return (long long)&testLocAsIntegerToBool; | |
| } |