]>
Commit | Line | Data |
---|---|---|
7257e56c A |
1 | /* |
2 | TEST_CRASHES | |
3 | TEST_RUN_OUTPUT | |
8070259c | 4 | objc\[\d+\]: tag index 7 used for two different classes \(was 0x[0-9a-fA-F]+ NSObject, now 0x[0-9a-fA-F]+ TestRoot\) |
7257e56c A |
5 | CRASHED: SIG(ILL|TRAP) |
6 | OR | |
7 | no tagged pointers | |
8 | OK: badTagClass.m | |
9 | END | |
10 | */ | |
11 | ||
12 | #include "test.h" | |
8070259c | 13 | #include "testroot.i" |
7257e56c A |
14 | |
15 | #include <objc/objc-internal.h> | |
16 | #include <objc/Protocol.h> | |
17 | ||
18 | #if OBJC_HAVE_TAGGED_POINTERS | |
19 | ||
20 | int main() | |
21 | { | |
22 | // re-registration and nil registration allowed | |
23 | _objc_registerTaggedPointerClass(OBJC_TAG_7, [NSObject class]); | |
24 | _objc_registerTaggedPointerClass(OBJC_TAG_7, [NSObject class]); | |
25 | _objc_registerTaggedPointerClass(OBJC_TAG_7, nil); | |
26 | _objc_registerTaggedPointerClass(OBJC_TAG_7, [NSObject class]); | |
27 | ||
28 | // colliding registration disallowed | |
8070259c | 29 | _objc_registerTaggedPointerClass(OBJC_TAG_7, [TestRoot class]); |
7257e56c A |
30 | |
31 | fail(__FILE__); | |
32 | } | |
33 | ||
34 | #else | |
35 | ||
36 | int main() | |
37 | { | |
38 | fprintf(stderr, "no tagged pointers\n"); | |
39 | succeed(__FILE__); | |
40 | } | |
41 | ||
42 | #endif |