brintos

brintos / llvm-project-archived public Read only

0
0
Text · 984 B · c0fc958 Raw
46 lines · plain
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core -verify %s2// expected-no-diagnostics3 4// Test function pointer casts.5typedef void* (*MyFuncTest1)(void);6 7MyFuncTest1 test1_aux(void);8void test1(void) {9  void *x;10  void* (*p)(void);11  p = ((void*) test1_aux());12  if (p != ((void*) 0)) x = (*p)();13}14 15// Test casts from void* to function pointers.16void* test2(void *p) {17  MyFuncTest1 fp = (MyFuncTest1) p;18  return (*fp)();19}20 21// A cast from int onjective C property reference to int.22typedef signed char BOOL;23@protocol NSObject  - (BOOL)isEqual:(id)object; @end24@interface NSObject <NSObject> {} - (id)init; @end25typedef enum {26  EEOne,27  EETwo28} RDR10087620Enum;29@interface RDR10087620 : NSObject {30  RDR10087620Enum   elem;31}32@property (readwrite, nonatomic) RDR10087620Enum elem;33@end34 35static void36adium_media_ready_cb(RDR10087620 *InObj)37{38  InObj.elem |= EEOne;39}40 41 42// PR1669043_Bool testLocAsIntegerToBool(void) {44  return (long long)&testLocAsIntegerToBool;45}46