taggedPointersDisabled.m [plain text]
/*
TEST_ENV OBJC_DISABLE_TAGGED_POINTERS=YES
TEST_CRASHES
TEST_BUILD_OUTPUT
.*taggedPointersDisabled.m:\d+:\d+: warning: null passed to a callee that requires a non-null argument \[-Wnonnull\]
END
TEST_RUN_OUTPUT
objc\[\d+\]: tagged pointers are disabled
objc\[\d+\]: HALTED
OR
OK: taggedPointersDisabled.m
END
*/
#include "test.h"
#include <objc/objc-internal.h>
#if !OBJC_HAVE_TAGGED_POINTERS
int main()
{
// provoke the same nullability warning as the real test
objc_getClass(nil);
succeed(__FILE__);
}
#else
int main()
{
testassert(!_objc_taggedPointersEnabled());
_objc_registerTaggedPointerClass((objc_tag_index_t)0, nil);
fail("should have crashed in _objc_registerTaggedPointerClass()");
}
#endif