]> git.saurik.com Git - apple/objc4.git/blame - test/badTagClass.m
objc4-646.tar.gz
[apple/objc4.git] / test / badTagClass.m
CommitLineData
7257e56c
A
1/*
2TEST_CRASHES
3TEST_RUN_OUTPUT
8070259c 4objc\[\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
5CRASHED: SIG(ILL|TRAP)
6OR
7no tagged pointers
8OK: badTagClass.m
9END
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
20int 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
36int main()
37{
38 fprintf(stderr, "no tagged pointers\n");
39 succeed(__FILE__);
40}
41
42#endif