]>
Commit | Line | Data |
---|---|---|
13ba007e A |
1 | #include "test.h" |
2 | #include "imageorder.h" | |
3 | ||
4 | int state = -1; | |
5 | int cstate = 0; | |
6 | ||
7 | static void c1(void) __attribute__((constructor)); | |
8 | static 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 |