/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"fixinc/tests/inc/objc/runtime.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */



#if defined( DARWIN_OBJC_RUNTIME_1_CHECK )
#if __BLOCKS__
OBJC_EXPORT void
objc_enumerateClasses(const void * _Nullable image,
                      const char * _Nullable namePrefix,
                      Protocol * _Nullable conformingTo,
                      Class _Nullable subclassing,
                      void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
                      OBJC_NOESCAPE)
OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
OBJC_REFINED_FOR_SWIFT;
#endif
#endif  /* DARWIN_OBJC_RUNTIME_1_CHECK */
