/* Contributed by Nicola Pero - Fri Dec 14 08:36:00 GMT 2001 */ /* { dg-do run } */ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ #include #include "../../objc-obj-c++-shared/runtime.h" extern void abort (void); /* Test loading unclaimed categories - categories of a class defined separately from the class itself. */ /* unclaimed-category-1.m contains only the class definition but not the categories. unclaimed-category-1a.m contains only the categories of the class, but not the class itself. We want to check that the runtime can load the class from one module (file) and the categories from another module (file). */ #include "unclaimed-category-1.h" @implementation TestClass - (int)D { return 4; } + initialize { return self; } @end int main (void) { TestClass *test; Class testClass; testClass = objc_getClass ("TestClass"); if (testClass == Nil) { abort (); } test = (TestClass *)(class_createInstance (testClass, 0)); if (test == nil) { abort (); } if ([test A] != 1) { abort (); } if ([test B] != 2) { abort (); } if ([test C] != 3) { abort (); } if ([test D] != 4) { abort (); } return 0; }