ObjFW  Diff

Differences From Artifact [51397f3854]:

  • File tests/RuntimeTests.m — part of check-in [6414fc9ca5] at 2020-07-04 13:00:30 on branch tagged-pointers — Add tests for tagged pointers (user: js size: 2700)

To Artifact [33b8900615]:

  • File tests/RuntimeTests.m — part of check-in [4461f85857] at 2020-07-04 13:09:21 on branch tagged-pointers — RuntimeTests: Make certain versions of Clang happy (user: js size: 2677) [more...]

94
95
96
97
98
99
100
101
102


103
104
105
106
107
108
109
110
94
95
96
97
98
99
100


101
102

103
104
105
106
107
108
109







-
-
+
+
-







		value = 0xDEADBEEFDEADBEF;
	else if (sizeof(uintptr_t) == 4)
		value = 0xDEADBEF;
	else
		abort();

	TEST(@"Tagged pointers",
	    R(cid1 = objc_registerTaggedPointerClass([OFString class])) &&
	    R(cid2 = objc_registerTaggedPointerClass([OFNumber class])) &&
	    (cid1 = objc_registerTaggedPointerClass([OFString class])) != -1 &&
	    (cid2 = objc_registerTaggedPointerClass([OFNumber class])) != -1 &&
	    cid1 != -1 && cid2 != -1 &&
	    (object = objc_createTaggedPointer(cid2, (uintptr_t)value)) &&
	    object_getTaggedPointerClass(object) == [OFNumber class] &&
	    [object class] == [OFNumber class] &&
	    object_getTaggedPointerValue(object) == value &&
	    objc_createTaggedPointer(cid2, UINTPTR_MAX >> 4) != nil &&
	    objc_createTaggedPointer(cid2, (UINTPTR_MAX >> 4) + 1) == nil)
#endif