RELEASE_VAR(w);
}
+#if OBJC_SPLIT_TAGGED_POINTERS
+void testConstantTaggedPointerRoundTrip(void *ptr)
+{
+ uintptr_t tagged = (uintptr_t)ptr | objc_debug_constant_cfstring_tag_bits;
+ void *untagged = _objc_getTaggedPointerRawPointerValue((void *)tagged);
+ testassert(ptr == untagged);
+}
+
+void testConstantTaggedPointers(void)
+{
+ testConstantTaggedPointerRoundTrip(0);
+ testConstantTaggedPointerRoundTrip((void *)sizeof(void *));
+ testConstantTaggedPointerRoundTrip((void *)(MACH_VM_MAX_ADDRESS - sizeof(void *)));
+}
+#endif
+
int main()
{
testassert(objc_debug_taggedpointer_mask != 0);
objc_getClass("TaggedNSObjectSubclass"));
testGenericTaggedPointer(OBJC_TAG_NSManagedObjectID,
objc_getClass("TaggedNSObjectSubclass"));
+
+#if OBJC_SPLIT_TAGGED_POINTERS
+ testConstantTaggedPointers();
+#endif
} POP_POOL;
succeed(__FILE__);