1#include "test.h"
2#include "imageorder.h"
3
4int state = -1;
5int cstate = 0;
6
7static void c1(void) __attribute__((constructor));
8static void c1(void)
9{
10    testassert(state == 1);  // +load before C/C++
11    testassert(cstate == 0);
12    cstate = 1;
13}
14
15
16#if __clang__
17#pragma clang diagnostic push
18#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
19#endif
20
21@implementation Super (cat1)
22+(void) method {
23    fail("+[Super(cat1) method] not replaced!");
24}
25+(void) method1 {
26    state = 1;
27}
28+(void) load {
29    testassert(state == 0);
30    state = 1;
31}
32@end
33
34#if __clang__
35#pragma clang diagnostic pop
36#endif
37
38
39@implementation Super
40+(void) initialize { }
41+(void) method {
42    fail("+[Super method] not replaced!");
43}
44+(void) method0 {
45    state = 0;
46}
47+(void) load {
48    testassert(state == -1);
49    state = 0;
50}
51@end
52
53