taggedPointersDisabled.m 738 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. TEST_ENV OBJC_DISABLE_TAGGED_POINTERS=YES
  3. TEST_CRASHES
  4. TEST_BUILD_OUTPUT
  5. .*taggedPointersDisabled.m:\d+:\d+: warning: null passed to a callee that requires a non-null argument \[-Wnonnull\]
  6. END
  7. TEST_RUN_OUTPUT
  8. objc\[\d+\]: tagged pointers are disabled
  9. objc\[\d+\]: HALTED
  10. OR
  11. OK: taggedPointersDisabled.m
  12. END
  13. */
  14. #include "test.h"
  15. #include <objc/objc-internal.h>
  16. #if !OBJC_HAVE_TAGGED_POINTERS
  17. int main()
  18. {
  19. // provoke the same nullability warning as the real test
  20. objc_getClass(nil);
  21. succeed(__FILE__);
  22. }
  23. #else
  24. int main()
  25. {
  26. testassert(!_objc_taggedPointersEnabled());
  27. _objc_registerTaggedPointerClass((objc_tag_index_t)0, nil);
  28. fail("should have crashed in _objc_registerTaggedPointerClass()");
  29. }
  30. #endif