1/* Contributed by Nicola Pero - Fri Oct 26 22:39:32 BST 2001 */ 2#include <objc/objc.h> 3 4/* Test calling a class method when there is an instance method 5 with conflicting types */ 6 7/* This class should be unused but on broken compilers its instance 8 method might get picked up and used instead of the class method of 9 another class ! */ 10struct d 11{ 12 int a; 13}; 14 15@interface UnusedClass 16{ 17 Class isa; 18} 19- (struct d) method; 20@end 21 22@implementation UnusedClass 23- (struct d) method 24{ 25 struct d u; 26 u.a = 0; 27 28 return u; 29} 30@end 31 32/* The real class */ 33@interface TestClass 34{ 35 Class isa; 36} 37+ (void) test; 38+ (int) method; 39@end 40 41@implementation TestClass 42+ (void) test 43{ 44 if ([self method] != 4) 45 { 46 abort (); 47 } 48} 49 50+ (int) method 51{ 52 return 4; 53} 54+ initialize { return self; } 55@end 56 57 58int main (void) 59{ 60 [TestClass test]; 61 62 return 0; 63} 64