1*e5dd7070Spatrick //C test()2*e5dd7070Spatrickvoid test() { 3*e5dd7070Spatrick void (*foo)(void); 4*e5dd7070Spatrick foo = 0; 5*e5dd7070Spatrick foo(); // warn: function pointer is null 6*e5dd7070Spatrick } 7*e5dd7070Spatrick 8*e5dd7070Spatrick // C++ 9*e5dd7070Spatrick class C { 10*e5dd7070Spatrick public: 11*e5dd7070Spatrick void f(); 12*e5dd7070Spatrick }; 13*e5dd7070Spatrick test()14*e5dd7070Spatrick void test() { 15*e5dd7070Spatrick C *pc; 16*e5dd7070Spatrick pc->f(); // warn: object pointer is uninitialized 17*e5dd7070Spatrick } 18*e5dd7070Spatrick 19*e5dd7070Spatrick // C++ 20*e5dd7070Spatrick class C { 21*e5dd7070Spatrick public: 22*e5dd7070Spatrick void f(); 23*e5dd7070Spatrick }; 24*e5dd7070Spatrick test()25*e5dd7070Spatrick void test() { 26*e5dd7070Spatrick C *pc = 0; 27*e5dd7070Spatrick pc->f(); // warn: object pointer is null 28*e5dd7070Spatrick } 29*e5dd7070Spatrick 30*e5dd7070Spatrick // Objective-C 31*e5dd7070Spatrick @interface MyClass : NSObject property(readwrite,assign)32*e5dd7070Spatrick @property (readwrite,assign) id x; 33*e5dd7070Spatrick - (long double)longDoubleM; 34*e5dd7070Spatrick @end 35*e5dd7070Spatrick 36*e5dd7070Spatrick void test() { 37*e5dd7070Spatrick MyClass *obj1; 38*e5dd7070Spatrick long double ld1 = [obj1 longDoubleM]; 39*e5dd7070Spatrick // warn: receiver is uninitialized 40*e5dd7070Spatrick } 41*e5dd7070Spatrick 42*e5dd7070Spatrick // Objective-C 43*e5dd7070Spatrick @interface MyClass : NSObject property(readwrite,assign)44*e5dd7070Spatrick @property (readwrite,assign) id x; 45*e5dd7070Spatrick - (long double)longDoubleM; 46*e5dd7070Spatrick @end 47*e5dd7070Spatrick 48*e5dd7070Spatrick void test() { 49*e5dd7070Spatrick MyClass *obj1; 50*e5dd7070Spatrick id i = obj1.x; // warn: uninitialized object pointer 51*e5dd7070Spatrick } 52*e5dd7070Spatrick 53*e5dd7070Spatrick // Objective-C 54*e5dd7070Spatrick @interface Subscriptable : NSObject 55*e5dd7070Spatrick - (id)objectAtIndexedSubscript:(unsigned int)index; 56*e5dd7070Spatrick @end 57*e5dd7070Spatrick 58*e5dd7070Spatrick @interface MyClass : Subscriptable property(readwrite,assign)59*e5dd7070Spatrick @property (readwrite,assign) id x; 60*e5dd7070Spatrick - (long double)longDoubleM; 61*e5dd7070Spatrick @end 62*e5dd7070Spatrick 63*e5dd7070Spatrick void test() { 64*e5dd7070Spatrick MyClass *obj1; 65*e5dd7070Spatrick id i = obj1[0]; // warn: uninitialized object pointer 66*e5dd7070Spatrick } 67